Почему программистам нужно понимать бизнес-процессы
В этой заметке я расскажу, как программист может стать более востребованным на рынке труда благодаря знанию бизнес-процессов. Я неоднократно встречал специалистов, у которых был весьма невысокий уровень производительности и при этом высокий уровень стресса из-за непонимания запросов руководства. Это приводило к конфликтам, выгоранию и другим проблемам.
Прежде чем начать, я хотел бы сделать акцент на том, что донесение идей до подчиненных всегда находится в зоне ответственности руководства: если программист что-то не понял, это в первую очередь ошибка менеджера.
Получение знаний
Когда я только начинал свой путь программиста, у меня неоднократно возникало непонимание того, зачем я выполняю ту или иную задачу. Среди менеджеров бытовало мнение, что линейному специалисту это совершенно не нужно знать: пусть болит голова о коде, а не о бизнесе. Мне же было критично важно, какую пользу я приношу своей работой. К сожалению, я видел только куски кода, которые не выливались в какую-то общую картину. Я не видел клиентов и не мог узнать ничего о том, что они думают о продукте. Из раза в раз я выгорал и менял работу. Конечно, на собеседованиях мне обещали, что меня будут вовлекать в обсуждение бизнес-проблем, проектирование и т.д., но это всегда оказывалось набором дежурных фраз.
Вместе с тем я стремился получить больше знаний о бизнесе. Для этого я, конечно же, начал изучать литературу. Это могли быть биографии разных предпринимателей, материалы о том, как устроен с точки зрения менеджмента процесс создания программного обеспечения, или просто учебники по бизнесу. Параллельно я читал множество статей с примерами того, как устроены другие, нецифровые виды предпринимательства. На мой взгляд, самые впечатляющие книги о бизнесе – это:
- «Карьера менеджера», Ли Якокка (rus).
- «Deadline. Роман об управлении проектами», Том ДеМарко (rus).
- «Бережливое производство: Как избавиться от потерь и добиться процветания вашей компании», Джеймс Вумек, Дэниел Джонс (rus).
- «Стартап. Настольная книга основателя», Дорф Боб, Бланк Стив (rus).
- «Escaping the Build Trap: How Effective Product Management Creates Real Value», Melissa Perri (eng).
Это те книги, которые можно понять без специального образования, что особенно важно для инженера, у которого, скорее всего, развиты другие зоны мозга и сформирован другой набор стереотипов, чем у человека с дипломом менеджера. Помимо всего этого, конечно, стоит обратить внимание на то, как может быть организован процесс создания программного обеспечения. Я имею в виду методологию Agile, Kanban как его часть, а также модели Waterfall, Microsoft Solutions Framework, Rational Unified Process и т.п. Совершенно не факт, что вы будете использовать их в своей работе, но любые знания меняют ваше мышление, а умение предположить, как еще «может быть», бесспорно, повышает ваш профессионализм.
Также стоит добавить, что понимание, как код вписывается в бизнес, и принятие того, что программирование по большей части все же является прикладной специальностью, а не вещью самой в себе (как математика, например), может существенно снизить уровень стресса. А если вы еще знаете, как работает бизнес, удовольствие от работы увеличится. К тому же, если работодатель увидит, что вы интересуетесь не только кодом, вас начнут вовлекать в обсуждение бизнес-процессов. Это на самом деле может быть увлекательно.
Применение знаний
Пытливый читатель спросит: «Ну знаю я все это, и что дальше?». Действительно, понимание того, как работает бизнес, может не поменять ровным счетом ничего в ваших задачах и в отношении к вам работодателя. Если вы активно демонстрируете ваши новые знания, но не получаете никакого положительного отклика, то стоит сменить работу. Поверьте, опытный и адекватный менеджер будет только рад тому, что подчиненные начали интересоваться его работой.
На собеседовании помимо демонстрации навыков стоит рассказать, что вам важно быть вовлеченным не только в технические, но и бизнес-вопросы. Я именно так и делал, что помогло мне найти несколько отличных компаний. В одной из них я работаю и сейчас, только из простого линейного программиста перешел на позицию Team Lead, где мне потребовалось применять свои менеджерские знания на практике. Вам же вовсе не обязательно переходить на руководящие позиции, вы просто можете продолжить развиваться как инженер. Но теперь вы уже полностью будете осознавать, как ваш код влияет на других людей внутри компании и за ее пределами.
Вывод
Я считаю, что любому программисту нужно иметь представление о том, как устроен бизнес, какими принципами руководствуются менеджеры и какой подход используется для организации программного обеспечения. Понимание этих процессов поможет снизить уровень стресса и повысить производительность. Вместе с тем изучение того, что происходит за пределами технических задач, повысит вашу ценность как специалиста и откроет перед вами новые карьерные возможности.
Всем большое спасибо, если вам понравился этот материал, то подписывайтесь на меня здесь и на мои социальные сети.