Код
#статьи

Цели против средств: когда за деревьями не видно леса

Что важнее для программиста — шашечки или ехать? Результат любой ценой или строгое следование процессу? Разбираемся с разработчиком Шалитой Сурангой.

Кадр: сериал «Остановись и гори»

Pen Magnet

(Shalitha Suranga)


об авторе

Инженер-программист в 99x. Член Apache PMC. Open Source contributor (автор Neutralinojs). Технический писатель.


Работая над программным обеспечением, мы пользуемся своими узкоспециальными познаниями в сфере информатики — но решаем при этом реальные бизнес-проблемы наших заказчиков.

У этого процесса есть отмеренный ему временной срок, который в нашей среде принято обозначать как SDLC (system development life cycle, жизненный цикл разработки ПО). Он помогает всем участникам проекта планировать развитие их продуктов.

Этапы жизненного цикла можно объединить в различные структуры, которые мы называем моделями разработки. Например, широко известны такие модели, как гибкая (agile), каскадная (waterfall), поэтапная (incremental) и спиральная (spiral) разработка. Agile сейчас применяется повсеместно, потому что позволяет командам эффективнее управлять своей работой, а также более полно удовлетворять потребности заказчиков.

Чтобы лучше контролировать процесс, неплохо разбить каждую из целей, стоящих перед разработчиками, на более мелкие задачи.

Как правило, наши цели связаны с релизами новых версий приложений или сервисов, которые предлагают пользователям набор дополнительных возможностей. А значит, выполнение любой из подзадач позволяет приблизиться к достижению главной цели и при их выполнении можно использовать две разные стратегии мышления: ту, что больше ориентирована на достижение цели, или же ту, что опирается на процесс.

Процессно-ориентированная стратегия

Человек, ориентированный на процесс, обычно концентрируется на тщательном выполнении мелких операций. Например, программисты с таким типом мышления склонны полностью фокусироваться на порученных им локальных задачах и не задумываются о том, насколько это приближает команду к конечной цели. Это типичные путники, готовые под лупой рассматривать каждое деревце и каждую травинку, но не разглядят лес целиком.

Отсюда все их достоинства и недостатки. Чаще всего это ярко выраженные перфекционисты, которые будут раз за разом выверять каждую мелочь и подробно прописывать каждый свой шаг, строго соблюдая установленные стандарты и процедуры. При этом они вряд ли когда-нибудь попробуют что-то новое — скажем, то, что поможет заметно сократить время выполнения их работы.

Предположим, вы разрабатываете компьютерные игры. Скорее всего, первые версии будут далеко не идеальными. Тут вам как раз понадобятся «процессники» с их терпением и нацеленностью на выпуск патча за патчем, способностью кропотливо вносить миллионы изменений и мелких улучшений — и так до тех пор, пока игра, наконец, не будет доведена до ума.

Так, сейчас на YouTube можно найти массу роликов, где геймеры сравнивают GTA 5 и забагованный Cyberpunk 2077 — естественно, не в пользу последнего. Предполагаю, что их мнение изменится после того, как команда Cyberpunk всерьёз возьмётся за исправление мелких недостатков и выпустит хотя бы несколько патчей.

Стратегия целеполагания

У человека, ориентированного на достижение цели, обычно довольно быстро складывается общее комплексное представление о том, что нужно сделать. Скажем, сторонники такой стратегии мышления в программировании больше думают о том, как быстрее завершить свои этапы работы, а не о том, насколько строго результат их труда будет соответствовать всем стандартам.

Такой подход позволяет пробовать что-то новое, выходить за рамки типовых процессов и сокращать путь к цели. Специалисты этого типа никогда не перенесут сроки выполнения работ, но могут cделать больше ошибок или упустить из виду больше деталей по сравнению с программистами, ориентированными на процесс. Следовательно, в противоположность первым, эти товарищи «видят лес, но не видят деревьев».

При этом у них есть важное достоинство: столкнувшись со специфической задачей, для выполнения которой нет всей необходимой информации, они, скорее всего, не спасуют и с лёгкостью справятся с ней — такие люди чаще всего предельно гибки в работе и открыты для любых новых концепций.

Гибридный подход

Попробуем ответить на философский вопрос: какая из стратегий более эффективна для нас, разработчиков программного обеспечения? Ведь у каждой, как мы уже успели разобраться, есть свои плюсы и минусы. Какая из чаш перевесит?

Мне кажется, наша работа — не тот случай, когда нужно выбирать что-то одно: оптимально использовать оба подхода в зависимости от ситуации и получать удовольствие. Допустим, стратегия, ориентированная на процесс, будет приносить радость в конце каждого рабочего дня, когда вы с чувством выполненного долга начнёте зачёркивать в ежедневнике строчку за строчкой, помечая выполненные мелкие задачи.

Зато, если вы будете ориентироваться сразу на цель, у вас под рукой всегда будет чёткий план движения к ней и комплексное видение того, что уже достигнуто и сколько ещё предстоит сделать.

В общем, не стоит увязать в рутине, когда можно подняться над ситуацией и посмотреть на неё с высоты птичьего полёта. Но и полностью игнорировать так называемые мелочи тоже нельзя — без тщательного соблюдения стандартных процессов нужного качества работы тоже не достичь.

Изучайте IT на практике — бесплатно

Курсы за 2990 0 р.

Я не знаю, с чего начать
Научитесь: Профессия Python-разработчик Узнать больше
Понравилась статья?
Да

Пользуясь нашим сайтом, вы соглашаетесь с тем, что мы используем cookies 🍪

Ссылка скопирована