Зачем Нам Так Много Разработчиков?

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

Для наглядности представим, что наш проект — корабль.

Который мы некоторое время назад спустили с верфи, и он плывет, радуя наш глаз своим изящным профилем, а наш карман золотыми дублонами.

И вроде бы всё хорошо, но ему почему-то нужно много людей, чтобы просто продолжать плыть.

Я бы хотел, чтобы вместо этого они построили новые корабли.



Зачем нам так много разработчиков?

Какие проблемы у нас есть при условии, что проект не развивается (в скобках будет пояснение технической стороны проблем).

Написано не в порядке очереди, а вразброс:

  1. Корабль спущен на воду и плывет, но на нем есть небольшие протечки.

    То камбуз затопит, то товар упадет за борт, то рыба уплывет. Казалось бы, это не критично, но это постоянно лишает нас прибыли.

    (Баги, без них не обходится ни один проект. Нам нужны люди, которые их исправят).

  2. Законы акватории, в которой мы купаемся, часто меняются.

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

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

    А без реализации вам могут грозить такие штрафы, что они моментально потопят проект).

  3. Время от времени корабль подвергается нападению пиратов.

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

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

    Они также могут отдельно изучить ваше оборудование на суше и, если повезет, удаленно взорвать вашу бочку с порохом на вашей палубе.

    (Хакеры не дремлют, они могут изучить ваш проект, найти уязвимости в нем или его компонентах и нанести вам огромные материальные потери.

    Защита от этих угроз требует постоянной кропотливой работы разных специалистов).

  4. На суше часто происходят различные катаклизмы, а спрос на ваш товар меняется.

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

    (Под воздействием различных факторов, как та же «Черная пятница», у вас могут возникнуть сильные скачки нагрузки.

    Если вы к этому не готовы, то вы не только не получите прибыль, но и потеряете стандартный заработок и пострадаете.

    репутационные потери).

  5. Часть корабельного оборудования работает по гороскопу, который составляет бортовой шаман.

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

    (Современные системы взаимодействуют с большим количеством внешних поставщиков и сервисов.

    И у них часто есть свои проблемы.

    Нужно быстро их отслеживать и иметь резервы на все критические точки отказа).

  6. Давайте будем реалистами.

    На море разные погодные условия, а иногда просто случается шторм.

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

    (Сколько бы у вас ни было метрик, devops, дашбордов и прочего мониторинга, иногда что-то просто падает. От этого не застрахованы ни GitLab, ни AWS, ни какое-нибудь чудесное облачное решение.

    А после этого нужны люди и возможность быстро все поднять обратно ).

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

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

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

    Например, вы все время рассчитывали цену продукта в рублях.

    Вы решили добавить копейки.

    Что может пойти не так?)

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

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

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

Ну, или спускает спасательные шлюпки и переходит на атомоход. Так вот — зачем вам такая большая команда, которая вроде бы по полтора фича в месяц режет, а большую часть времени, судя по всему, пьет смузи и ругается по непонятным причинам?

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

    Команда бунтует и требует месяцев на изменение дизайна.

    Бунт подавляется, пушки высверливаются, эхолокатор приводится в действие матросами, которые по очереди крутят педали динамо-машины.

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

    Иногда затраты на этих ребят могут даже превысить потенциальную выгоду.

    А может быть проще построить новый корабль ).

  2. Есть нюанс.

    Ваш корабль постоянно находится в движении, и вы не можете зайти на верфь.

    Итак, мало того, что киль нужно менять, так вы делаете это прямо на ходу и иногда корабль теряет управление и садится на риф.

    Чтобы это происходило реже, вы придумаете процессы, которые сделают эти изменения менее болезненными — например, установку старого и нового килей одновременно.

    Или меняйте его по частям.

    Но все это также требует ресурсов.

    (Когда проект уже в продакшене, любое изменение может все сломать.

    Есть много практик, которые помогают этого избежать, но все они также требуют времени и ресурсов).

  3. Практика показывает, что иногда корабли размножаются.

    И в то же время они живородящие.

    Иногда сложно заметить, как в трюме появляется и медленно взрослеет очередной корабль.

    В долгосрочной перспективе это здорово, так как позволит вам расширить свой флот и получать еще больше дублонов.

    Но если вовремя не придумать, как сделать корабельному кесарево, то плод может перезреть и разнести к чертям внутренности материнского корабля, а также погибнуть.

    (Часто другие разрабатываются в рамках одного проекта, и если вовремя не продумать архитектуру и пути разделения, то это чревато серьёзными проблемами.

    А если вы об этом подумали, то это всё равно пустая трата времени и ресурсов) .

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

    Конечно, все это решаемо — но разрешение конфликтов и разных видений тоже требует времени (размер команды имеет накладные расходы на взаимодействие).

  5. Вы решили сменить ковер на террасе.

    И доски под ковриком гнилые.

    И доски на ржавом настиле.

    Но нового напольного покрытия такого же размера нет. А тот, что есть, не подходит под рамки по размеру.

    Для того, чтобы поменять каркасы, нужен гидрокостюм и 30 человек, которые будут откачивать воду.

    И в процессе из тьмы глубин появляется кракен.

    (Часто один баг приводит к другому, и, казалось бы, небольшая задача приобретает поистине космические масштабы).

  6. Чтобы заменить спасательный круг, нужно поменять носовую фигуру.

    В противном случае руль отвалится.

    (Все компоненты взаимосвязаны и порождают неизвестную синергию, с последствиями которой тоже приходится бороться).

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

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

    (Фактор шины.

    Потеря ответственного разработчика может сильно усложнить и замедлить процесс разработки).

Я мог бы перечислять это долго, но боюсь, мне будет скучно - надеюсь, мне удалось передать основную мысль, а дополнительные моменты можно будет добавить в комментариях.

Счастливого плавания! Теги: #Управление развитием #никто не хочет думать #куда плывёт титаник

Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2019-12-10 15:07:06
Баллов опыта: 0
Всего постов на сайте: 0
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.