(в изоляции скучно, не кидайте слишком большие камни)
С одной стороны, я давно над этим рефлексирую, с другой стороны, тема широкая, и в рамках одного короткого поста не получится иначе, чем просто свалить мысли в кучу. Речь пойдет про конфликт задач бизнеса и задач разработки.
Итак, ни для кого не секрет, что цель любого бизнеса — максимизация прибыли. Здесь можно остановиться и задуматься над проблематикой глубже, но я, конечно же, этого делать не буду, я — программист, мне это не интересно. В целом, это всё, что нужно знать про бизнес, остальное — лишь следствие.
Бизнес нанимает программиста решать свои задачи, платит ему хорошие деньги, программист их решает.
Казалось бы, пока всё хорошо, все довольны, идиллия. Но не тут-то было. Программист, по крайней мере хороший, стремится к чистой архитектуре, красивому коду и даже каким-то инновациям, ко всему тому, на что в свою очередь уже плевать бизнесу. Если в рамках глобальной картины эта красноглазая эстетика не несёт заведомых и ощутимых конкурентных преимуществ, конечно. Но даже в случае, когда это так, призрачные глобальные перспективы всё равно уступают перспективам ближайшим: быстрее выйти на рынок, поднять бабла, оправдать существование проекта. Тут и кроется конфликт.
В идеальном мире все компании богатые, топ-менеджмент имеет планы на десятилетия вперёд, менеджмент среднего и низшего звена компетентен и разбирается в технической стороне не хуже чем в вопросах управления и бизнеса, а исполнители выполняют чётко поставленные руководством задачи и выдают качественный продукт. На практике, зачастую, всё ровно наоборот. Вместо глобальных планов — цель извлечь прибыль здесь и сейчас, вместо компетентных менеджеров — бестолковые продаваны, изображающие бурную деятельность, а на стороне исполнителя, соотвенно, мрак, халтура и проект, который работает только за счёт оккультных ритуалов.
Из чего следуют вопросы:
- Должен ли
инженерразработчик решать в первую очередь задачи бизнеса (и получать вот это самое выше), или же максимально сконцентрироваться на своей непосредственной работе и делать технически безупречный продукт, упираясь и пытаясь продвигать техническую повестку, идя вразрез с сеюминутными прихотями какого-нибудь отдела маркетинга, например? Дихотомия очевидна, а мир не идеален. Либо то, либо другое. - Если все вокруг козлы, а разработчик Д’Артаньян, и все вопросы всё равно решаются через него, должен ли он ради общего дела
стать крайнимпереквалифицироваться в менеджера? - Когда говнокод крутится, а бабло мутится, должно ли вообще кого-то волновать качество?