Яков Сироткин (yakov_sirotkin) wrote,
Яков Сироткин
yakov_sirotkin

Недозагрузка

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

Часто заказчики просто покупают программистов человеко-месяцами, думая что твёрдый оклад вполне достаточен для их мотивации. Однако, внезапно может появиться другой заказчик, с более интересным проектом и с большими деньгами. В такой ситуации я бы рекомендовал делать две веши: официально разрешить программистам халтурить (запрещать всё равно бессмысленно) и платить существенные премии за высокое качество и в случае возникновения серьёзных объёмов работы.


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


Для выравнивания нагрузки я хочу предложить следующий рефакторинг: миграция (переход на новые версии программного обеспечения). Очень редко преимущества новейшей версии оправдывают затраты на немедленный переход при реализации следующей фичи. Но рано или поздно какая-то особенность новой версии становиться индустриальным стандартом и возникает потребность срочно перейти на неё, при этом добавив много новой функциональности. Тогда девелоперам приходится возиться со всякой ерундой вроде поменявшегося формата конфигурационных файлов и deprecated методов в дополнение к решению актуальных бизнес-задачам, и уж совсем грустно, если в новой версии обнаруживается какая-то критичная несовместимость и приходится срочно откатываться назад. Также в новых версиях часто есть фичи, которые раньше поддерживались собственными силами, но теперь этот код можно просто удалить и перейти на вызов стандартного API — это уменьшит размер проекта и облегчит его развитие.
Subscribe
  • Post a new comment

    Error

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 23 comments