LINUX.ORG.RU
ФорумTalks

Бизнес-задачи, менеджмент, быдлокодинг

 , , , ,


1

2

(в изоляции скучно, не кидайте слишком большие камни)

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

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

Бизнес нанимает программиста решать свои задачи, платит ему хорошие деньги, программист их решает.

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

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

Из чего следуют вопросы:

  1. Должен ли инженер разработчик решать в первую очередь задачи бизнеса (и получать вот это самое выше), или же максимально сконцентрироваться на своей непосредственной работе и делать технически безупречный продукт, упираясь и пытаясь продвигать техническую повестку, идя вразрез с сеюминутными прихотями какого-нибудь отдела маркетинга, например? Дихотомия очевидна, а мир не идеален. Либо то, либо другое.
  2. Если все вокруг козлы, а разработчик Д’Артаньян, и все вопросы всё равно решаются через него, должен ли он ради общего дела стать крайним переквалифицироваться в менеджера?
  3. Когда говнокод крутится, а бабло мутится, должно ли вообще кого-то волновать качество?

Рекомендую к прочтению Роберта Мартина «Чистый Код», «Чистая Архитектура». Там, кроме технических вопросов, рассказывается о том, как бывает, если не делать чисто. В том числе, раскрывается мысль, что бизнес будет только терять, если программисты не будут писать чистый код.

Книги читаются на одном дыхании.

  1. Должен решать задачи бизнеса, но писать максимально чисто. Если дедлайн возможно подвинуть и почистить код, то это нужно делать.

  2. Хороший программист - менеджер тоже. Он должен участвовать в жизни продукта, который создается им/командой.

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

bvn13 ★★★★★
()
Ответ на: комментарий от bvn13

Это всё хорошо на бумаге, а на практике немного иначе.

  1. Стремление к чистоте сводится к следующему:
    • Приходится раздувать сроки по задачам, занимаясь на самом деле рефактиронгом;
    • Эссенция «чистоты» — элегантные костыли;
    • В целом, при отсутствии долгосрочного планирования, спасает только опыт из области вангования.
  2. Как говорит Царь: «тебя поимела пропаганда». Менеджментом должен заниматься менеджер. Всё что находится вне технической плоскости — уже не твоя работа, если на тебя это свалили, считай, что тебе сели на шею.
  3. Тут нужно понимание со стороны бизнеса, иначе ты фактически будешь это делать «за свой счёт», если можно так выразиться. Тебе больше всех нужно? Одного перфекционизма мало, нужно какое-то рациональное зерно.
WitcherGeralt ★★
() автор топика
Ответ на: комментарий от WitcherGeralt

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

bvn13 ★★★★★
()
Последнее исправление: bvn13 (всего исправлений: 1)
Ответ на: комментарий от bvn13

Рекомендую к прочтению Роберта Мартина «Чистый Код», «Чистая Архитектура». Там, кроме технических вопросов, рассказывается о том, как бывает, если не делать чисто. В том числе, раскрывается мысль, что бизнес будет только терять, если программисты не будут писать чистый код.
Книги читаются на одном дыхании

Роберт Мартин — это мудак, который профессионально разбирается в давании советов другим людям. Я могу вслепую это сказать о любом другому коуче, который одновременно крутится вокруг UML, OOP, Agile, Java, C++, SOLID.

byko3y ★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.