
Я сейчас читаю книгу Code Leader: Using People, Tools, and Processes to Build Successful Software. Автор Patrick Cauldwell - программист с очень большим стажем и разнообразным опытом. Он работал в различных компаниях, и это позволило ему увидеть мир ИТ с разных сторон. Да, смена работы – положительно сказывается на вашем опыте. Я вообще считаю, что на одном месте нужно сидеть от 3 до 5 лет. Меняя работу, вы окунаетесь в новый мир знаний, общаетесь с новыми людьми и получаете новый опыт в новой сфере.
Это небольшое отступление, а разговор сегодня пойдет о другом. Мы будем говорить о первой главе книги, которая называется Buy, Not Build (покупай, не строй). В ней Patrick пишет очень интересные вещи о том, что программисты должна разучиться писать код. Да, как бы нелепо это не звучало, в большинстве компаний программисты не должны писать код. Вы думаете, что вас нанимают на работу, чтобы вы писали код или создавали программы? Нет! Прежде всего программистов нанимают на работу для того, чтобы они решали проблемы компании с помощью программирования и создания программ. А нужно ли для этого писать собственный код? Не всегда это является обязательным решением.
В подтверждении этих слов, Patrick Cauldwell приводит очень интересный пример с банком. Допустим, что вы работаете в банке и в вашей программе нужен элемент управления типа календаря, чтобы пользователь мог выбирать дату подачи декларации. Допустим, что в используемой вами библиотеке нет нужного календаря? Нужно ли писать его? Если на рынке нет готового решения, то вам придется писать собственный календарь. Если же готовое решение есть и оно стоит дешевле, чем вы потратите времени на создания того же кода, то его следует купить, но не писать самостоятельно. В этом и заключается основная идея автора Buy, Not Build - покупай, а не строй сам.
Вам банк платит за то, чтобы вы решали проблемы банка, а не создавали календари. Да, написать собственный календарь – очень интересное занятие, но вам платят не за это. Если вы будете писать весь код самостоятельно, то разработка информационной системы банка окажется слишком дорогой и банк понесет убытки.
Если вам очень интересно написать собственный компонент, вы можете заниматься этим в свободное время, но не в рабочее. Если очень хочется поиграть с исходными кодами календаря, то можно купить такой элемент управления, который будет поставляться в исходных кодах. В этом случае, вы:
Этот список можно было бы продолжить, но уже понятно, что исходные коды очень важны в таком бизнесе, как компоненты. Именно поэтому, все элементы управления, которые разрабатывает Heapar Software, поставляются клиентам в исходных кодах. Это позволяет клиенту решить все перечисленные проблемы за минимальную цену.
Если есть возможность купить готовый строительный блок, и он оказывается дешевле собственной разработки, то этот блок следует купить. Позвольте компаниям-разработчикам компонентов решать ваши проблемы. Вот их программистам платят как раз за это и пусть они делают для вас строительные блоки. Если у вас есть идеи, то можете попытаться предложить их разработчику компонентов. Компания Heapar Software принимает любые предложения клиентов по улучшению собственных разработок, чтобы они лучше соответствовали надобностям клиентов. Пишите, и мы адаптируем наши разработки под ваши решения.
Если вы сможете решить проблемы работодателя в меньший срок и дешевле, то вы будете выглядеть в глазах заказчика или работодателя более профессиональным сотрудником и более ценным сотрудником. А если у вас из-за этого появится свободное время, то сможете потратить его на CS или World of Warсraft :)
А что же тогда нужно писать программисту? Ответить на этот вопрос очень легко – то, что приносит прибыль вашей компании и то, что позволяет победить ваших конкурентов и получить конкурентные преимущества. То, что вы разработаете календарь самостоятельно – не даст вам конкурентных преимуществ. А если вы купите календарь, а за сэкономленное время напишите прекрасный модуль управление счетом, проводками и переводами, то вы получите преимущество во времени разработки и в цене. Пишите только профильный код, который связан с вашей компанией, и по возможности покупайте то, что не связано со спецификой компании.