Как стать автором
Обновить

Комментарии 506

Не хотите бизнеса, не работайте с бизнесом. Уйдите в другие проекты, в исследования, наконец.
Или тут и рыбку съесть, и косточкой не подавиться?

Как вариант.
На текущей работе, кстати, не напрягают. Но это редкость.

Подозреваю, что во многом это связано с вашим путём в программировании. Pl/sql, bitrix — это про бизнес. Да и c# во многом тоже.
Возможно, надо сменить область.


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

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

Поподробнее?

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

Перекатиться на си и раст?
К языку это вообще не имеет отношения.
Инфраструктурные задачи можно и bash-скриптами решать.

Утрированно — да

Блин, может это мне и нужно…
Смеётесь? Производители джинсов и лопат — главные выгодополучатели «золотой лихоравдки». За ваши «кирпичики» платят до тех пор, пока они нужны для постройки своего или продаются. Просто не всем дано осознать, что при любом раскладе, работая за деньги, они решают задачи бизнеса — осознанно или неосознанно, напрямую или опосредованно (ВУЗы, например).

И всё сводится только к «мне это интересно/не интересно/противно».
«Тыжпрограммист» получает «много» только потому, что его труд приносит 10х+ «много», иначе работодатель — «наивный инвестор».

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

А ТЭО (техник-экономическое обоснование) настоящие инженеры уже не пишут?

А когда оно от инженеров вот прямо точно попадало в цель? Эти тэо часто просто гадание на кофейной гуще.

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

Инженеры, которым руководитель поставил задачу "ты — пишешь ТЭО"?
Инженеры, которые метят в руководители?
Просто очень рукастые и очень переживающие за дело инженеры?
Да.


А вот все ли инженеры к ним относятся и какова точность и качество полученного ТЭО — вопросы не менее важные.

Как человек, работавший в науке, скажу Вам что это странный совет.
В «исследованиях» тем более надо «решать задачи бизнеса». Это в бизнесе хоть иногда бывает чёткое ТЗ. Это для бизнеса продуманы best practices, которые в худшем случае можно и бездумно применить. В науке нет никакой идеальной архитектуры и чисто кодерских задач, там надо как раз понимать общую картину и предлагать лучшие решения.
И о том, как это финансировать, тоже надо думать.
Как человек, который в науке не только занимается собственно наукой (выполнение исследований и разработка методов), но и воплощает эти самые методы в ПО, а также передаёт задачи на реализацию чисто программистам, которые не занимаются исследовательской деятельностью, отвечу вам, что у вас не определено, что является «задачей бизнеса» или «научной задачей». Из этого путаница в проведении границ деятельности, а значит — её интеграции в систему процессов.
Если вы даёте такое определение по признаку принадлежности всему научному процессу, тогда под определение подпадает практически любая деятельность, составляющая этот процесс. В том числе и обслуживание приборов (калибровка, замена компонент и т.д.). Очевидно, это не является научной деятельностью, т.к. на калибровку есть методика, регламент и инструкции, как минимум. Как максимум — сервисный инженер.

Ваш пример — следствие системного пробела любой нашей индустрии. А именно — перехода от «задач бизнеса» к техническим задачам, в т.ч. программирования. Причин у этой проблемы много. Основная причина — люди не мыслят и не работают в концепции «спецификация-реализация». Спецификация постулирует, что должно происходить, какими функциями и методами обладать результат, и ничего не говорит о способах и методах их реализации. Это как раз задача реализации разработать технические методы, удовлетворяющие спецификации.
В деятельности вообще и разработке в частности ничем не ограничивается количество уровней, на котором может действовать отношение «спецификация-реализация». Т.е. объект, который на одном горизонтальном уровне выполняет роль реализации одновременно может выполнять и роль спецификации для объекта на подлежащем уровне. Спецификация выражается системой требований на языке предметной области. И выражается так, чтобы вообще никак не ограничивать возможности реализации, в частности — даже не заикаться об архитектуре реализации, а говорить исключительно по своей епархии.

Вы ведь заметили, что говорите о ТЗ, т.е. техническом задании? А я заметил, что вы не говорите в терминах требований. Пробел почти любой нашей индустрии и подавляющего большинства бизнесов — в пропускании ключевого этапа разработки — разработки требований, т.е. разработки спецификации. Все сразу пытаются перепрыгнуть в техническое задание. В действительности, это просто стремление заказчика переложить заботы по разработке требований и спецификации на технический уровень, где эти проблемы, часто, нерешаемы.
А не решаемы они потому, что спецификация и требования выражают и выводятся из методов бизнеса, являющихся ответственностью и епархией заказчика. И если заказчик эти методы не разработал, то реализовывать, фактически, ещё нечего: сперва требуется разработать методы его бизнеса и из них выстроить методики. Именно их отсутствие является основной причиной провала так называемых программных проектов.
Проверить некорректность прыжка через разработку требований элементарно: ТЗ пишется в терминах той области техники и технологии, в которых требуется осуществить реализацию спецификации. А спецификация — в принципе, нет. Она пишется в терминах предметной области (в терминах бизнеса), дающих определение результату, в том числе и методам его получения. Более того, спецификация и система требований использует язык методики решения задач предметной области.
Задача разработки архитектуры — это задача, решаемая и на уровне спецификации, и на уровне реализации. Например, у каждого сетевого протокола есть своя архитектура. У каждой системы и программы, реализующих некоторый сетевой протокол — тоже своя архитектура. Первая — ответственность разработчика спецификации, вторая — разработчика реализации.

Применительно к научной деятельности, научный процесс выполняет запрос процессу разработки ПО. В этом запросе передаётся вычислительный метод, который требуется реализовать, требования к возможностям эксплуатации и интеграции. Этот запрос разработчик (не детализирую конкретные роли) своими силами переводит в техническое задание, в котором вычисляет и выбирает конкретные технические решения, формулируя систему задач на программирование.
Вычислительный метод — это результат научной деятельности. Например, решение многих задач машинной графики выполняется применением методов аналитической геометрии и физики. Затем уже эти решения оптимизируются и на уровне математики, и на уровне алгоритмов. И только потом этот результат изысканий можно реализовывать программно, т.к. получена спецификация.
Например, точно по такому же принципу построены методы оптимизации, исследование операций, теория баз данных, теория языков и компиляции, и т.д. И там вовсе не про программный код для их реализации, а про вывод и конструирование всех этих теорий и их методов вместе с их доказательствами корректности и характеристик. Потому что без них ни теория, ни метод не являются таковыми: доказательства — это гарантия их работоспособности от их разработчика, предоставляемая другому разработчику, который будет их реализовывать.
При этом прямая обязанность заказчика — организовать обучение разработчика ПО тем методам и той части предметной области, которые определяют спецификацию и требования, переданых в запросе на реализацию. Ну а прямая обязанность разработчика — освоить реализуемые методы, изложенные спецификацией, требованиями и методиками предметной области в запросе на разработку.
Как видите, проблема с «решением задач бизнеса» возникла из-за неумения бизнеса решать собственные задачи, т.е. формировать методы и методики их решения и выражать их в виде спецификаций и требований, годных для реализации. А также — из-за программистов, не умеющих работать по спецификации и требованиям.

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

Чтоб вы понимали масштаб проблемы, то даже в ГК РФ в статьях касательно договоров ничего нет про подход на основе спецификации, требований, т.е. результата, возникающего в результате разработки. Там сразу говорится про ТЗ. И ведь никто даже не задумывается, что для визирования ТЗ (т.е. взятия на себя ответственности) заказчику необходимо иметь компетенции подрядчика, т.к. ТЗ пишется в терминах реализации, которыми заказчик и не должен владеть! Очевидно, это системная проблема, заложенная в законодательство, и даже просто нарушение здравого смысла: если у заказчика есть необходимые компетенции, зачем ему обращаться к подрядчику? А если нет, то и визировать ТЗ он не имеет права ввиду отсутствия требуемых компетенций.
проблема с «решением задач бизнеса» возникла из-за неумения бизнеса решать собственные задачи, т.е. формировать методы и методики их решения и выражать их в виде спецификаций и требований, годных для реализации. А также — из-за программистов, не умеющих работать по спецификации и требованиям.

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

То, что Вы пишете, это очень в сторону прикладной науки, уже практически на грани с обычной промышленной разработкой. Я же больше в сторону фундаментальной науки работал. Соотвественно, чем фундаментальнее, тем менее формализованы требования, и тем более важно понимание конечной задачи.
Попытка формализовать науку приводит к снижению эффективности и росту затрат.
Не углубляясь в термины «задача бизнеса», упростим — если разрабатывают аппарат искуственного кровообращения, то крайне полезно, чтобы все вовлечённые в процесс понимали, что такое искуственное кровообращение и что в целом надо получить. Иначе выйдет «к пуговицам вопросы есть?». Тогда будут полезные советы и идеи в деталях от каждого конкретного специалиста. Исторически, при разработке первого такого аппарата «задачу бизнеса» решали в том числе токари, которые могли предложить материалы и методы обработки лучше, чем хирурги-учёные. Уже потом, когда первые операции были успешными, перешли к строгим спецификациям для достижения гарантированного результата, но тогда это уже стало ближе к промышленности и дальше от науки.

Наука в реальности (во всяком случае та, за которую платят) — это тоже бизнес. Потому что все равно есть кто-то, кто платит зарплаты и дает деньги. Просто там другие требования и другие метрики.


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


В государственных учреждениях вообще своя атмосфера.
В каком-нибудь ВУЗе/НИИ, например, может быть "своя тема", которую там разрабатывают. И будьте добры — рожайте код в канве этой темы. Отходить от нее нельзя — это будет нецелевое расходование средств.
При этом если речь идет о государственных деньгах — там может быть очень много тем, которые вообще в реальности никому не нужны и представляют собой просто пилежку денег — и это демотивирует еще сильнее, чем работа в аналогичном бизнесе (там все-таки обычно хоть кому-то нужно, кто деньги платит).


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


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

Ох. У вас отечественная специфика. Сочувствую.


Я пока в open source проектах, исследования для которых финансируются созданными для этого фондами. И открыто и неформально и итоги исследований нужны.

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

Действительно, сейчас ситуация именно такая (с тенденцией к дальнейшему ухудшению). Однако это не данность, а результат прививания «административной» и «деловой» (в плохом смысле слова — не по Отто и не по Сименсу) субкультур к той области человеческой деятельности, которая возникла и развивалась по другим правилам, где эти субкультуры не нужны и не приносят ничего, кроме вреда (вплоть до полного извращения исходного смысла существования научных учреждений).

На эту тему довольно много пишут, и многие авторы отмечают, что вплоть до XX века наука во многом оставалась аристократическим баловством. Ею занимались очень штучные люди вроде лорда Кавендиша, у которого свободных средств было больше, чем в карманах у всей остальной Англии. Исследованиями такие люди занимались из интереса к устройству мира и желания блеснуть перед другими такими же натурфилософами, способными понять и оценить их работу. Монетизация этого любопытства их совершенно не интересовала. Они же подбирали себе сотрудников по вкусу и поддерживали людей без собственных средств со сходными интересами. Ученые победнее также видели в качестве социального образца скорее средневековые монашеские ордена или подобные учреждения (средневековые университеты, опять же — те же монастыри, вид сбоку). В итоге была создана атмосфера, которая сохранилась и после окончательного развала феодальных государств, удержавшись вплоть до последней четверти XX века, причем в странах с самыми разными социальными устройствами. При этом государственная бюрократия по отношению к науке выполняла функцию «монаршей благотворительности».
Помимо прочего, для работы в рамках такой системы нужны люди определенного склада, а они никогда не были слишком многочисленны, а в обществах, где «бизнес» и «бюрократия» срослись и приобрели тотальный характер, являются исчезающим видом.

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

Идеализировать эту систему тоже не стоит, но по всем аутентичным свидетельствам заметно, что для науки и ученых она была кратно лучше, чем то, что сейчас навязывается в качестве «единственно-возможной формы существования науки в современном обществе».
И будьте добры — рожайте код в канве этой темы. Отходить от нее нельзя — это будет нецелевое расходование средств.

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

Именно так и есть.
Бывает очень грустно выбирать из двух тем. Первая, ты точно уверен, может реально чем-то помочь людям и превратиться в работающий продукт. Но она не хайповая. Там нет блокчейна, машинлернинга и нейросетей, там может быть достаточно простой алгоритм, но который работает. И вторая тема — очередное применение блокчейнового аджайла к нейромашинлернинговым сетям. Технологии ради технологий, которые после написания отчета и освоения бабла будут выброшены на свалку (потому что не решают никаких реальных проблем)
Но вот под вторую дают финансирование, потому что красивые слова будут красиво смотреться в отчете, который начальство будет презентовать губернатору или совету фонда или на каком-нибудь очередном "каком-то там цифровом форуме" на камеры. А полезный алгоритм, но без хайповой темы, оваций не сорвет и в отчетах смотреться не будет.

НЛО прилетело и опубликовало эту надпись здесь
Сделай оба варианта, первый сделай личным бизнес-проектом)
Вообще в исследовательской сфере очень сильна формализация

О какой формализации вы говорите, если в результате научной деятельности даже спецификации созданных методов не делают в подавляющем большинстве случаев? И по западным стандартам, статья — это вообще научный отчёт формата «вопрос-метод-результат-обсуждение», где на метод часто выделяется абзац или два. Если бы в научной деятельности была формализация, не было бы такой вакханалии ни в научном языке, ни в научных методах и самой методологии науки, ни в методиках, разрабатываемых на их основе, ни в критериях и правилах рецензирования.
Взять, например, хроматографию и масс-спектрометрию. В них, хотя бы, есть утверждённый свод терминов, периодически обновляемый. Однако, как и везде, деятели, соприкасающиеся с этими методами исследований, да и часто сами экспериментаторы, в него даже не заглядывали. А если и заглядывали, то смыла не поняли или забыли. И при этом спокойно занимаются рецензированием статей, публикующими методы для хроматографии или масс-спектрометрии. Разумеется, на выходе получается не научная деятельность, а чисто социальная, когда есть разные религиозные кланы, борющиеся между собой.

То, о чём вы говорите касательно проектной документации, давно превратили в бюрократию, и к формализации никакого отношения не имеет. Как и к собственно выполнению методик ведения и выполнения проектов. Ну а про профанацию научной деятельности и методы прикрывания этого даже говорить не хочется. Только есть один хороший тренд: бизнес видит, кто действительно отвечает на научные вопросы, и потом к ним обращается, и не только достойно платит, а ещё и в свои патенты включает. А те, кто занимаются профанацией научной деятельности, постепенно отсеиваются и остаются на задворках.
но ведь разработке бизнеса (business development) есть отдельные специалисты. Профессия автора, судя по всему, — программист, а не бизнесмен и не управленец высшего звена.
насколько я понял, вы, трактуете позицию автора как попытку «усидеть на двух стульях»?
В какой-то мере это так и есть. Как минимум стоит быть честным с собой и тогда на собеседовании говорить, что думать о том, что нужно клиентам (а это и есть удовлетворение бизнеса), я не хочу, а хочу чего-то другого за вашу зарплату. Правда тогда процент успешных собеседований будет уменьшаться.

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

С моей колокольни сеньор — это не про бизнес.
Бизнес — это продажа. Купить "птичье молоко", обернуть в фантик и продать подороже.
Сеньор просто классно умеет делать фантик.
И вы абсолютно правильно заметили, если человек готов придумывать фантик, может ему и не нужно быть сеньором.

В общем-то это и хотел сказать
Парни, «решать проблемы бизнеса» — это не придумывать фантики и думать, как лучше что-то продать. Решать проблемы бизнеса — это понимать, что делает ваш софт, как люди им пользуются, и проектировать софт таким образом, чтобы он качественно решал проблемы/задачи этих людей. И да, это ответственность в том числе и сеньора. На этом уровне программист должен не безмозгло кодить по спецификации, а понимать, что он делает, для чего он делает, принимать решения по тем моментам, которые спецификацией не охвачены, вносить (или предлагать вносить, в зависимости от принятых в его компании полномочий) в спецификации коррективы, если он видит в этом потребность, и так далее.
Точно так же и инженер, который проектирует мост, должен учитывать такие отнюдь не творческие, а сугубо бизнесовые вещи, как выделенный на строительство бюджет, доступность/стоимость определённых материалов, эксплуатационные требования.

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

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

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

Вы про правильных архитекторов или про реальных?
Я про реальных, из опыта людей связанных со строительством в России.
Поэтому для постройки чего-то сложного привлекаются иностранные архитектурные бюро, где есть архитекторы-дизайнеры, архитекторы-инженеры, и еще куча людей которые продумывают процесс возведения целиком и по чертежам которых реально построить здание без внесения изменений по ходу строительства.
из опыта, иностранные бюро привлекаются
— ради форса и понта
— в раздутых бюджетах проще спрятать распил
— размазывание коллективной ответственности, международная юрисдикция позволяет сделать привлечение, как минимум, нетривиальным делом
— и только уже в конце, не столько сложное, сколько разворовывание выросших вдесятеро от начального бюджетов. На которые всё же надо что-то показать, что простояло бы гарантийные сроки, средствами деградировавшей инженерной школы
Вспоминается миниатюра Райкина:
Я прихожу к директору, я говорю:
— Кто сшил костюм? Кто это сделал? Я ничего не буду делать, не буду кричать, я только хочу в глаза ему посмотреть.
Выходит сто человек. Я говорю:
— Ребята, кто сшил костюм?
Они говорят:
— Мы!
Я говорю:
— Кто это «мы»?
Они говорят:
— У нас узкая специализация. Один пришивает карман, один — проймочку, я лично пришиваю пуговицы. К пуговицам претензии есть?
— Нет! Пришиты насмерть, не оторвёшь! Кто сшил костюм? Кто вместо штанов мне рукава пришил? Кто вместо рукавов мне штаны пришпандорил? Кто это сделал?
Они говорят:
— Скажите спасибо, что мы к гульфику рукав не пришили.
Представляете? Их – сто, а я – один. И все стоят, как пуговицы: насмерть. И я сказал:
— Привет, ребята! Вы хорошо устроились!

Т.е. всё равно должен быть на каком-то уровне человек, который проследит за тем, чтобы все эти кусочки кода стояли на своих местах, а в целом проект можно было «носить».
Ну для этого должен быть продакт менеджер.
Архитектор направления?

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

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

Затраты на разработку не меняются — тут как договоришься с заказчиком, так и будет. А вот сумму делить на N+1 это да. Но эффективность разработки при этом тоже повышается. Просто потому что есть человек, который берет на себя массу «оргвопросов».
Решать проблемы бизнеса — это понимать, что делает ваш софт, как люди им пользуются, и проектировать софт таким образом, чтобы он качественно решал проблемы/задачи этих людей.
Это, видимо, в какой-то параллельной Вселенной. А в этой я вижу, что единственное, чем обычно бизнес занимается — это максимизацией своей прибыли, а не решением проблем пользователя. Если дешевле засрать мозги юзерам новыми свистоперделками и рекламой — нам выкатят именно это, а не более качественный продукт.

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

Грустный у вас мир. Занятно, что у меня наблюдаемая окрестность в отношении еды и кино совершенно другая.

НЛО прилетело и опубликовало эту надпись здесь
есть ли есть лучшая альтернатива
Это очень важная оговорка. Чем бизнес крупнее, тем более он монополизируется. В качестве примера по «сайтикам по продажам» — Авито в РФ или OLX на Украине. Формально есть альтернативные площадки по продажам. Но по факту упомянутые — настолько вошли в обиход, что конкурентов у них нет. Ну просто из-за базы пользователей. Вот ОЛХ недавно сменил дизайн, много где напортачив. Например, он перестал влезать в экраны меньше 1280px. Как вам такой user-friendly? Туда же набивший оскомину Скайп — они там как выкатят обнову, так хоть плачь. Вот просто хочется сказать: «ну ребята, ну не трогайте дизайн — народ привык, бабушки наизусть изучили где какая кнопка...» Но нет — маркетологи, следуя догмам методичек по воздействию на психику юзеров, считают что «освежить» лицо сервиса — оно полезно… А из-за того, что культура кодинга падает, получается фейспалм. Люди в ярости, стучат кулаками по столу, но продолжают жрать кактус пользоваться ОЛХ/Скайпом etc., ибо «все сидят там — куда ж я денусь?».
НЛО прилетело и опубликовало эту надпись здесь
для получения большего числа лояльных покупателей нужно улучшать сайт
Всё так. Я сам веб-мастер и сам очень люблю эргономику. Но… редко её вижу. Чего далеко ходить — вон у Хабра с недавних пор появился прилепленный топ-бар с менюшкой. Меня бесит. Ибо лично я ей не пользуюсь вообще, а текст оно загораживает.

А вообще «лояльность», «удобство» — это сущности второго порядка. На первом месте обычно деньги. Продаваны хотят побольше срубить, а покупатели — поменьше заплатить. В итоге на нормальных (и дорогих) дизайнерах и верстальщиках экономят, но зато цены ставят на копеечку дешевле конкурентов. В итоге массы берут там, где подешевле, а не там, где оформлено красивее.
Селяви.
НЛО прилетело и опубликовало эту надпись здесь
Бизнес — это далеко не только перепродажа.
Бизнесы каких-нибудь Гейтса, Джобса и Маска строились совсем не вокруг перепродажи.
Перепродать труд дизайнера, архитектора, электронщика и программиста в форме отделяемых результатов, не? Это кроме Маска (там практически коробочная сборка из сторонних компонент: единицы измерения-то метрические, чтобы исключить ошибки и проблемы перевода). Напомню, фундамент капитализма — это частная собственность на средства производства. Сотрудник — тоже средство производства.

Сотрудник — собственник своей рабочей силы в капитализме. И противостояение собственников рабочей силы с собственниками средств производства — одна из основных движущих сил капитализма.

Вы про перепродажу труда, а комментарий Dekmabot, на который я отвечал — про перепродажу продукта.

Разве MS-DOS не являлась той самой перепродажей? Купить ОС у одного, продавать другим.

Да, Гейтс, как и любой бизнесмен, занимался в том числе перепродажей.
Но коммерческий успех Microsoft начался не с MS-DOS, а с Бейсиков, написанных самим Гейтсом для всех популярных моделей ПК. (За год до появления MS-DOS выручка MS уже составляла более $2M.) Монополию на рынке ПК им принесли Windows и Office, также разработанные самостоятельно.
купить "птичье молоко"

У кого? Другого бизнеса? Значит есть бизнес который производит птичье молоко?

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

Это правильно с точки зрения бизнеса, но не всем это интересно.
Кому это неинтересно, тот не нанимается в бизнес.
НЛО прилетело и опубликовало эту надпись здесь
+1
Есть такая вещь, называется «требования», они могут быть подробными или общими, но они во-первых должны быть и во-вторых их должен формулировать отнюдь не программист.
Вот дальше воплощать эти требования должен программист, при этом как эти требования решают задачи бизнеса его в идеале не должно волновать вообще.

А требование о том где должны хранится данные, и на каком языке программа вообще должна быть написана кто должен писать? Есть требование, сервис должен "работать", и держать 1000rps, но достаточно ли этого программисту?

Разработчику этого должно быть достаточно. Но он также должен смотреть немного вперед и учитытьва различные «нефункциональные требования» к разрабатываемому продукту которые формируются исходя из простоты сопровождения, поддержки и дальнейшего развития продукта.
Где и в чём должны храниться данные, выводится из требований бизнеса как решение, которое, одновременно, является задачей реализации. «Держать 1000rps» — тоже решение, выводимое из требований бизнеса на основе интенсивности потока запросов. Интенсивность тоже вычисляется из требований к масштабам применения и их динамике в зависимости от сценариев развития бизнеса. Как обеспечить 1000rps — задача проектирования и епархия исполнителя. Ответственность бизнеса — предоставление ресурсов для этого. Ответственность исполнителя — расчёт требуемых ресурсов. Такой расчёт — тоже задача проектирования.
Никаких противоречий, пока бизнес не перекладывает на исполнителя разработку методов и методик решения своих задач под видом недоработанных и пропущенных требований.
Например, программисту ставят задачу на разработку автоматического переводчика текстов на естественных языках. При этом, если ему предоставляют спецификацию методов перевода (т.е. их можно выполнить вручную на нескольких отдельных примерах), тогда это корректная задача, иначе — некорректная ввиду неопределённости метода решения, относящегося к епархии бизнеса, а не программиста.
Ответственность бизнеса — предоставление ресурсов для этого. Ответственность исполнителя — расчёт требуемых ресурсов.

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

В ситуации дефицита кадров программиста может вообще ничего не волновать. Бизнесом больше, бизнесом меньше — какая разница?

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

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

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

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

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

Из того, что всегда существует и необходима возможность уточнения и специализации (поэтому контрпродуктивно даже предполагать некое единое и на все времена разделение процесса разработки и единственность значения переменной «соответствующе» на все случаи жизни) вовсе не следует некорректность принципов и подходов, на которых выполняется определение видов деятельности, их классификация, как и классификация их групп. А я говорил выше именно про них и про нарушение границ епархий, ведущей к ошибке ожиданий и ошибке поручения задачи программисту. Говорят, в сферической западной компании, если сотруднику поручают задачу, которая не относится к его обязанностям, он даже не говорит об этом, а просто не делает её: исправлять ошибки менеджера — не его забота. Потому что первый принцип управления — каждый должен заниматься своим делом, чтобы распределение деятельности стремилось к оптимальному.

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

И заметьте, вы ничего не сказали про епархию бизнеса, затронув исключительно деятельность, относящуюся к реализации программной системы (продукта). Т.е. нет никакого противоречия с тем, что я сказал выше. Более того, программирование и конструирование, как сущность деятельности, имеет место и на уровне бизнеса. Однако исполняющие объекты там имеют иную природу, спектр возможностей и особенностей. Основной признак — это природа объекта обработки и его среда функционирования.

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

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


Нюансы, как я понимаю, именно в определении того, что является своим делом для программиста уровня senior. Для меня, равно как для правительства, например, России, принимающего и утверждающего образовательные и профессиональные стандарты, туда входит далеко не только чисто программирование ("создание программного кода в соответствиии с техническим заданием (готовыми специфиакциями)), но разработка требований и спецификаций, и разработка архитектуры, и тестирование...


Т.е. вы понимаете и эти принципы, и роли

Принципы понимаю, роли — смутно. Что нужно сделать — знаю, кто что должен делать "по науке" — нет. Нередко я реализовывал весь (кроме вывода из эксплуатации) цикл какой-то задачи полностью самостоятельно, начиная от идеи типа "давайте будем оказывать такую-то услугу, наша лицензия от регулятора это позволяет, а мы это не делаем" и заканчивая автоматизацией отчётности этому регулятору, включая оценку затрат и сроков окупаемости. Бизнес-задача это или нет — создание нового источника доходов для компании из "ничего"?


Это не говоря о постоянных инициативах по другой стороне достижения основной бизнес-цели — получении прибыли — снижение издержек. Сначала описание текущих бизнес-процессов с оценками времени и стоимости каждого действия, потом поиск возможных этапов для автоматизации тоже с оценкой затрат и сроков окупаемости. Топ-менеджмент только выбирал, что интересно, что нет, и приоритеты...

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

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

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

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

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

Как эффективность связана с реализацией поставленных задач? Вот вам прислали архитектуру вашего модуля в большом проекте и ТЗ по нему. Где там эффективность бизнеса? Вы профессионал? Ну так вперед, сделайте профессиональное решение по проекту бизнеса. Кто там кого боится?) Причем тут это?

Полученные бизнес ценность ВСЕГДА определяет бизнес. Если программист начинает мнить себя техническим директором, он или стает им или валит нахрен) В противном случае он просто начинает МЕШАТЬ развиваться бизнесу.
Очень не хватает специально обученных аналитиков, архитекторов — прослойки, которая сможет учесть все бизнес-процессы, текущую архитектуру, и дополнит ТЗ рекомендациями по решению задачи.
Без такой прослойки вмешательство в бизнес-процессы отдается на откуп программистам, многие из которых понятия не имеют о бизнес-процессах в компании, даже доступа к этой информации не имеют.
В итоге имеем то, что имеем: реализацию через одно место.

Решать задачи бизнеса, а не думать за бизнес, как владельцу бизнеса заработать больше денег.


Пускай владелец думает, как ему заработать больше денег — и ставит задачи.


P.S. Если программист и владелец бизнеса — одно лицо — разумеется, задача остается прежней.

Именно. И сейчас обычно говорят первое, а подразумевают второе.
думать «вместе» с владельцем. предлагать свою экспертизу для улучшения решения проблемы бизнеса/клиента.
Владелец будет при этом делиться появившимися доходами?
Зависит от владельца и от вашего контракта. И как раз таки у сениоров относительно часто бывают бонусы зависящие от оборота/прибыли фирмы.

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

да.
Так любимые всеми ДМС, печеньки, чаи/кофе/соки, оплата обедов, скидки на спортзалы/бассейны/массажисты, лучшая техника. И это не считая премий и увеличенных относительно среднего рынка зарплат.
Чем больше доход у владельца, тем больше он готов вернуть "в оборот" в компанию для мотивации персонала

Чем больше доход у владельца, тем больше он готов вернуть «в оборот» в компанию для мотивации персонала

С чего бы это? Многие владельцы живут по принципу «не надо чинить исправные вещи», и если все хорошо и безоблачно, то они скорее задумаются о вертолётах и шубохранилищах покупке конкурентов и агрессивном маркетинге, расширении штата, чем о новых бонусах для технарей.

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

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

Большая прибыль позволяет бизнесу поднимать условия труда и нанимать лучших специалистов. Зачем гугл там делает эти свои бесплатные рестораны и топовые офисы? Вряд ли из любви к людям. Это просто позволяет им привлекать лучших специалистов. Но все это следствие того, что часть своей прибыли они готовы инвестировать в персонал, а не в вертолеты и шубохранилища.


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

Зачем гугл там делает эти свои бесплатные рестораны и топовые офисы

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

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

Нюансов много. Если бизнес покупался ради клиентской базы, то да. А вот если ради технологий…

есть "готов" и есть "инициирует сам".


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


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


Вы говорите только про второй пункт. Я же — про оба сразу

ДМС, печеньки, кофе, обеды, спортзалы и техника — это не доход, а условия работы.


И я не слышал, что где-то можно было бы сказать "Давайте вы не будете мне покупать 2 монитора по 30 дюймов, а купите 2 по 21, а разницу выплатите деньгами" или "А давайте я печеньки есть не буду, я их не ем, а разницу возьму деньгами"

Программист при этом будет рисковать собственными средствами?
Именно!
В США очень популярно часть зарплаты выдавать акциями. В прямом виде владелец делится доходами а программист рискует собственными средствами.
В Европе реже, но тоже уже встречается.
Консультанты, в каковом качестве тут предлагается поработать программисту, часто рискуют собственными средствами?
Ну так консультанту при этом за его консультации дают зарплату и премии, а не долю в бизнесе, как тут выше предложили сделать для программиста. О чём же и речь.

Если это входит в рабочий договор:


"Чувак, давай мы вместе будем думать, как моему делу заработать больше денег, а ты с этого свой рублик получишь" — не вопрос! Договор, потом вместе подумаем.


Но подразумевается-то другое: "Чувак, тыжпрограммист, придумай, как этим твоим айти срубить мне побольше бабла?"


P.S. А еще бывает, что ты придумываешь, как заработать бизнесу побольше денег, рассказываешь об этом на совещании, твой менеджер рассказывает об этом директору… и получает премию за тебя.
P.P.S. Еще и не так бывает…

Еще и не так бывает…

А это называется «софт-скиллы». Нет какого-то единого универсального алгоритма поведения в коллективе. Надо просто понимать, с кем ты работаешь, что это за люди, насколько им можно доверять, что им можно говорить, что им нужно говорить, и что от них можно получить. И вести себя с ними соответствующим образом.
«Чувак, давай мы вместе будем думать, как моему делу заработать больше денег, а ты с этого свой рублик получишь» — не вопрос! Договор, потом вместе подумаем.

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

Да, а ещё бывает, что ты написал код по ТЗ, проект работает, приносит прибыль и менеджеры получили прибыль. Но ведь нам как раз и платят зарплату за написание кода, нет?
Просто надо учитывать, что предложения по оптимизации бизнеса — часть должностных обязанностей. Чем выше позиция (например, senior) тем чаще.
И уж в любом случае, скилл «я умею решать задачи бизнеса» позволяет выторговать больше при приёме на работу, порой сильно больше чем «я знаю новый фреймворк».
что предложения по оптимизации бизнеса — часть должностных обязанностей

Что, прямо так в трудовом договоре и записано? Или только про оптимизацию и повышение качества кода?

Вы знаете у меня в трудовом договоре и про оптимизацию и повышение качества кода тоже ничего не написано. И что мне теперь перестать этим заниматься?

Где-то у меня точно написано что-то вроде "выявление узких мест и недостатков автоматизируемых бизнес-процессов и предоставление рекомендация по их улучшению"

Заметьте — рекомендаций. А дальше что скажут — то и делать.

Специфика IT и программирования в том, что обязанности очень трудно формализовать. Я ещё ни одной удачной должностной инструкции не встречал. Обычно там нечто не конекретное и неизмеримое, по которому можно устроить «итальянскую забастовку».
У меня в трудовом договоре написано нечто вроде «должен разрабатывать программное обеспечение». Для того и было весьма долгое собеседование, чтобы понять что я могу делать это «нечто» примерно на уровне ожиданий фирмы.
Если же Вы ищете место, где надо «писать код по готовому ТЗ», то и такое место легко найдёте. Просто ЗП будет несколько ниже.
Для того чтобы решать задачи бизнеса программист должен писать не программы, а бизнес-план.

А вообще «решать задачи бизнеса» — это просто очень неудачная формулировка.
К примеру, «решать боли бизнеса» — это уже чуть лучше.
Потом можно дальше уточнять «решать боли бизнеса в рамках своей компетенции», и т.д.
В итоге от первоначальной формулировки не остаётся ничего.
Исчезает сам предмет обсуждения.

"Боли" это что-то новенькое =) Обычно это называют "проблемами". =) Что опять таки тоже не задачи, и по сути вы говорите именно о них.

НЛО прилетело и опубликовало эту надпись здесь

Задачи программисту должен ставить менеджер. Он же должен объяснять, как его работа будет влиять на конечные задачи бизнеса.
Вот, допустим, вы программист. Я, как бизнесмен, прихожу к вам и говорю, напишите мне соц. сеть, которая порвёт фейсбук и заработает миллиарды. Я вам за это зарплату буду платить. Не можете? Ну какой же вы сеньор, если не способны решить задачи бизнеса!

А я отвечу что-то вроде "а какую задачу решаем?"

Как какую? Заработать миллиард владельцу бизнеса! Ну и вам чтобы на зарплату хватало.

Это цель бизнеса, а не задача.

Вам владелец бизнеса, который, кстати, зарплату платит, такую задачу поставит. Решайте ее как хотите. Вы же сеньор, должны участвовать в достижении целей бизнеса.
Вы не путаете сеньора с совладельцем бизнеса?
Путаю не я, а владельцы бизнеса или топ-менеджеры, с которыми автору статьи приходится работать.
Ну так не нанимайтесь на такую работу, проблем то.
Если должностные обязанности — решить как заработать миллиард, то это весьма особые скиллы и образование. Если у Вас нет желания эту работу делать, ищите другие вакансии. С другой стороны, за такое и платят больше.
Так это сейчас я опытный, знаю чего хочу и не пойду на такую работу.
А когда ты зеленый, но все вокруг в один голос говорят что задача сеньора — грубо говоря, зарабатывать миллиард владельцу, то им веришь.
Aeternamens все правильно написал. Я вам сходу назову 5 известных компаний в РФ, в которых я работал или был на собесе. И там мне говорили что я думать круглые сутки, как помочь бизнесу. Повышать продажи, приносить прибыль.
Чувствуете? Не писать лучше код или улучшить доступность сервисов, а думать о прибыли.
Разумеется, может мне не повезло и таких компаний с кривыми ожиданиями в РФ всего 10 штук, и я попадал во все из них. Но сомнительно.

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

Но с другой стороны, вот ты молодой и зелёный, тебя взяли на работу сеньором, где тебе платят зарплату сеньора, но там от тебя требуют думать, как помочь бизнесу, хотя ты хотел просто писать код.
Так вот, разве это не круто, что тебя вытащили из норы, встряхнули и заставили влезть в сферу, от которой ты хотел убежать, как школьник от медсестры с прививками, но зато которая даст тебе пачку дорогих профессиональных скиллов? При этом, минуточку, совсем не бесплатно, и главное, в молодости — тогда, когда ты хоть и будешь ныть, но на самом деле станешь профессиональнее, и потом в итоге получишь куда больше дивидендов от этого?
И я о том же! Сталкивался неоднократно с таким подходом, когда собственник бизнеса считает, что сотрудники должны сами придумать как им заработать денег, да побольше. Как правило, в этом случае перекладывается с больной головы на здоровую. То есть у собственника, видимо, проблемы с развитием бизнеса, сам он не знает, как их решить, и считает, что сотрудники должны все сделать за него. Ведь им же за это деньги платят. Задачи ставятся абстрактные, а спрос идет о том, где результат, в материальном выражении.
Такой собственник, похоже, хочет получить бизнес-консультанта по цене и на правах наёмного работника. В 2003 в отношении некоторых моих знакомых такое прокатывало…
Нормальное желание — максимизировать выгоду минимизировав расходы.
Максимизировать сиюминутную выгоду, получив навыки решения проблем в стиле «найти лоха», которые потом будут мешать, испортить репутацию на рынке труда, что заставит поднять зарплатные обещания…
Ну то такое. Существование кучи компаний, много-много лет работающих в таком стиле, доказывает, что он вполне себе жизнеспособен.
Я вам сходу назову 5 известных компаний в РФ, в которых я работал или был на собесе. И там мне говорили что я думать круглые сутки, как помочь бизнесу. Повышать продажи, приносить прибыль.
Чувствуете? Не писать лучше код или улучшить доступность сервисов, а думать о прибыли.

Несоответствие вакансии и должности встречается очень часто, и хорошо, когда Вы это распознали на собеседовании, и хуже когда после. И это не обязательно «повышать продажи», бывает ведь и так, что в вакансии C#, а работать надо на C++.
В любом случае есть только 2 варианта — согласиться пробовать новую для себя сферу (возможно, с повышением зарплаты), или вежливо отказаться.
А когда ты зеленый, но все вокруг в один голос говорят что задача сеньора — грубо говоря, зарабатывать миллиард владельцу, то им веришь.
А другие сеньоры рядом были? Что говорили они?
Так и говорили) Они сами в это искренне верят.
Но я наконец понял, что мнение других людей может быть неправильным для меня.
Посмотрите результаты опроса и почитайте комментарии, все считают по-разному.
“Opinions are like assholes, everyone has one but they think each others stink.” © кто-то.
Я вам сходу назову 5 известных компаний в РФ, в которых я работал или был на собесе. И там мне говорили что я думать круглые сутки, как помочь бизнесу. Повышать продажи, приносить прибыль.
А они сами в это верили? Или говорили просто потому что «так надо» было говорить?
А вот это не знаю.
Кто-то правда верит.
Кто-то может считать что так он будет казаться менее нужным в глазах бизнеса и боится признаться.

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

По замыслу, вы должны не предлагать, а делать. Ожидается, что вы купите биткоины, когда они только появились (сильно желательно на свои, надо же проявлять активность), продадите их на хаях, прибыль отдадите владельцу бизнеса (помните, вы же все это время на него работали?), а сами получите бонус по итогам года и памятную медальку.
Зачем тогда нужен такой владелец бизнеса, если миллиард можно заработать и без него?
Вы задаете правильные вопросы! )
Скажите, вы уже работаете на себя, зарабатывая свой миллиард?
Я не могу заработать миллиард, но владельцы бизнеса, на который я работаю, передо мной таких задач и не ставят.
Ну какой же вы сеньор, если не способны решить задачи бизнеса!

… а знаете, чем (в числе прочего) отличается хороший senior от плохого? Тем, что знает, какие задачи он не может решить.

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

Угу. Это называется "объяснить задачи бизнеса", после чего они их и будут решать.


Кстати, если владелец бизнеса собирается мне объяснять, как мне разрабатывать ПО, возможно, кто-то из нас не на своем месте.

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

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

Он знает какие задачи:


  • не может решить
  • не хочет решать
  • не будет решать

И может объяснить руководству:


  • почему задачу решать не нужно
  • почему задачу решать бессмысленно
  • почему задачу решать вредно

:)

… и еще миллион способов отказаться от задачи.

Вот да. Код пишет кодировщик. Это уровень джуна, максимум мидла.

Разработчик решает задачу. Это немножко другое.
Согласно моему трудовому договору и должностной инструкции, я не обязан «решать задачи бизнеса», под формулировку «решать задачи/проблемы бизнеса» можно подвести всё, что угодно.
Идти туда, где занимаются инфраструктурой, а не бизнес логикой.
Таких мест работы/отделов в фирмах/должностей не очень много, но они есть.
Как раз сейчас занимаюсь инфраструктурой, гораздо приятнее

Ну вот вы и нашли своё текущее место. Бизнес тут ни при чём.
Рад за вас.

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

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

В моем случае такой бизнес-проблемой в компании NobleProg Ltd (которая специализируется на разных корпоративных IT-курсах) было большое количество по сути заваленных (превратившихся в чистую лекцию без практики) курсов. У заказчиков отдел безопасности в последний момент говорил «нет», или их просто не предупреждали, что нужно открыть доступ к какому-либо из внешних ресурсов или поставить какую-то программу на компьютеры учащихся. Мое решение: сделать так, чтобы для участия в курсах не требовалось ничего, кроме браузера. Сделал шаблоны виртуальных машин с VNC, научил менеджеров их клонировать на наших серверах, поставил NoVNC на веб-сервер, готово. С тех пор на моей памяти был только один сорванный из-за службы безопасности курс (в одном банке блокируют все вебсокеты, так как не умеют отслеживать утечки и атаки, связанные с ними).

Общее впечатление от статьи: автору не повезло, поскольку его заставляли решать задачи, которые он решать не умеет или не может.
Это решение скорее не задач бизнеса, а проблем бизнеса.
инфраструктура — это тоже бизнес, только у него другой заказчик.
На мой взгляд есть две совершенно независимые задачи:
— на основании потребностей бизнеса сформулировать ТЗ/требования
— на основании ТЗ/требований написать программу

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

Первая задача решается аналитиком, вторая разработчиком.

А вариант "на основании потребностей бизнеса написать программу" полностью исключаете?

НЛО прилетело и опубликовало эту надпись здесь

И тут вдруг всё упирается в понимание того, что возить кораблем, строить мост или туннель имеют разную цену. А кто, кроме инженера, способен оценить эти проекты? Не менеджеры же будут считать сколько бетона пойдёт на мост или тоннель — это считает инженер. Ну да, возможно не в деньгах, а в метрах в кубе. Его задача разработать выгодный (эффективный по качеству и цене) проект. Всё равно эффективные решения не могут быть с чётким разделением обязанностей и знаний, как этого хочет ТС.

Автор говорит о мотивации. «Программист решает свои внутренние вопросы создавая красивый и сложный код. И если при этом программист случайно решит проблему бизнеса, то программист не будет против. Но когда программиста хотят заставить писать код под проблему бизнеса — это возмутительно.»
В 90-е годы в «соросовских» учебниках по экономике похожие вещи писали про (сферического в ваккуме) предпринимателя, решающего свои внутренние вопросы в виде получения прибыли и пр этом случайно приносящего пользу обществу…
Писать «сферического коня в вакууме», потому что могу — не самое выгодное занятие. Таки неплохо бы иметь «точки приложения» своего продукта. ИМХО, хороший программный продукт — результат работы какой-никакой команды. И платит всей этой команде бизнес, поэтому не получится не обращать внимания на то, как изделие продаётся…
Полностью поддерживаю, если говорить про конечный продукт, то тут уже акцент смешается и с качества кода, интереса и удобства разработчиков на потребности и завлекалки потребителей, потому что именно потребители в конце концов платят зарплату, которую так любят все разработчики, а если разработчики не делают лучше продукт для потребителей, но потребители попросту выберут другой похожий продукт, который лучше решает потребности потребителей и зарплата разработчиков также уйдёт тем конкурентам, которые более склоны решать проблемы в итоге потребителей.

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

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

А автор просто ищет себя, не каждая работа всем подряд подходит, это тоже важно, чтобы не быть мышами рядом с кактусом
НЛО прилетело и опубликовало эту надпись здесь
На самом деле, промеру видно только лишь его видение проблемы, бизнесу видно гораздо больше, и да, видение бизнеса может быть неверным, а промера верным, но обычно просто прогер не видит всей ситуации. Часто проще заткнуть дыру, увеличить технический долг, чем все сейчас решить. Вы привели отличный пример со своего опыта: когда решили задачу бизнеса таким путём, который бизнес даже не видел в силу своих знаний, но давайте будем честными, но сколько же раз бизнес был прав, а мы нет — гораздо чаще, чем этот один очень удачный пример. Ну и кроме того, ведь Вы не решили в примере (я гипотетически рассуждаю) задачу бизнеса, Вы решили свою проблему с отчетами, а может бизнесу гораздо дешевле было давать задачи для Вас с отчетами каждый день, но при этом те 6 человек делали какую-то непонятную Вам мелкую работу, ради которой не было смысла нанимать отдельных людей, но дополнительно это было приемлемо, а когда они стали не нужны, то ту мелкую работу надо было кому-то делать, но некому. Я очень утрировал, конечно, и явно тут налицо дурость руководства, и я не удивлюсь, что долго (или эффективно/прибыльно) компания та не проработает. Но вот лично сказать, что там ни эффективностью (я не про эффективных менеджеров) не пахнет и то, что там не ценят хорошие идеи это факт, но опять же это отдельный случай, в подавляющем большинстве обычно наоборот (в моей практике как минимум)
По аналогичным причинам выгодополучатели некоторых бизнесов предпочитают мириться с воровством и откатами вместо того, чтоб платить людям «нормальную» зарплату и внедрять нормальные системы учёта.
Ну, как бы замените «программист» на «уборщица» и смысл статьи вообще не поменяется.
И о бизнесе программист тоже должен в какой-то мере думать (решать задачи — скорее всего нет, но программист может что-то подсказать по функционалу, предостеречь, возможно, предложить что-то сделать иначе минимально в рамках того, как будет работать его продукт, кто его будет мейнтенейнить, будет ли код читаем для другого программиста, кто вообще будет пользоваться программой и т.д.
НЛО прилетело и опубликовало эту надпись здесь
В результате выстраиваются иерархии, иерархии иeрархий и вырастает тот самый кровавый ынтырпрайз, в котором никто ни за что не отвечает и живёт в своём круге комфорта. И оно всё работает (пока в бизнесе есть деньги), но крайне неэффективно и многие из него бегут в мелкие стартапы, где «бизнес» сидит под боком и ты ощущаешь, что ты не мелкий винтик в неповоротливом механизме и по сути ни на что особо не влияешь, а видишь реальный результат своих действий (или бездействия) на KPI бизнеса чуть ли не каждую итерацию. Но это не для тех, кто любит копаться в своей песочнице с минимумом внешних раздражителей.
НЛО прилетело и опубликовало эту надпись здесь
Кодит кодировщик. Джун, максимум мидл. С соответствующим уровнем квалификации и оплаты.

Правильно ли я Вас понял — уборщица тоже должна думать о бизнесе?

Притча о камнетёсах
Однажды по пыльной дороге шел путник и за поворотом, на самом солнцепеке, в пыли, увидел человека, тесавшего огромный камень. Человек тесал камень и очень горько плакал… Путник спросил у него, почему он плачет, и человек сказал, что он самый несчастный на земле и у него самая тяжелая работа на свете. Каждый день он вынужден тесать огромные камни, зарабатывать жалкие гроши, которых едва хватает на то, чтобы кормиться. Путник дал ему монетку и пошел дальше. И за следующим поворотом дороги увидел еще одного человека, который тоже тесал огромный камень, но не плакал, а был сосредоточен на работе. И у него путник спросил, что он делает, и каменотес сказал, что работает. Каждый день он приходит на это место и обтесывает свой камень. Это тяжелая работа, но он ей рад, а денег, что ему платят, вполне хватает на то, чтобы прокормить семью. Путник похвалил его, дал монетку и пошел дальше. И за следующим поворотом дороги увидел еще одного каменотеса, который в жаре и пыли тесал огромный камень и пел радостную, веселую песню. Путник изумился. «Что ты делаешь?!!» – спросил он. Человек поднял голову, и путник увидел его счастливое лицо. «Разве ты не видишь? Я строю храм!»

Прекрасно её знаю. Только это про мотивацию персонала.


Так должна ли уборщица думать о бизнесе?
И что это думанье будет из себя представлять? Посчитает она задачей бизнеса экономию расходов(потому что задача любого бизнеса — больше денег учредителю приносить, меньше тратить) — да и поставит самое дешёвое вонючее мыло. И бумагу туалетную самую экономную. И салфетки бумажные дешевейшие, что рвутся не вытащившись.

не та призма у вас.


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


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


  • с одной стороны, самый эффективный код — код, не исполььзующий библиотек-прослоек и написанный фактически на машинных кодах
  • с другой стороны, меньшие трудозатраты — переиспользование библиотек и использование языков/фреймворков, позволяющие вам писать функционал быстрее

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

Так должна ли уборщица думать о бизнесе?

Холодная вода — 1 сантик
Горячая вода — 5 сантиков
Бумажное полотенце — 5 сантиков
Туалетная бумага(обычная) — 1 сантик
Туалетная бумага( не рвущаяся) — 5 сантиков
Жидкое мыло — 5 сантиков
Открыть дверь туалета — 1 сантик
Какое поле для думания о бизнесе, и это только туалет, а возьмем коридор:
Пройти по коридору не обруганным матом — 5 сантиков
Пройти обруганным матом 1 сантик
Пройти молча — 1 фертинг:-)

Больше денег, точнее прибыли- это не задача бизнеса, а цель

Так должна ли уборщица думать о бизнесе?

Да, должна. И мне довелось с такими работать.
Которые не выдёргивают сервер из сети, чтобы воткнуть пылесос. Протирают столы сотрудников с учётом личных пожеланий, и так же выбирают туалетную бумагу и мыло. И держат кабинет директора в чистоте, но не лезут с пылесосом под ноги к клиентам.
Ну или сейчас моют ручки дверей чуть чаще, чтобы бизнес мог продолжать работать в условиях вируса.
Которые не выдёргивают сервер из сети, чтобы воткнуть пылесос.

Если это держится на конкретно осознающей задачи бизнеса уборщице — то это жуткий bus factor.
Если оно держится на описанных предписанных методах и процессе уборки и относящихся к тому приказах — то это не она думает(хотя и может), а подумали думавшие о процессе.


И только если она сама заранее подумала, до всех бумаг и объяснений "как тут убираться" — то да, тогда это она подумала

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

Вот именно так и было. Ценили и платили, за то что директору не нужно расписывать в указах «быть улыбчивой, не быть вахтёром, не протирать мониторы грязной тряпкой», а можно поставить задачу «сделать чисто» и получить решение.
— Каменщик, каменщик в фартуке белом,
Что ты там строишь? кому?
— Эй, не мешай нам, мы заняты делом,
Строим мы, строим тюрьму.

Валерий Брюсов

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

Хороший исполнитель, это как качественная шестеренка в большой машине. Но хочешь больше творчества — тим лид, архитектор/менеджер и т.д.

А вообще есть программеры, которым большее и не надо, их устраивает кодить до старости)
На мой взгляд, как программиста с 20+ стажем который уперся в потолок «инженерной ветки» развития, творчество в программировании и творчество в управлении — это несколько разные вещи. И если я например не умею управлять командой, это не значит что я не могу разработать хорошую архитектуру.
Решать задачи бизнеса != формулировать и выяснять задачи бизнеса. Все решают задачи бизнеса — хоть джун, хоть мидл, хоть ресепшен, хоть охрана.

И большой вопрос, что именно происходит на этих совещаниях с бизнесом. Я периодически принимаю в них участие и, обычно, вижу свою роль в том, чтобы вовремя сказать «Подождите минутку, коллеги: если мы будем делать вот так, то всё сдохнет очень мучительной смертью. Может мы упростим вот здесь и здесь, это выкинем как ненужное, а вот этим озаботим коллег, отвечающих за смежную систему?»

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

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

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

Возможно, у меня с вами и автором разное видение того, что такое «задачи бизнеса». В моём понимании, в контексте возмущения «не хочу решать задачи бизнеса, хочу программировать», это все противоположное решению программистских задач красиво, интересно, с проявлением творчества, перепробовав энное количество подходов и выбрав лучший, bleeding edge и state of art. То есть все, чему как раз и мешают «граничные условия»: мы не можем переписать это легаси на последней версии языка, потому что оно просто приносит деньги, и нужно просто латать некоторое количество багов в неделю, а не делать проект лучше, это бизнесу не нужно.

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

Бизнес любит тех, кто ему помогает. Если вы решаете его проблемы, то бизнес это ценит и отвечает взаимностью.

Конечно, никто не мешает вам сидеть серой мышкой, работать с 9 до 17 и что-то там программировать, но тогда и отношение бизнеса к вам будет соответствующее.
НЛО прилетело и опубликовало эту надпись здесь

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

попробуйте посмотреть в сторону DDD, где программист работает вместе с бизнесом
Я наверно старею :), но мне буржуйская терминология «сеньор-помидор» (прям как в Чиполлино) всегда режет слух… В принципе здесь ответ и заключается. Я ставил себя на место бизнесмена и приходил к выводу, что для стабильного зарабатывания денег лучше нанимать не плохо управляемых гениев, а легко-заменяемых программистов-винтиков. Соответственно под этот конвейер определенным образом настроив бизнес-процессы. Поэтому да, за редким исключением сама система этих рангов заточена на решение бизнес-задач, на конвейер по сути.
НЛО прилетело и опубликовало эту надпись здесь
Вот и я по той же причине уже давно не работаю на дядю. Не интересно.
Программист должен решать задачи бизнеса, занимаясь при этом своим делом, — т.е. программированием.

Тавтология? Да, но увы, не всем доступная.
Вам тогда не в программирование надо, потому что это прикладная область. Вам тогда в компьютер сайнс надо.

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

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


Нет, я не бизнес. Я сеньор, тимлид, техлид, или как это еще можно назвать… Я бухаю с генеральным и поэтому мне доступны знания с другого берега. Например nivorbud совершенно прав про "винтиков": бизнесу не нужны гении, не нужны даже инженеры. Ему нужны легко заменяемые и управлемые винтики. Увы опять.

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

Откуда столько догматизма?) Ведь разный есть бизнес. И, как правило, все от конкурентного преимущества зависит. Условно, если бизнес зарабатывает на изготовлении пластиковых окон, и программист ему нужен для поддержания сайта и допиливания 1С, то да, гении задаром не нужны. Но есть ведь небольшое (да, реально небольшое) количество бизнесов, где идет прямая конкуренция ИТ-решений, как, например, HFT-фонды, где самый быстрый робот отнимает долю рынка мгновенно после запуска, или создание и продажа софта с высокой инженерной сложностью, как СУБД, движки для создания игр или компьютерное зрение, или работа с закупкой рекламы в реальном времени. Что-то у меня есть сомнения, что на легко управляемых посредственностях заработаешь хоть $1 в таких сферах.

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

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

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

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

Все эти архитекторы и аналитики в виде отдельных ролей обычно есть только в крупных командах.
В небольших командах, ИТ отделах и стартапах, где всего 4-5 человек работает, нет лишних рук чтобы выделять такие специализации. В лучшем случаее кто-то (тимлид) будет сразу мастером на все руки — и архитектором, и аналитиком, и кодером, и наставником для джунов. В обычном — прото все будет пущено на самотек.

Когда я был ТимЛидом в маленькой компании так и было — я был всеми и сразу.
Програмный инженер создает автоматы как продукт интеллектуальной деятельности, которые встраиваются в деловые процессы и обеспечивают их деятельность, более или менее, частично или приципиально. Ситуации по отношению к автоматизации разные.
Должен или не должен это вопрос договоров (фактических), в частности, включающую отвественность и отдачу от произведенного интеллектуального продукта.
Если некоторые управляющие участники обесценивают продукт работы програмного инженера, входящий в общий продукт, то возникает подобная статья.
Или переоценки программного инженера стоимости своего продукта, так тоже бывает.
Как следствие не-договоренности.
Да разумеется программист не должен решать задачи бизнеса. Программист вообще никому ничего не должен, помимо уже взятых на себя обязательств. Да и труд у нас исключительно добровольный.

Другое дело, что бизнес не должен, (и самое главное — не будет) особо платить программисту, если тот не решает его задачи. Неособо — будет, и такой работы на самом деле много, в том числе и программистской. Идите к тем, кому нужны работники делать работу руками за деньги, а не к тем, кто ищет способных-креативных-инициативных. Контор первого типа весьма хватает.
Инженер, который строит мост, должен ли вообще задумываться о том, как этот мост будет окупаться? Вообще нет, его задача — спроектировать и построить мост, который уложится в сроки, в смету и простоит указаное по плану количество лет.
Извините, но этот пример, как и следующие — полная чушь. У вас есть непонимание того, что значит «задачи бизнеса». Инженеру не нужно продавать — на это есть продажники. Инженеру нужно делать так, чтобы его решение соответствовало требованиям.

Пример с мостом. Инженер в первую очередь должен не играться для своего удовольствия, годами придумывая различные решения, а построить мост в сроки, который выдержит расчетную нагрузку и не будет при этом неоправданно дорогим. Если инженеру сказали что нужен деревенский мост через ручей, он не должен изолироваться на 10 лет и после этого принести чертежи уровня какого-нибудь Ховраха или Джорджа Вашингтона.

Если забить на мосты (потому как все аналогии лгут) и вернуться непосредственно в разработку, плохой программист будет вводить в проект все хайповые технологии без разбору, просто потому что ему интересно с ними поиграться. Хороший программист будет вводить хайповые технологии тогда, когда это поможет проекту. А чтобы знать, что поможет проекту, а что повредит, нужно знать, какие вообще у бизнеса ожидания от этого проекта, чего именно они хотят этим добиться и как планируют его использовать. И для этого нужно, увы, общаться с менеджерами. Иногда хотя бы для того, чтобы обрубать некоторые их идеи еще на взлете — потому что именно мы разбираемся в технической реализации и можем сказать, почему то или иное решение бизнесу не подойдет.
Спорил с менеджером проекта, и аналитиком, и дизайнером, чтобы сделать пользователю удобнее и комфортнее, хотя это было некрасиво с точки зрения кода и архитектуры. Код проекта получался все хуже.

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

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

А вот думать о том как там что-то продать программист на мой взгляд не должен. Даже сениор.

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

И неужели при этом инженер не должен думать как сделать этот мост так чтобы пользоваться им было «удобно и комфортно»? На мой взгляд должен. И это как раз и есть «решать проблемы бизнеса».
НЛО прилетело и опубликовало эту надпись здесь
Ну вот точно так же на мой взгляд и с кодом. Просто писать код по ТЗ это задача для «инженеров», то есть миддлов/джуниоров. А сениор он и является тем самым «архитектором», который должен думать о том чтобы в первую очередь «мост стоял», но чтобы при этом он ещё и был «удобным».

А вот что считать «удобным» в каждом конкретном случае сениорам расказывают менеджеры/ПО/UX-специалисты и кто там ещё есть из всей этой братии.

П.С. Ну или кто по вашему должен брать на себя роль такого вот «архитектора» в разработке софта?
НЛО прилетело и опубликовало эту надпись здесь
Не их задача решать что правильно, а что нет.

А чья тогда? Сеньор — это, по сути, одна из самых высоких технических компетенций в команде. Он тоже решает, что правильно, а что нет. И если ему приносят ТЗ, которое по его мнению, «х...», в его ответственности почёркать, написать, где и почему х..., и как должно быть на самом деле, и вернуть на доработку.
Сеньоры тоже должны писать по ТЗ. Не их задача решать что правильно, а что нет.

Кто там решает это вопрос отдельный. И зависит скорее от того как выглядит иерархия и организация процессов. Архитекторы тоже не всё сами решают.

Но вот указать на ошибки/недочёты/недодумки и/или предложить лучший вариант, это на мой взгляд однозначно входит в задачи сениора. И это уже именно не «просто писать код по ТЗ». И это опять же на мой взгляд отличает сениора от миддла.

И самое главное если по вашему сениоры о таком думать не должны, то кто тогда должен о таком думать? Ну вот кто у вас на фирме занимается такими вещами? Неужели вообще никто?
НЛО прилетело и опубликовало эту надпись здесь
Если нет, то он решает в рамках поставленного ТЗ.

Ну то есть если у вас сениору положат на стол абсолютно бредовое ТЗ, то он молча будет по нему работать и даже не попытается предложить более адекватный вариант?

Из того что получается хня, не его забота.

Вот честно, не понимаю как так можно работать. Это же себя не уважать…

Сеньер не архитектор. Это параллельные ступени в моем понимание. Кто-то идёт кодить, а кто-то идёт в архитекторы.

Так архитект(назовём его так чтобы отличать от архитекторов в строительстве) он действительно совсем другими вещами занимается. Он грубо говоря следит чтобы архитектура всего проекта в порядке была. И скажем следить за usablity/логичностью/адекватностью того что там требуется в каждом отдельном ТЗ у него обычно просто времени не хватит.

НЛО прилетело и опубликовало эту надпись здесь
Да да и да. На все вопросы

Но тогда чем такой сениор отличается от миддла? Зачем платить ему больше зарплаты если миддл с задачей «просто написать код по ТЗ» обычно справляется не хуже.

Лично меня? Коробит.

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

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

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

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


Как по мне — разница в уровне решаемых задач. Синьор может решать задачи по проекту в целом, в принципе он может написать все с нуля в одиночку (вопрос лишь во времени) и оно взлетит. Миддл может решать задачи в рамках отдельной подсистемы или модуля, но собрать по-настоящему крупный проект в одиночку не сможет — много чего не предусмотрит или просто не знает как сделать без подсказки. Джун вообще самостоятельно может работать только над небольшими четко поставленными задачами, попытки делать что-то уровня модуля или проекта превратятся в неразгребаемое спагетти.


Если ТЗ уже положили и утвердили (даже после возражений синьора о том, что в нем есть проблемы) — ну окей, кто платит тот и заказывает музыку, сделаем. Желательно только иметь документально подтвержденные (в виде сохраненной переписки, например) свидетельства того, что "а я же говорил!". Чтобы когда (и если) все все-таки грохнется, синьора не сделали крайним в духе "А чо ты не предупреждал? Говоришь, предупреждал? Я не помню, не было такого".

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

Если человек исключительно пишет по готовым ТЗ, то в моём понимании это не «решать задачи по проекту в целом». То есть даже если он в теории на такое и способен, то он всё равно это не делает. То есть мы имеем сениора, который решает исключительно миддловские задачи…

Вопрос в детализации ТЗ. Там обычно не прописывают технических деталей (ну или может мне просто не везло видеть полные качественные ТЗ). Обычно там просто хотелки в духе "система должна обрабатывать стотыщ запросов в секунду, иметь вот такие и такие типы операций, админский интерфейс должно позволять настраивать вот это и это, а формула для работы вот такая".


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


По мне это все и есть сеньорская работа

Если там не прописаны технические детали, то мы возвращаемся к «Сделать пользователю удобнее и комфортнее. И чтобы это было красиво с точки зрения кода и архитектуры.» И да, на мой взгляд это уже сениорская работа. Но вот автор статьи так похоже не считает.

Как правило прописываются метрики удобности и комфортности — время отклика, или необходимый набор операций. ЧТО надо сделать, а не КАК.


А как именно их достигать технически — это уже задача разработчика. И как раз тут должны решать синьоры-помидоры-архитекторы.

А задать вопрос "а зачем нам это надо? Может есть готовые решения? Или можно решить проще? " — это чья работа?

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

Думаю, что автору еще предстоит испытать большие разочарования от жизни, потому что в реальности происходит все следующим образом (цитата взята из реального договора на разработку программного обеспечения):
Подрядчик не вправе требовать изменения Договора (цены, сроков и т.д.) при получении уточнений, если только они прямо не противоречат Договору. Бремя доказывания такого противоречия лежит на Подрядчике.
Риск удорожания Работ вследствие реализации уточнений лежит на Подрядчике как на специалисте, который, будучи более Заказчика компетентным в области квалифицированного выполнения работ, аналогичных тем, которые являются предметом Договора, не предпринял всех возможных разумных действий к конкретизации и формализации ожиданий Заказчика до заключения Договора.

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

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

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

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

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

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

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

Берём одно и то же ТЗ, например на разработку платёжной системы и даём двум сеньорам. Один только что закончил аналогичную, другой всю жизнь делал интеграцию с 1С. Первый уточнит пару деталей, а потом сделает так, что заказчика устроит (после небольших правок).


Второй начнёт работу, начнёт разбираться в предметной области и плакать о том, как «меняются требования». «Ой, а вы не сказали про X, это новое требование и оно разрушит всю архитектуру». Конечно не сказали, это платежная система для банка, все подобные системы за последние 20 лет умеют X, это стандарт де-факто, о котором все знают.


Вот вам, если угодно, теория относительности ТЗ. То, что для одного четкое и понятное ТЗ, для другого просто масса букв. Как вы предлагаете бизнесу в этой ситуации подписываться кровью?

Ох какой знакомый пример. Делал софт для MPOS терминала, не имея вообще опыта в этом. Ух у нас чуть ли не месяц ушел чтобы сделать функционал отмены операции. Потому что оказывается там надо было ref number проставлять не новый, а такой же как у отменяемой операции. Нигде про это не сказано в документации, так как для тех, кто в этой сфере работает, это считается очевидным. А для нас, людей со стороны, это вылилось в огромную трату нервов и времени, и конечно все сроки полетели.

Есть сениор, который может в паттерны, архитектуры, подходы.

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

Я видел подобные условия, но в 100% случаев с моей стороны прокатывало добавление встречного пункта, например:
Дополнения к первоначальной спецификации, предлагаемые со стороны Заказчика, которые вводят новый функционал, либо изменения описанного в спецификации, вносятся путём подписания дополнительного соглашения к настоящему договору, с утверждением стоимости и сроков выполнения этих работ.
Согласен. Вполне себе рабочий вариант.
НЛО прилетело и опубликовало эту надпись здесь

А это как? Подрядчик вправе требовать изменения стоимости, но Подрядчик несёт риск удорожания (то есть всё что свыше изначальной цены из договора — за счёт Подрядчика?) Это будет стоить дороже на n рублей, но мы сами себе заплатим?

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

Чтобы не повторяться, также см. habr.com/ru/post/501244/#comment_21595036

Да, я понимаю основной посыл — если Подрядчик не подумал заранее, это проблема Подрядчика. Но зачем такая хитрая формулировка? Это же сводится к утверждению «договорная цена не может быть изменена» или я неправильно понимаю?
У меня нет опыта работы в аутсорсинге, но есть в промавтоматизации (нефтянке, энергетика) — там картина прямо противоположная, часто договоры дешевые, на грани или даже за гранью рентабельности, но потом добиваются допсоглашениями до приемлемой стоимости. Следствие порочной системы тендеров.

Формулировка как формулировка. Да, с одной стороны цена действительно фиксируется на стадии подписании договора. Но, с другой стороны, цена не ограничена потолком, если будет экономически обоснована.

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

Это всё не очень хитрое кунг-фу, и совремненые монстры аутсорс-разработки всё это умеют. Это, одна из причин, почему у них такой ценник — в него уже заложены риски.
изменения Договора (цены, сроков и т.д.) при получении уточнений

Правильно ли я понял, что заказчик может уточнять (считай, менять требования), а исполнитель при этом не может уточнять сроки? Решение простое — предложить свой вариант договора, а если откажутся — это не самый последний заказчик на земле.

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

А пока что все вокруг утирают им сопли, по крайней мере на сеньерском уровне. Очень уж сильный перекос — пока знакомый дизайнер-джуниор не может устроиться даже на стажировку — нигде не берут — мне делают интересные предложения как минимум раз в неделю. Тут недалеко и возгордиться, мол этот ажиотаж не из-за того что айти развивается бешеными темпами, а из-за того что я пуп земли, как пишет тут на хабре некий король дураков разработки.
Ок. Тогда может быть Вы скажите, кто должен выполнять работу, которая бы могла переложить формулировки технического задания с языка бизнеса на язык программиста? И не абстрактного программиста, а команды конкретных программистов, обладающих конкретным опытом и знаниями, а также психологическими особенностями?
Ок. Тогда может быть Вы скажите, кто должен выполнять работу, которая бы могла переложить формулировки технического задания с языка бизнеса на язык программиста? И не абстрактного программиста, а команды конкретных программистов, обладающих конкретным опытом и знаниями, а также психологическими особенностями?

Можно я скажу?
Таких людей очень мало. Иногда их называют «универсалы». Иногда «дабл трекер». Их меньше чем «архитекторов программного обеспечения».
Перевод с «экономического» языка на «технический» язык (и обратно) требуют высокой квалификации и в технологии и в экономике. И не только теоретической, но и практической квалификации.
Работа на границе разных дисциплин сложная, мало предсказуемая и самое главное всегда «кривая и косая».
Экономисты не любят «универсалов» потому, что они всегда ставят их в неловкое положение, не обладают точными знаниями по экономике, всегда во всем сомневаются и требуют большей детерминированности от задач.
Программисты не любят потому, что «универсал» мало что смыслит в софте, не умеет писать код, предлагает какую-то фигню, постоянно что-то меняет…
В общем, работа такого «переводчика» всегда создает кучу проблем, кучу ошибок с точки зрения специалистов.
Но! Все это они говорят после реализации этапа или задания. А перед выполнением этапа или задания специалисты обычно говорят нечто иное: «я не знаю», «это невозможно», «никто так не делает», «что за ерунда», «никто так не делает». Вот и приходится «универсалу» подставляться и брать на себя все рисковые решения и придумывать «на ходу» методы реализации задач.
Требовать от «инженера» или от «программиста» выполнения таких функций — некорректно. Задачи инженеров и программистов более детерминированные, более строго определенные. А попытка стать «универсалом» ведет как минимум к шизофрении :)

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

Ну? И? Какая все-таки категория разработчиков должна заниматься такими делами? В контексте обсуждаемой статьи.

Ещё раз. Это не категория, это роль.


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


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

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

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

Далее. Если человек умный, то смотрю на уровень его любознательности. Если человек ждет, что ему принесут все на блюдечке, то расстаемся через некоторое время (это время нужно для того, чтобы вдруг у человека появится интерес). Просто нет желания в будущем постоянно пинать умного человека.

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

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

Поэтому лично я с людьми, имеющими схожие с автором статьи взгляды на жизнь, даже не пытаюсь общаться, не говоря уже о выстраивании каких-то деловых отношений. Как говорится, неудачники заразны.
Это вы меня сейчас лихо назвали неудачником?)
Не Вас, а людей, имеющих схожие с изложенными Вами мысли. Лично про Вас ничего сказать не могу, так как изложенные Вами мысли еще не означают, что именно ими Вы руководствуетесь в своей собственной жизни. Оформление же мыслей в виде статьи вполне себе может быть попыткой разобраться в собственных проблемах. Ну или желанием потроллить народ на самоизоляции.
Мне кажется, автор зря приводит слово «настоящий» — слишком разный смысл в него каждый вкладывает. Senior это «старший», и это всё ставит на место.
Наёмный рабочий в принципе решает проблемы бизнеса — за это деньги и платят. В меру своих обязанностей и возможностей. У «младшего» эта роль в «копать от забора и до обеда», у «старшего» решать, как, что и где копать. Вторые имеют звание senior и бОльшую зарплату.
Примеры в этом плате показательны:
Инженер, который строит мост, должен ли вообще задумываться о том, как этот мост будет окупаться? Вообще нет, его задача — спроектировать и построить мост, который уложится в сроки, в смету и простоит указаное по плану количество лет.

А откуда мер города, гуманитарий, взял смету и сроки? В идеале, как раз старших инженеров и пропросил предложить «наиболее подходящее решение». И вот они уже и решают «задачи бизнеса». А далее «младшие инженеры», за сильно меньшие деньги, проектируют и строят «в смету и в срок».
Авиациионный инженер… должен построить эффективный, мощный, удобный в обслуживании двигатель.

Это младший инженер. Старший как раз и будет участвовать в совещаниях, обсуждая плюсы и минусы сования большого двигателя под крыло Боинга 737.
Художник с детства мечтал о том, как его рисунок на коробке хлопьев будет способствовать увеличению продаж?

Таки да, хороший художник, если берёт гонорар за рекламу, мечтает именно об этом. А шедевры рисует «для себя» и не за деньги. Гениям удаётся совмещать.
Врач-хирург просто делает операцию, чтобы спасти жизнь пациенту, а Настоящий Врач-Хирург делает операцию и продумавает, как бы ее сделать так, чтобы пациент заплатил больше денег больнице?

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

Кроме того, что программист не хочет, есть же ведь что-то, что он хочет? Идеальный вариант — искать такую работу, где будут платить за то, что и так хочется делать.
В «дикой природе» такой вариант очень редко встречается. Успешные случаи для технических специалистов (не управление) — это очень хорошая экспертиза в какой-то области. Тогда к человеку приходят с деньгами, ради этой экспертизы. Другими словами — когда рынок его, а не работодателя.

Гораздо чаще ситуация, когда есть «задачи бизнеса» с одной стороны, и деньги, примерно с той-же стороны.
Хорошая архитектура решения, поддерживаемый код и так далее — это же всё часть решения. То есть, всё это нужно делать в рамках решения задачи бизнеса.

Инженер, который строит мост, должен ли вообще задумываться о том, как этот мост будет окупаться?


У инженеров в ходу есть термин «технико-экономическое обоснование». Когда есть несколько вариантов, которые «укладываются в известные требования», берут эти требования, эти варианты, и идут к заказчику с вопросами, ответы на которые, позволят выбрать итоговый вариант. И эти вопросы — всегда на более высоком уровне, нежели работа инженера. Инженер не обязан понимать тонкости, но умение сформулировать вопрос — ключевое.

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

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

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

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

Работа по найму в команде — суть такой-же бизнес «продать свою голову, руки и время».
Я не программист, я админ. Не секу разницу, между 3мя ступенями, которые ты описал, но мне кажется, что твоя (а может быть и вовсе проблема всей индустрии) в том, что 3 ступени называются подобно. Младший / средний / старший. А по факту есть младший, старший и менеджер. Ты думал, что высшая ступень — сеньёр, а она в тех. плане — мидл. И сеньёр — просто как нач. отдела — прослойка между инженерами и бизнесом, который знает 2 языка — язык инженера и язык бизнеса и переводит с права налево и обратно фразы сторон. Так что по сути ты уже достиг искомого на мидле и двигаться тебе уже никуда не надо.

А значит гении типа Фабриса Беллара это просто мидлы?

Ты серьёзно ждёшь ответа от человека, который не сечёт разницу, между мидлом и сеньёром про какого-то там Беллара?

Это же могут прочитать дети и люди с ранимой психикой.

И тут я понял, что решать задачи бизнеса — думать о том, как принести работодателю больше прибыли.

А почему вы вдруг решили, что ваше понимание того, что такое "решать задачи бизнеса" — оно правильное?


Потому что, скажем, для меня "решать задачи бизнеса" — это писать ПО, которое помогает людям делать их работу. Надо, скажем, кому-то считать коробки на складе — а мы ему сканер, которым он штрих-коды напикал и все уже где-то в отчете у главного лежит. Или, еще лучше, на телефон сфотографировал стопку коробок, а компьютерное зрение их посчитало.


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


Вот оно, решение задачи бизнеса.


И знаете, что самое забавное? Это задача не только senior software developer. Это задача — иногда не напрямую, иногда через несколько (десятков) прослоек — вообще любого разработчика, который работает в прикладной разработке.


А совсем не "думать о том, как принести работодателю больше прибыли".


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

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

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

Ну это тоже, да.

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

Так я про это и написал.
Подмена понятий «решать проблемы бизнеса» и «думать о том, как принести работодателю больше прибыли».
По моему опыту, по крайней мере в России это очень широко распространено, как среди работодателей, так и среди разработчиков, почитайте комменты.
И это плохо и неправильно.
По моему опыту, по крайней мере в России это очень широко распространено

А я ни разу не встречал. В России, да.


Подмена понятий «решать проблемы бизнеса» и «думать о том, как принести работодателю больше прибыли».

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

Ответ на поставленный вопрос довольно прост. Если я бизнес и передо мной два сеньора (да пусть хоть джуна), один из который хорош только как технический специалист, а второй также хорош, как технический специалист, но при этом еще и умеет решать задачи бизнеса (анализировать требования, генерировать крутые идеи, придумывать, как можно монетизировать ту или иную функцию, помогать маркетологу корректно позиционировать продукт для пользователя и т.д. и т.п.), кого из них я приму на работу?

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

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

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

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

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

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

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

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

Ответ на поставленный вопрос довольно прост. Если я бизнес и передо мной два сеньора (да пусть хоть джуна), один из который хорош только как технический специалист, а второй также хорош, как ментор, кого из них я возьму на работу?
Довольно фантастический сценарий, где один кандидат тупо лучше другого. Может первый все таки лучше как технический специалист, к примеру знает дополнительно 1-2 инструмента и при случае сможет реализовать MVP какой-то идеи. Выбор все ещё очевиден?

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

А вот не сможет он MVP идеи реализовать (если про бизнес-идею говорить). Полноценный проект сможет, а MVP идеи — нет, потому что либо не заметит дыр в наборе тасок, либо будет задавать вопросы и получать ответы "не знаю"

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

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

Замените «программа должна продаваться» на «программа должна быть полезна людям» и всё встанет на свои места. Кстати, в нашей дискуссии именно в этом была вся соль, я говорил что есть гики, фанатеющие по написанию кода, код ради кода, код ради фана, и что их нельзя назвать сениорами. Сениором, как я утверждал, можно назвать того, кто сфокусирован на задаче, доведении продукта, кто способен провести проект по всем стадиям цикла, пусть даже где-то жертвуя красотой кода и своим удовольствием от его написания. И здесь внимание: вот эта вот ЗАДАЧА — это не «бизнес пришёл и сказал, что сделать, и будет куча денег». Задача диктуется обществом. Каждый продукт решает некую задачу реального мира. Я опечален тем, что вы упорно не хотите этого видеть, из связки «написание кода — полезность продукта — получение прибыли» вы начисто выкинули вторую часть. Все эти примеры про художника, инженера, проектировщика моста… да не должен он думать, как мост будет себя окупать! Он должен думать, как сделать надежный и удобный мост — тогда он откупится естественным образом (и даже если нужны будут шаги в этом направлении, типа посадить дядьку билетёра- это сделают уже другие люди). А вот если конструктор моста начнёт придумывать петляющие мосты в виде спирали, без перил, из сладкой ваты и с встроенным водопадом, просто потому что это чудо инженерии, ему нравится и интересно, правда люди будут мучаться от такого моста — вот в чем ошибка начинающих программистов, в этом был мой пойнт. Конечно, есть гнилые компании, где бизнес говорит программисту «прилепи сюда обнажёнку, а тут давай слать клиенту тонну рекламы, а тут у нас всё не работает, так что давай спрячем кнопку так, чтобы юзер ее не нашёл». То есть о полезности продукта речи нет вообще, лишь бы срубить денег — просто надо избегать таких мест. Я в таких не работал, и думаю, их мало. Посмотрите все продукты, какими мы пользуемся. Офис, Убер, Гугл — сложно представить, что они получились бы такими как есть, если бы бизнес кошмарил программистов, заставляя делать бесполезную но продающуюся ерунду. Или, другая крайность, если бы программисты забили бы на юзабилити и потребности юзера, а просто предавались бы экстазу от крутого кода. Нет. Уверен, люди с радостью делали нужный людям продукт, а потому он хорошо продаётся. Да, могут быть небольшие уловки от бизнеса, ну типа сокращать до минимума количество шагов от входа до оплаты, урезать бесплатную версию — но это понятно, у бизнеса цель в заработке, по определению, если будет цель в альтруизме — не будет ни бизнеса, ни полезного продукта. На деле я чаще вижу вполне себе золотую середину: есть бизнес, менеджеры и продажники, у них своя там каша варится. Есть мы, программисты, мы делаем продукт, думая в первую очередь не о коде, а о решаемой продуктом задаче. Реальные use-cases, как и для чего юзеры будут наш продукт использовать, как сделать этот процесс проще, эффективней, как сделать работу программы быстрой и стабильной. Ставим себя на место юзера. Пытаемся за кодом увидеть жизненные ситуации. Ну точнее не все из нас. Ну и о сроках тоже нам приходится думать, мы не можем себе позволить писать код годами. Точнее так у нас мыслят сеньоры. А менее опытных разработчиков приходится периодически останавливать от траты времени на «ну это же более крутой подход, я сейчас перепишу половину всего кода, за недельку», приходится заставлять открыть stories с описанием жизненных сценариев, заставлять подумать и посмотреть на написанный им код не глазами кодера, а глазами пользователя, будет ли это удобно. Потому что мы не пишем код. Мы делаем продукт, для чего приходиться писать код. Если завтра можно будет нарисовать нейросеть и голосом объяснить ей, что надо, а UI нарисовать силой мысли через нейроинтерфейс — то мы перестанем писать код. Потому что человек должен найти нечто, что одновременно, и нравится ему, и полезно миру.

Задача диктуется обществом.

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

Ну не совсем. Как сказал один небезызвестный человек «мы нанимаем умных людей не чтобы говорить, что им делать, а чтобы они говорили что нам делать». Проекты, с которыми я имел дело в своей жизни, вот везде без исключения, одно и то же: есть продукт (будущий, или новые версии уже выпущенного), бизнес (руководство) вносит коррективы по срокам, торопит нас, плюс расставляет приоритеты что первым выпустить, но само наполнение, UX+UI продукта, основные use case, куча мелочей, что как сделать удобней, какие фичи могут быть полезными — это делаем мы, команда. Вот я прям запускаю свой же продукт и прохожу основные сценарии, словно я пользователь. Как это все продаётся, что там менеджеры где обещают — вообще в другой реальности.
> Привет, я разработчик и считаю что выражение «программист должен решать задачи бизнеса» это чудовищная ложь, губительная для индустрии.

вы ошибаетесь
вы ошибаетесь

Вы ошибаетесь
Тему хорошую поднял, но я бы по-другому это доносил.

А по теме, проблема в том, что проблемы бизнеса по идее — проблемы людей. И это, по идее, должно быть важным.

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

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

Грустный у вас опыт.

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

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

А местами эту пользу даже наверное можно было бы назвать «глобальной». Ну в том плане что эта польза была не только для того кто оплачивал мой труд.

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

Но по моему опыту проблема широкопаспространённого/«неуникального» софта в том что в большинстве случаев его надо либо его подгонять под свою ситуацию, либо ситуацию под него.
И чем больше у вас фирма и чем сложнее/обширнее бизнес-процессы тем хуже это работает.

Полезность и уникальность это разные вещи. Уникальность зависит от точности сравнения. Может потребителям нравился другой цвет иконки или другое расположение элементов управления.


Доширак не хуже обеда в ресторане, он просто для других целей.

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

Ну вот понимаете ли… вам наплевать, что нужно другим. Вам важно, что вы думаете им нужно.


Занятная позиция, да.

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

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

Я и говорю: грустный у вас опыт. Грустно жить в мире, состоящем из семи миллиардов баранов.

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

… это еще более грустный опыт.

которые, в целом ни человечеству, ни конкретным людям нахер не нужны

Раз вам за это платили деньги — значит, они откуда-то взялись. Значит, кто-то (пользователи, заказчики) решили, что оно им достаточно нужно, чтобы за это заплатить.


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


Поэтому я перешел работать в университет, делать науку и свои проекты. Вот тут уже — "или я, или никто" — кроме нас этой сферой особо никто не занимается в России и мало кто в мире. Тут если я что-то изобрету — я реально имею шанс что-то поменять в мире, хоть чуть-чуть. Это мотивирует.


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

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

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

Один мой коллега участвовал в проекте после фазы так называемого бизнес-консалтанси.
Это, как я понимаю, что-то похожее на бизнес-анализ только с упором на бизнес. Проводился этот консалтанси другой компанией, так что все что было получено на вход это многостраничный документ с хайлевел описанием бизнес процессов и ожидание некоторого функционала.
Одним из тех требований был некий отчёт, а само требование звучало как-то так: "Пользователь может выгрузить состояние всех инстансов в системе".
Вроде просто, но на практике это означало выгрузку сотен тысяч объектов, с одновременной отправкой запросов в пяток сторонних систем.
Вроде и не бог весть что, для современного сервака на кучу ядер и 100 гиг ОЗУ. Но, если учесть что там же должна крутится основная система, обслуживающая сотни пользователей и тысячи запросов, все становится куда сложнее.
Вообщем только благодаря технической экспертизе тех самых синьоров удалось убедить заказчика на понижение приоритета запроса, и выиграть время на написание low level запросов, что бы это все работало.
К чему я это все. Невозможно написать качественную спецификацию не привлекая инженеров с самого начала проекта, а иначе будет как в том известном комиксе про заказчика качели.

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

Невозможно написать качественную спецификацию не привлекая инженеров с самого начала проекта,

Качественную полную и точную спецификацию, как некий конечный стабильный документ, написать невозможно никогда. Ни с инженерами, ни без инженеров. Потому, что анализ и синтез системы всегда взаимосвязаны и всегда влияют друг на друга.
Обычно для технических систем существует множество технических спецификаций, в виде коротких, отдельных документов. И в начальной фазе проекта никто даже не пытается получить «точное ТЗ» и все требования. Вместо этого обычно используется «атомизация» требований и функций и ведение этих «хотелок» в отдельной системе.
То, что Вы описываете — это быстрое выполнение полного цикла разработки (цикла Деминга) одной функции системы. Идея — планирование — проектирование — выполнение — проверка результата — изменения в план. Или изменения «идеи». Например, мне приходится выполнять иногда по несколько десятков таких циклов для одной функции при проектировании производственной системы. При этом, в каждом цикле всегда вносятся изменения в документацию (в описание системы и связанные документы).
Консультанты обычно делают один цикл, потом их работа считается ненужной. Все верно. Консультантов не должно быть в проекте, как временной отдельной сущности. Роль «консультантов» (аналитиков) должна постоянно выполняться на каждом цикле проектирования.
Но часто менеджеры не обладают нужной квалификацией и приглашают консультантов. Так тоже можно. Только тогда проект должен быть простой, короткий, и с простыми и конкретными «продуктами проекта». Чтобы циклов разработки было немного (не более 2-3). Приходим к идеям методологий AGILE или SCRUM. Все давно придумано и реализовано. Вот только при реализации этих методологий приходится применять системный подход. А это совсем иная логика работы. Перестроиться с линейной логики Аристотеля (и редукционизма) на многомерный системный подход (и холизм) — крайне сложно.
Вот и выходит обычно тот комикс про качели.

Да конечно, полностью согласен. Я этот пример писал к тому, что без участия программиста будет уж совсем печально (в первую очередь самому программисту).

  • вы нанимаетесь на должность senior developer, так?
  • да. А что входит в обязанности senior'а?
  • решать задачи бизнеса
  • так если я должен заниматься и кодом, и бизнесом, вы готовы предложить мне процент от продаж помимо основной зарплаты?
так если я должен заниматься и кодом, и бизнесом, вы готовы предложить мне процент от продаж помимо основной зарплаты?

Да. Дальше?..

«Тогда готов. Но должность эта не senior developer должна называться, а менеджер, ибо мне пришлось бы неизбежно делегировать задачи.»

Решать задачи бизнеса и писать код при этом — понятие растяжимое. Одно дело, когда нужно адаптировать бэк под задачи, другое — когда должен заниматься всем один, «ведь ты же сениор», так сказать: и швец, и жнец, и на дуде игрец
Но должность эта не senior developer должна называться, а менеджер, ибо мне пришлось бы неизбежно делегировать задачи.

Совершенно не обязательно.


Решать задачи бизнеса и писать код при этом — понятие растяжимое.

Ну да, растяжимое. Просто "писать код" — тоже растяжимое.

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

Или


  • вы нанимаетесь на должность senior developer, так?
  • да. А что входит в обязанности senior'а?
  • решать задачи бизнеса
  • а какого рода задачи?
Странно идти работать в сферу, заточенную на обслуживание бизнеса, и быть недовольным тем, что приходится обслуживать бизнес. В программировании есть много областей, где можно с головой уйти в код и ни о чем больше не думать. Embedded, системное программирование, наука и исследования (там где Matlab, R, haskell), machine learning, AI, графика, сети… Но чтобы туда уйти с уровня продвинутой веб-макаки, нужно приложить усилия.
Да в общем даже банковский финтех на стороне бекэнда (по крайней мере) работает по схеме, которую я описал ниже. Там у разработчика основная задача в эффективной реализации потребностей бизнеса.

Даже вот эта задача habr.com/ru/post/501244/#comment_21595536 решается именно с точки зрения эффективности и рапределения приоритетов на уровне разработчика. Хотя, скажем, у нас, объем памяти на серверах исчисляется терабайтами (16 12-ядерных 8-поточных процессоров — 192 ядра, 1536 потоков, 2.5Тб ОЗУ на сервер), но эффективность все равно во краю угла т.к. в пике нагрузка может превышать 90%

И эффективность это головная боль разработчика.
Беда в том, что у вас изначально неправильно построены отношения. Если предположить ситуацию что есть:

1. Бизнес со своими потребностями
2. Аналитик
3. Разработчик

ТО все встает на свои места — бизнес формулирует хотелки (BRD, заявка на разработку), аналитик ее алгоримизирует (FSD, техзадание), разработчик воплощает ее в коде. Дальше в обратном порядке — аналитик тестирует на соответствие кода техзаданию, бизнес тестирует на соответствие результата своим хотелкам.

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

Короткий ответ: да, программист не должен, это дело инженера-программиста.

нет. это дело старшего инженера-программиста II разряда

У инженеров не разряды, а категории, емнип.

это был сарказм

Согласен только с самим тезисом статьи в том плане, что об окупаемости и прочей фигне думать должны куча других людей, специально получающих для этого зарплату. зарплату. Но за очень длинную карьеру програсмистом меня ни разу даже не пытались пригласить на подобные совещания. Я вообще впервые слышу этот бредовый тезис. Хотя… Если архитектору мостов надо выиграть тендер для фирмы на проект моста, должен ли он стараться, чтобы сам мост и его эксплуатация обошлись дешевле, чем у конкурентов, а мост выглядел бы красивее, чем у конкурентов? Конечно, должен. Является ли это заботой о бизнесе? В какой-то степени, да. Но по сути, эьоьи есть прамая профессиональная обязанность архитектора.


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

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

Важно понимать, что такое «красивый дизайн и код». Мона Лиза на стене это красиво, а в коде — не очень. Собственно, все рекомендации «красоты» и правильности как раз и формализуют способы более эффективно и дешево решать задачи пользователя сегодня и в будущем.
Мне нравится фраза Туполева «некрасивые самолёты не летают». Она отражает принцип, что человеческое понимание красоты во многом отражает наше восприятие чего-то как прочного, здорового, функционального, интересного и т.д.
С этой точки зрения, «некрасивый код» задачи пользователя не решает, а код, идеально решающий задачу пользователя, красив по определению.
Фраза Туполева относится к внешнему виду самолета, а нек его внутреннему устройству, так что не катит.

Пользователю глубоко насрать, как красива изнутри та или иная программа. А вот с точки зрения бизнеса как раз важно, чтобы дизайн и код были качественными, так как это упрощает поддержу, расширение функционала, усуоряет появление новых версий — то есть красивый дизайн и код, это, выходит, прямая забота о бизнесе ;)
Вы как-то одновременно и опровергаете и поддерживаете.
Пассажиру то и про самолёт всё равно, тем более что для большинства «красиво» это про цвет а не форму.
А с точки зрения инженера, красивая форма эффективно летит, красивое внутреннее устройство надёжно работает и дешево в поддержке, про красивый дизайн и код Вы сами написали.

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

НЛО прилетело и опубликовало эту надпись здесь
Есть ощущение, что вас «бесит» не то, что кто-то заставляет вас решать свои задачи, а то, что он зарабатывает на этом деньги, а с вами «делится» лишь постольку-поскольку. «Решать задачи бизнеса» на самом деле это приносить пользу конкретным людям и думать, как сделать это дешевле и качественнее. Если ваш «бизнес» вам не помогает в этом, а только выжимает дополнительные деньги из покупателей, то может быть, виноват бизнес, а не пользователи?
Не хотите решать задачи бизнес — делайте свой бизнес, другого пути нет
На мой взгляд, парень, тебя пытаются вытащить выше ко карьере, развитию и т.п. Ты посмотри на людей, что они делают, чем управляют, и ты поймешь, что большая часть из тех, кто вырывается в топы сначала просто является профессионалами своего дела — своей «узкой» специальности. Ты себя в своей специальности проявил, и тебя теперь хотят проверить на уровень выше — сможешь ли ты управлять проектом, продуктом, предприятием? Посмотри на глав ИТ компаний — они все в прошлом «синьеры» и разница у них с тобой в том, что они пошли дальше развиваться, а ты не хочешь. Другой вопрос, что ты не хочешь, может, быть на той высоте которую тебе предлагают, для тебя это вообще, возможно, не высота. Ты, вероятно, хочешь скрыться в своем подвальчике «я — только программист», ну ок. Но пойми, что если ты будешь хорошим спецом в чем-то, хоть в программировании, хоть в пивоварении, тебе все равно будут задавать вопросы шире, чем твоя специализация.
Возможно, вы правы.
Но прежде чем тащить меня вверх, может быть стоит спросить, хочу ли я? Никто этого не делал.
Ну можно сказать что вас об этом «имплицитно» спросили когда предложили ту самую позицию сениора.
Инженер, который строит мост, должен ли вообще задумываться о том, как этот мост будет окупаться? Вообще нет, его задача — спроектировать и построить мост, который уложится в сроки, в смету и простоит указаное по плану количество лет.

Вообще-то во всем мире уже давно это не так. Примерно с 1990-х годов. Называется system approach (системный подход) в инженерном деле. Подробно описано в книге Wasim — Standards for engineering design and manufacturing. 2006
Суть простая: в инженерных проектах экономический аспект при проектировании точно такой же обязательный, как и аспект надежности или функциональности. И аспектов там много.
В методологии PM PRINCE2, по которой часто ведутся инженерные проекты «экономическая целесообразность» — тоже обязательное условие.
Проблемы, описанные с Вашей статье возникают от некорректного понимания «роли» в проекте. Роль — это абстрактное представление выполняемого набора функций в проекте.
Один человек может выполнять несколько «ролей» в проекте. Или несколько человек могут выполнять одну «роль» в проекте.
Если малоквалифицированные менеджеры в фирме считают, что конкретный человек с квалификацией «senior» обязан выполнять несколько «ролей» в проекте — то это неверно. Обычно «манагары» путают «роль» и «человек». Или «роли» в проекте понимаются некорректно, или задачи распределяются не по «ролям», а по «людям» (по ответственным лицам).
Лично Вы можете выполнять одну роль в проекте по факту. Например, только роль «Писатель программ». Роль «Инженер программного обеспечения» — можете не выполнять. Роль «Аналитик бизнес-case» тоже можете не выполнять.
Роль — это не то, что человек хочет или не хочет выполнять. Выполнение «роли» определяется по факту, а не по плану. Если «манагар» хочет выполнять роль «Менеджер проекта», что-то делает, ведет какие-то совещания, творит какие-то документы — это не значит, что он выполняет эту роль. Есть точные и конкретные критерии и набор действий для каждой роли в проекте.
И оплата идет за выполнение роли в проекте, а не за потраченное время или полученный результат. Есть вполне конкретные «роли», в работу которых входит целенаправленный контроль результатов (продуктов) проекта. Но есть «роли», исполнителям которых, «продукты» проекта могут быть вообще неизвестны.
В системном подходе Вы можете вообще не понимать систему в целом, не видеть всю картину, не иметь доступа к архитектуре системы. Если Ваша роль ограниченна и определена — то никто не будет требовать от Вас выполнения иных ролей. Конечно же, при качественном менеджменте. И если используется именно «системный подход».
Если же используется «я так считаю», «я так привык», «мне лучше видно» или подобная «методология» — то будет смешивание ролей и описанные Вами проблемы.
А смешивание ролей и выполнение многих ролей одним человеком — это сложно. И не каждый человек умеет выполнять такие задания. Например, у такого человека должны быть "смешанная референция". А такого найти очень сложно.
Отличный комментарий.
Ради того, чтобы увидеть такой комментарий, я и написал эту статью.
Вся моя боль сводится к тому, что судя по моему опыту, большинство работодателей и многие разработчики под словом «сеньор» кроме ролей «высококвалифицированного кодера», немного «аналитика» и немного «архитектора», подразумевают еще и «продукт-овнера», «менеджера» и Господь знает кого еще.
И это не обговаривается в контракте, а формулируется расплывчатым «решением задач бизнеса».
И это ложь, которая вредит и разработчикам и самим работодателям.
И это ложь, которая вредит и разработчикам и самим работодателям.

Это не ложь, и она не вредит. Просто есть категория людей, которые… не хотят делать какую-то работу. И время от времени они нечаянно устраиваются на такие позиции, где им попадаются вот такие задачи, которые им не нравятся. Вот, видимо и с вами так произошло. Просто поверьте — в мире огромное количество программистов, которые не испытывают таких проблем как вы, и читая вашу статью, удивлённо пожимают плечами: «Блин, да всем бы его проблемы...»
Наоборот, не просто писать код, а делать его лучше, участвовать в подготовке спецификаций, принимать какие-то решения в рамках своих компетенций, это здорово, и это нужно именно программисту, если он пишет софт для людей.
Зачем тогда придумали должности продукт-овнера и бизнес-аналитика для больших проектов? Ведь сеньоры все вытащат.
Product owner в этом плане ни сениора, ни бизнес-аналитика не заменит. Это если мы говорим о ПО по скраму.

А бизнес-аналитика себе не каждая команда и даже не каждая фирма позволить могут. Это если их вообще удаётся найти…
Ну так ведь не две же крайности в мире — либо сеньор, который сидит на прямой связи с клиентом, либо сеньор, которому на стол кладут спеку, и он бездумно набирает то, что там написано.
Продакт-овнер также должен слушать мнение сеньоров по поводу реализации тех или иных фич, если у них есть замечания. Бизнес-аналитик, если он вообще есть в команде, это отлично, но и он также слушает не только клиентов, а спрашивает и у своих технических экспертов по поводу того, как могут быть реализованы те или иные запросы клиента.

Это, опять же, скорее роли, чем должности.


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

НЛО прилетело и опубликовало эту надпись здесь
Спасибо, почитаю
проектные роли относятся скорее к обеспечивающей системе — и живут только в процессе создания продукта а не там где он приносит пользу.

Все верно. Проект — нечто ограниченное во времени, для выполнения ограниченного количества циклов разработки. Эти циклы сами включены в более общие циклы «жизни» продукта. И переход между циклами — вовсе не простой и нелинейный. Часть элементов продукта могут «летать» в одних циклах, часть — в других.
Поэтому проект «создание софта» заканчивается по строго заданным критериям. Потом начинается иной проект, по «жизни софта». А в сумме — это часть проекта «жизненный цикл» продукта. И проектов может быть сколько угодно, они могут как угодно пересекаться. И может быть в определенное время фокус на создании «продукта» И фокус на «эксплуатации продукта» одновременно. Подход допускает многомерность фокусов и их баланс. Конечно же, роли в каждом проекте — это чистые условности, абстракции. Так проще понимать и говорить. Впрочем, как и сами проекты и циклы — только модель реального процесса развития систем. Ну и сама «система» — тоже только абстракция и нечто условное. И тут приходим к определению границ системы и с каких точек зрения это делать. Мне очень нравиться такое определение системы (вроде бы из Клира): «Система — это то, что различается как система… Системой является все, что мы хотим рассматривать, как систему». Но описать эти «хотелки» и правила выделения систем в реальном мире — задача аналитика и каждого квалифицированного программиста. Потому, что хотим или не хотим — но в разработке софта придется использовать системный подход, причем даже на самом низком уровне абстракции. Все стандарты, все методологии, все «лучшие практики», все языки программирования, все фреймворки — так или иначе построены или реализованы именно через системный подход. Через принципы анализа и синтеза систем.
НЛО прилетело и опубликовало эту надпись здесь

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

НЛО прилетело и опубликовало эту надпись здесь
ага конечно, кто руководит будет получать «миллионы деняк» потому что их относительно мало, а простые исполнители будут только крошки от них получать какими бы они супер пупер не были бы
Как по мне проблема не в слове «Senior», а в слове «программист».
В реальной инженерии специализация выше и она не вызывает недопонимания, вот наиболее распространённые роли в инженерном проекте:
есть «Главные инженер проекта» или «Системный инженер», который отвечает за целостность проекта;
есть «Архитектор» или «Дизайнер (Design)», который создаёт общее видение проекта, он отвечает за такие требования, как «мост вписался в архитектуру города», «оборудование было удобным», «в этом доме люди хоте ли бы жить»;
есть узкие специалисты, «Проектировщики», «Конструктора», «Технологи», «Сметчики», которые разработают вам варианты реализаций в соответствии с требованиями и посчитают стоимость.

Почему в вашем мировоззрении всё упростилось до программист? Почему Вы в таком окружении, где всё упростилось до программиста?
Повесьте сами себе лычку которая вам подходит: Backend C# Programmer Expert или Professional Backend C# Coder.

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

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

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

Ребята вы все правы. Задачи бизнеса решать надо. Автору не нравится форма работы над задачами бизнеса в столь большом отрыве от того, чем он привык и любит заниматься. Он может готов давать свои консультации, но пусть это будет для него обычным таском в джире.


То, что Сеньора начинают таскать по совещаниям, а особенно на встречи с клиентами, так это из-за больших зарплат в мире ИТ и экономии на персонале (хватило денег на одного Сеньора). Если эти зарплаты для бизнеса норма, он нормально распределит обязанности по должностям. И обьяснять бизнесу, когда он не прав, уже будет менеджер, у которого достаточная квалификация в разработке. Сравнимая с Сеньором. Но менеджеров таких нанять готов и может не каждый бизнес. Вместо этого начинает происходить то, о чем написал автор. Бизнес хитрым образом размыл границы и выкрутился, а теперь сделал это нормой.
Когда менеджер приводит программиста к заказчику, то такого менеджера надо уволить, потому что он переносит ответственность в эффективности совещания на программиста. Лучше нанять менеджера, который вышел из такого Сеньора, готов брать ответственность за процесс и способен чувствовать риски и выяснять их заранее у команды разработки, не отвлекая их от своего процесса.


Автору стоит устроиться куда-нибудь подальше от России, где экономия на персонале не произошла в таких масштабах, как у нас, и поэтому нет таких процессов.

+

Судя по кликбейтному заголовку и популярности статьи, автору-программисту пошло на пользу "решение задач бизнеса", потому что тема стара как мир и относится не только к программистам, но при этом так много хабровчан возбудилось ) А по теме, считаю, что в бизнесе все должны решать задачи этого бизнеса, просто у каждого своя роль: программист, аналитик, продажник, бухгалтер и т.д. Просто автору пришлось выступать в нескольких ролях одновременно, и, скорее всего, без существенного увеличения ЗП, а это вряд ли кому-то понравится ) Да и развиваться в нескольких направлениях мало кто хочет И может.

Мы просто живём в такой системе, где всё сводится к тому, что бы измерятся в денежном эквиваленте. Это и называется капитализмом, который, как показала практика, крайне неэффективен для общества, зато эффективен для элит. Ты можешь быть трижды гениальным инженером и супер талантливым креативщиком, но если у тебя нет коммерческой жилки, то тебе будет гораздо труднее, чем менее талантливому, но способному «решать задачи бизнеса», что можно прочесть как «уметь измерять свой талант в бабле». Если не обеспечиваешь себе приток денег, то не сможешь заниматься исследованиями в направлениях, которые не объяснишь бизнесу, потому что новое — это риск, по этому давай как ты друже распиши нам финансовый план монетизации своей новой криптографии, назови это стартапом и тогда мы обеспечим тебе на пожрать, или вали на зп куда то, только учти, там NDA и всё что ты кодишь нифига не твоё, или можешь на фриланс податься и тогда у тебя не будет жестких обязательств, зато временя всё будет уходить только на фриланс и если ты друг живёшь на съёмном жилье, у тебя семья, дети, престарелые родители, то забудь про свои идеи и вали решать задачи бизнеса, иначе тупо сдохнешь. Такова система. Ей не выгодно мотивировать тебя твоими устремлениями, какие мечты, бро, какие порывы? Хочешь реализоваться — руби бабло.

Двигателю неохота крутить вал кпп, ему интересно вертеться самому по себе.
Я пришел к мысли что программирование не может существовать само по себе. Вся IT сфера не может быть чисто ради себя. Все существует во взаимодействии с другими сферами. Да программист обязан понимать бизнес, потому что он существует благодаря этому бизнесу. Не будет бизнеса будет не нужен программист и он исчезнет.
А менеджеры должны принимать решения опираясь на программистов, это же хорошо когда они сидят, говорят и оглядываются на нас, значит есть обратная связь. А если бы ее не было? Сидит такой программист а ему сверху кидают ТЗ и пофиг как оно там войдёт в архитектуру

Если вы работаете по найму, то в любом случае решаете задачи бизнеса, иначе за что вам платят?

Вы слышали про business value? Так вот:
no value — no business.
Советую вам научиться находить творческий подход к решению бизнес задач чтобы процесс программирования удовлетворал и вас и бизнес.

Если сеньер-программист не должен решать задачи бизнеса, то кто же их тогда должен решать? Продажники? Они таких задач напридумывают, в таких формулировках, что о красивой архитектуре и последовательной работе можно будет забыть навсегда. Задача сеньер-программиста рассматривать варианты решений задач бизнеса, выбирать из них хорошие, отвергать плохие, предлагать более элегантные и эффективные решения. Но совершенно верно написано, то что программист не должен придумывать пути решения задач с нуля. Я считаю, что сеньер это не генератор решений, а первичный фильтр через который они проходят. И да, я миддл, у сеньеров и бизнеса может быть другое мнения, но с моей позиции ситуация выглядит так.

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

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


Отсюда напросится вопрос, «Так а в смысли, я тогда просяду по зарплате и вообще, хочу быть сеньором». Хочешь быть сеньором — приноси прибыль бизнесу, увы это правила любого бизнеса, работник либо работник, либо часть бизнеса которая его строит. А на счёт зарплаты, ответ очевиден, тот кто просто будет кодить, получит меньше того, кто возьмётся за бизнес. Все справедливо и весьма логично!


Не хочешь — не надо, довольствуйся тем что есть.
Хочешь — добро пожаловать в суровый мир бизнеса!

Согласен с ТСом. Некуй путать кислое с длинным. Лётчик водит самолёты, повар делает компоты, менеджеры всякие, думать о том, как денег больше заработать… А программист должен писать код.

Лётчик водит самолёты, повар делает компоты

Ага, а потом менеджеры и повара кривят нос, что руководит ими «эффективный менеджер», который за штурвалом никогда не сидел и кастрюлю в руках не держал.
Может, автору просто не повезло, и во всех этих компаниях не было хорошего, или хоть какого-то IT-директора? Вот он и вынужден был заниматься его обязанностями.
На самом деле, нужно найти команду, где будут те задачи, которые ты хочешь решать.

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

Видимо, пока не повезло работать в команде, где есть нормальный бизнес-аналитик (BA), архитектор, тестировщики (QA) и др. Мои разработчики в моих процессах с бизнесом не встречаются. Они коммуницируют с BA и иногда с QA. Если Developer ходит на митинги с бизнесом, значит что-то идёт не так. Такое допустимо в крайне исключительных случаях, но отнюдь не систематически.

А мне вот нравилось ходить на совещания такие — как минимум, задачу получаешь из первых рук, а не через испорченный телефон или в виде спеки где ни шагу влево или вправо не получится. А так даже если просто сидел слушал (что редко), то пришёл, схему процесса нарисовал, прикинул что может пойти не так, зафиксировал сущности, придумал сервисы, набросал UI и пошёл дробить это всё на таски.

Это следствие всё того же: нет нормального BA. От бизнеса "задача" бывает редко (и какая-то мелочь), чаще — это желание и практически всегда — только по хорошему сценарию без множества исключений и нюансов. Если компания не может позволить себе нормального BA (название у него может быть разное), а вместо этого тратит время разработчика на несвойственные ему активности — что-то идёт не так и не туда). Методик постановки задач множество, от вольных, где нет сложных нюансов, до сильно ограниченных — где малейший шаг в сторону может нарушить логическую цепочку (и все равно они не связывают разработчика по рукам и ногам).
Разные проекты допускают разный набор участников и их функции. Если разработчику нравится брать функции BA, дизайнера, UX, QA, архитектора (одну или несколько) — я не могу сказать, что это всегда плохо. Зависит от проекта. Но если абстрагироваться, то это таки плохо.

Плохо для кого? Мне вот вряд ли понравится работать на проекте, где есть нормальный БА, который будет рисовать процессы сам, а мне их будут спускать уже как готовое решение, которое нужно только имплементировать, да ещё в рамках архитектуры, которую спустит сверху нормальный архитектор. Грубо говоря, не для того я овладевал годами, а может и десятилетиям если всю практику считать, всеми, ну почти всеми трудовыми функциями из стандартов вроде https://classinform.ru/profstandarty/06.035-razrabotchik-web-i-multimediinykh-prilozhenii.html, чтобы потом только выполнять функции из группы А. Следование этому или подобным стандартам плохо?

Плохо и для профессионализма сотрудника, и для бизнеса. Для ментального состояния человека наверное хорошо (это кому как нравится). Мы ведь сейчас не рассматриваем конкретного разработчика.
Суть в том, что у каждого есть некий запас усилий, который он может приложить на изучение объема материала. Образно, это кол-во выкопанного грунта. Можно пройти по поверхности и перекопать гектар, можно прокопать траншею, а можно — колодец.
Можно быть поверхностным специалистом во всём, а можно — скрупулёзным экспертом в одной области. Можно скомбинировать (но в пределах объема "грунта"). Все зависит от решаемых задач.

Я бы не сказал что у среднего сениора этот самый «запас усилий» настолько мал что туда кроме «разбираться в своём ЯП/фреймворке» не влезут ещё и вещи вроде архитектуры приложений и понимания бизнес-процессов в его фирме/отделе/зоне ответственности.

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

С другой стороны, в природе не существует проектов, для которых не хватит обычного 8-часового рабочего дня при 5-дневной рабочей неделе, чтобы через относительно короткое время знать все связанные с проектом бизнес-процессы. Причём без ущерба для профессионального развития, повышения квалификации и выполнения текущих задач. Вот программисты, у которых при слове «бизнес-процесс» в мозгу загорается красная лампочка, звенит сирена, происходит выброс кортизола, и они переходят в алерт-режим: «Аааа, я не хочу в это лезть, просто дайте мне подробное техническое задание!!!», в природе существуют в значительных количествах.
С другой стороны, в природе не существует проектов, для которых не хватит обычного 8-часового рабочего дня при 5-дневной рабочей неделе, чтобы через относительно короткое время знать все связанные с проектом бизнес-процессы.

Для проекта какой величины справедливо это утверждение?
Потому что я видел как минимум один где 5 лет не хватило, чтобы всё понять — и это без знания всех подковёрных интриг, которые ещё больше "бизнеспроцессы" усложняли.

Понятное дело, что если речь идет об автоматизации какого-нибудь крупного холдинга, там будет миллион процессов в разных его подразделениях, которые постичь одному разуму не под силу (а иногда вообще там разум не участвует :-). Я подразумеваю в виду то, что связано непосредственно с проектом, которым занимается конкретный человек.

Зачем холдинг, просто игровой проект с крупной командой. Где часть делается тут, часть там, важные решения принимают ещё где-то.


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

И вы на работе 8 часов полностью занимаетесь кодингом и вам не дают время чтобы понять под какие бизнез-процессы вы этот код пишите?

На всех фирмах где я был мне эти самые бизнес-процессы всегда с удовольствием объясняли. А местами это даже обязаловка была.

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

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

Автор сам себе противоречит!
Инженер строит мост и думает о смете, смета это и есть деньги.
Инженер строит эффективный двигатель, а эффективный двигатель подразумевает больший КПД? Это разве не экономия и бабло?
Не нравится думать о бизнесе иди в опенсорс

— Да. А какие обязанности у senior software developer?
— Решать задачи бизнеса, разумеется.


Для меня это звучит как
— Да. А какие обязанности у senior software developer?
— Работать, разумеется.


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

Мое присутствие на всяких совещаниях в качестве сеньера обусловленно тем, что я могу прикинуть, что нужно сделать по части ПО, чтобы реализовать то или то, перевести на понятный остальным язык — столько-то часов, столько-то $ на инфраструктуру. Т.е. примерно сказать сколько это (в идеале весь жизненный цикл) стоит, возможно предложить более перспективные с моей точки зрения идеи.

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

PS. Для меня «уровни сеньерности в холодной воде» — это масштаб задач, к которым есть представление о решении.
Я токарь, но я не хочу знать, зачем нужна деталь, которую я точу. Отстаньте от меня со своими чертежами, допусками, процентом брака — я свободный художник! (с)
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
все таки сеньер-помидор как некоторые озвучили это в первую очередь эффективный кодер, но никак не решатель бизнес задач

Почему бы?

НЛО прилетело и опубликовало эту надпись здесь

А где учат на архитекторов так, чтобы без опыта программирования сразу им взяли?

Хм, а какое отношение софтвар-архитект имеет к решению бизнес задач и работе с клиентом? Он на мой взгляд от этого ещё дальше находится чем средний сениор.

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

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

Выше не уточнялось какой архитектор.
Для разработчика любого уровня немного разбираться в бизнесе своего заказчика — это хорошо.

Хотя бы потому что он пошёл бы в архитекторы или менеджеры.

Не, не понимаю. У меня вот в нынешней позиции написано "архитектор", и я не считаю, что я решаю больше бизнес-задач, чем соседний программист в офисе.


Как сеньор он это умеет, но не хочет.

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


Общения с клиентами тем более.

А для того, чтобы решать бизнес-задачи, общаться с клиентами не обязательно.


Вот смотрите. Пришел в ИТ-компанию представитель бизнеса, сказал "хочу иметь возможность каждую неделю высылать своим клиентам емейлы с новостями". Вот бизнес-задача. Менеджер посмотрел, посоветовался, быстренько прикинул, сказал: окей. Позвал аналитика и архитектора и сказал: "вот бизнес-задача, будем делать". Те посмотрели, посоветовались, один написал спецификацию, другой — проект. Позвали разработчиков, дали тем, те реализовали. Отдали тестировщикам, потестировали, потом выкатили, отдали клиенту, получили бабло.


Кто решал бизнес-задачу? Менеджер? Архитектор? Да нет, все ее решали. Выкиньте разработчиков, и задача решена не будет.

НЛО прилетело и опубликовало эту надпись здесь

Наблюдается противоречие.


Решали задачу вместе.
Он не решает бизнес задачу

Так решает или не решает?


(не встречается с заказчиками)

Почему у вас "решать бизнес-задачу" подразумевает "встречаться с заказчиками"? Это совершенно не обязательно.

НЛО прилетело и опубликовало эту надпись здесь
Так кто из них решает бизнес задачу?

Все, конечно.


Представьте себе, что один из них не сделает свою работу. Будет ли решена задача?

Так кто из них решает бизнес задачу?

Однозначно, оба решают бизнес-задачу. Ваш вопрос звучит примерно как «В грузовике два водителя. Половину пути грузовик ведёт один из них, вторую половину другой. Кто из них доставляет груз?»
НЛО прилетело и опубликовало эту надпись здесь
Нет. Не так. Когда два водителя, то оба могу выполнить бизнес задачу

Хм. Но ведь не могут. У программиста ограничения, незнание языков/платформ. У водителей свои, в частности, неспособность вести машину сутки без остановки. Потому их там и двое, один ведёт, второй отдыхает.
Да, можно одному остановиться, поспать, и поехать дальше. Но тогда, допустим, сорвутся сроки поставки. Программист-то тоже может потратить время, разобраться, и успешно решить «не свою» часть задачи на малознакомой платформе. Просто вот задача для решения требует не одного человека, а команду, и каждый член команды её решает, в зоне своей ответственности. Обычная практика, ничего особенного.
НЛО прилетело и опубликовало эту надпись здесь
А чаще всего не может в одиночку.

А кто может решить задачу бизнеса в одиночку?

Вот к этому я и клоню. Разраб не должен решать задачи бизнеса

Мы опять возвращаемся к тому, что такое «задача бизнеса»? В более широком понимании это любая деятельность, которая принесёт (ну, или предполагается, что принесёт) пользу бизнеса, сформулирована кем-то и назначена исполнителю. В этом случае разраб, собственно говоря, только и этим и занимается, если он работает в коммерческой организации.
В узком понимании это может быть «участие в рабочих группах, составление спецификаций, предложения по оптимизации процессов». Должен ли заниматься этим разраб или нет? Могу однозначно сказать: это ему никак не противопоказано. Если он этим занимается, он только повышает собственную квалификацию как специалиста. С другой стороны, если он не хочет этим заниматься, то может и не заниматься. Если он сфокусируется только на технологическом аспекте, отстранившись от сферы применения его софта, он тоже без куска хлеба не останется.
Поэтому утверждение, что разработчик не должен решать задачи бизнеса, это по сути аналогично «водитель грузовика не должен садиться за руль легкового авто». Почему не должен? Хочет — пусть садится, не хочет — пусть не садится. В первом случае у него появятся дополнительные скиллы, во втором не появятся, ну и фиг с ним, это его личное дело.

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

Цена вопроса один из важнейших критериев оценки нужна задача или нет. Кто в Вашей картине мира оценивает себестоимость задачи? На основе каких компетенций?
Его задача написать наиболее эффективный код с меньшими трудозатратами. Он это умеет и это у него получается лучше всего.

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

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


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

По моим представлениям всё же выше или где-то средняя и есть. Только зп архитектора не даёт зп сеньора быть хотя бы в 2 раза выше средней. )

Получается за 1 ЗП он работает как минимум за архитектора, аналитика, манагера и программиста.

Если точнее, за 1 ЗП он работает за 0.2 архитектора, 0.1 аналитика, 0.1 манагера и 0.6 программиста, так что с зарплатой всё ок. Вы так говорите, будто бы компетенции архитектора и сеньора-программиста далеки друг от друга, а не являются смежными, во многом пересекающимися, и прекрасно уживающимися в одном специалисте.
Без доли в бизнесе так дёшево продаваться не выгодно.

А, ну вперёд :) В мире немало стартапов, которые зовут к себе специалистов за долю в бизнесе. У них, правда, у всех есть одно общее качество: у них нет денег на зарплату. Но доли в бизнесе они раздают охотно, да.

[Модерация пред. сообщения была о-о-очень долгой, не ждите от меня много конкретных примеров сейчас]
Интересно откуда вы веса взяли. И почему в сумме они дают 1, а не 2 или 0.5? Или вы считаете, что во всех направлениях синь будет одинаково эффективен и нагружен на 1?


Аналитик тоже смежен с архитектором в некоторых аспектах как и другие (как-то же они должны друг друга понимать), но это разные профессии (набор навыков и знаний нужен немного разный).


Намёк был в сторону своей шарашки с такими же широкоформатными экспертами.
Зовут недалёкие, переманивают перспективные.

Интересно откуда вы веса взяли

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

В случае если это экономит компании деньги, как явно (делает работу, который узкий специалист сделает дороже), так и не очень (за счёт отсутствия потерь на коммуникации сделает фичу целиком быстрее и дешевле чем 4-5 специалистов даже с меньшим уровнем зарплаты)

>Я бы посоветовал разработчикам, которые думают о проблемах бизнеса, открыть свой бизнес и думать о нем, это будет полезнее для всех.
Согласна, выгоднее стремиться к построению своего бизнеса. А для этого надо учиться у тех, кто его уже построил и успешно ведет. Это программист может сделать в хорошей компании.
Вы взяли неверный посыл:
решать задачи бизнеса — думать о том, как принести работодателю больше прибыли.
И из этой чуши вывели ещё большую чушь.
Задача бизнеса — да, приносить прибыль.
А задачи бизнеса — это задачи, которые бизнес-заказчик ставит своим исполнителям:
Уборщику — убирать помещение. Строителю — строить новый корпус.
Программисту — создавать приложение, решающее конкретную задачу, нужную бизнесу, А не булшит про смесь творчества и инженерии.
И вот как раз Senior- это тот, кто научился отличать задачу написать интересный код от задачи написать код, который выдаст действительно решение задачи, а не породит новые.
Поэтому да — Вы ещё не Senior.
мои поздравления, в 2020 году до тебя начинает доходить как работает капитализм
Задача бизнеса — генерировать прибыль.
Задача программиста любой квалификации — решать поставленные задачи путем автоматизации, разработки программных средств.

По уму, senior не должен решать задачи бизнеса и думать о деньгах. Должно быть еще одно передаточное звено, скажем, product manager или аналогичный гражданин, который с одной стороны общается с технарями в их технарском мире тасков, багфиксов, архитектуры, а с другой — с продажниками, клиент-менеджерами, фокус группами и так далее.
Просто, как это часто случается, в малых бизнесАх нанимают работника, который может на работе работать работу. Ту, которую скажут. И вместо 2 специалистов нанимают одного с той же зарплатой.

Опять же — есть путаница в самом слове «бизнес». Представим, что речь о, не знаю — СССР там, КНДР или чем-то таком. Инженер-программист тоже решает задачи, может заниматься оптимизацией использования ресурсов при помощи ВТ и решать задачи народного хозяйства, потребителей его продукции. При этом он не решает бизнес-задач вида «как нарубить побольше капусты». Не стоит смешивать решение задач бизнеса как технических задач всего цикла производства и решение задач по добыче прибыли.
«И тут я понял, что решать задачи бизнеса — думать о том, как принести работодателю больше прибыли.» — главный, и абсолютно ошибочный, тезис статьи.

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

Да, синьёр действительно должен уметь решать именно «бизнес-задачи», только тут термин «бизнес-задача» (как и термин «бизнес-логика») не относится напрямую к монетизации, а относится к большой законченной системе, а не конкретному модулю/сервису. Именно такие, комплексные задачи, и называются «бизнес задачи» и тут нет ничего про деньги, только про техническую сложность комплексной системы, про оценку времени (то есть опять же сложности) и технических рисков предположений в архитектуре (опять же тех.сложность). Потому ими и занимаются синьёры, для них надо уметь не только кодить (джун), а ещё и решать сложные части системы основываясь на знаниях и опыте (мидл) и главное вести разработку всех этих компонентов вместе постоянно корректируя для максимально эффективного достижения _конечной_ цели, общего результата системы и таки выдавать _законченный_ результат с приемлемым техническим долгом (синьёр). Именно потому синьёры и ценны — они решают задачи, а не просто играются в технологии.

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

Если что, это было мнение не бизнес-аналитика-овнера-менеджера, а человека так же с детства (9ти лет) и до своих 39 всё ещё пишущего программки и не потерявшего к этому интерес. К тому же в моей компании вообще все продукты придумывали и продолжают придумывать технари (все продуктовнеры это бывшие разработчики, которые иногда всё ещё кодят), а наши продаваны каким-то гениальным образом их неплохо продают…

p.s.
не хочу судить автора, быть может у него реально странные работодатели и заставляют его заниматься предпродажными делами, но если это не так… то это может быть простая боязнь решать сложные технические задачи и нести за это ответственность, к сожалению я регулярно вижу это среди знакомых программистов и, частенько, всё списывается на «тупых» менеджеров которые вот ничего не понимают, а они, бедные, должны делать невозможное…
Я правда видел некоторое дерьмо реально странных работодателей. Почитайте комменты, многие абсолютно согласны с такими работодателями. Это и пугает.
многие абсолютно согласны с такими работодателями.

Ничего страшного. Есть разные подходы и мысли у работодателей. Каждый волен выбирать деятельность по душе. Если у программиста нормальная квалификация, да еще программист понимает системный подход, понимает системную аналитику — то такой чел всегда найдет нормальную работу.
А «странные работодатели» — просто помогают получить нужные скилы в этих направлениях. Их за это благодарить надо, что заставляют выполнять иную роль, чем думалось в начале. Я всегда воспринимаю такие заскоки со стороны шефов именно как толчок в нужном и полезном направлении. Если очень уж достают, или уже влом получать новые скилы — то ухожу в иной проект. Вариантов — масса всегда.
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
Жиза. Совсем не про тему статьи, но все равно жиза.
«Если вам не хватает надежности в вашей системе перекладывания джсонов, обмажтесь посильнее кроликом или кафкой и все будет хорошо».
НЛО прилетело и опубликовало эту надпись здесь
программист должен решать задачи бизнеса

Официант должен обслуживать клиентов — так он решает задачи бизнеса.
Врач должен спасать людей — так он решает задачи бизнеса(иначе он мог бы и не спасать и тогда больнице, как бизнесу будет «плохо».
Учитель должен учить детей и так он решает задачи бизнеса. Он не может сказать, что все уроки отменены и у него есть гениальная идея и давайте Ее тестировать.
Инженер и архитектор проектируют мост, который нужен бизнесу и решают они задачу бизнеса. Они не могут вместо моста дерижабль строить.

Тот, кто зовётся программист — он решает задачи бизнеса.

Даже демонстранты решают проблемы некоторых бизнесов(а другие бизнесы закапывают ;) )

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

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

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

Значит она не красивая.
Значит она не красивая.

В общем случае это утверждение неверно. Можно сваять сколь угодно красивейшую архитектуру под сервер на прогнозируемые 5-10к онлайна игры — а после релиза вдруг понадобится сервер на 50к, а скоро и на 300к.
Те же танки писали, что первый год ушёл на латание-расширение сервера ибо изначально заложено было весьма нишевое количество игроков.


Равно они могли соорудить заранее супер-красивую архитектуру на 300к — и получить те самые нишевые 5-10к. И другие послерелизные проблемы, которые бы приходилось решать и которые не были предсказаны архитектурой. Потому что ванг не завезли.

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

Это по сути что должно происходить, а по форме бывает конечно совещательный адок, но тут нужно уметь понимать, а в ту ли команду ты пришёл? Хорошие команды есть, просто их немного.
бизнес это команда, например аналогично спортивной команде. Каждый на своём месте думает конкретно о своей задаче, но так же нужно думать об успехе команды в целом.

Не совсем корректная аналогия. То, что Вы описываете — это стартап, малый бизнес, начало проекта. А вот на этапе, когда идет переход к инвестиционной фазе проекта — то тут должна быть не только команда, но и многоуровневая технология. То есть в проекте будет и некая хирургическая бригада (команда) и как минимум 2 уровня формальной структуры по строго стандартизированным методологиям.
Дальше — больше. Роль «команды» в проекте будет уменьшаться, а роль формальной структуры — увеличиваться. Это уже операционная деятельность.
Тут спасает только создание структуры фирмы в виде нескольких «слоев». Один слой — эластичный, заточенный под изменения.
Другой — жесткий слой, заточенный под эффективность и прибыль.
Что-то типа композитной структуры.
Как создавать такую слоистую структуру, какие элементы и принципы использовать, как организовывать проекты любого масштаба по этим принципам — все это известно и описано так или иначе. Но, как ни странно, ни в менеджменте, ни в программировании. А в теории надежности, в инженерии. И в Технодинамике — для стыка технологий и экономики.
Применение этих методов в программировании — тоже частично описано в стандартах ISO. Но там сложно и достаточно объемно. И описаны принципы работы элементов, их взаимодействие, но не сама структура системы разработки.
Самое интересное, что кто бы и как бы не создавал такие структуры для разработки чего угодно, то в организационном аспекте они всегда сохраняются в виде именно таких «композитных» моделей. От уровня средних фирм и до уровня сообществ государств. Да, в начале политики или шефы могут пытаться что-то свое впихивать, но в течении нескольких лет структура социально-технических систем приходит к «композитному» типу построения.
Когда видишь эти закономерности — то намного проще проводить изменения, выбирать ту или иную команду для работы, анализировать и строить сложные системы.
Компании, создающие такие структуры, постепенно понимают что они раздувают косты, управление формальной структурой требует многослойного менеджмента, формализация процессов местами доводится до абсурда. Многие проекты, инициированные в такой структуре, тонут в бюрократии или на рынок выходит никому не нужное дерьмо и компания проигрывает более гибким конкурентам по всем параметрам.
Как только компания начинает проигрывать, она начинает «преобразования», например приглашать сеньоров на совещания по продукту и заставлять их думать о бизнесе.
А преобразование такой компании можно сделать только сменив значителную часть коллектива и набрав критическую массу сторонников реформ. Если этого не сделать, то будет вот так, как написано в статье автора — негодование и сопротивление.

Это если эти сеньоры не ушли раньше из-за того, что до бизнеса их не подпускали.

НЛО прилетело и опубликовало эту надпись здесь
Увы, но когда вы работаете на работе вы отдаете обязанность по выплате вам денег за нее на работодателя. Это не вам а ему нужно решать проблему с тем, как продавать то, что вы там ваяете. Чем больше вы компетентны в своей области, тем лучше сможете подсказать бизнесу как продать ваш продукт, дело тут совершенно не в крутом названии senior.
сможете подсказать бизнесу как продать ваш продукт,

У Вас, как у личности, не может быть продукта в рамках фирмы или бизнеса. Вы сами, ваше время — и есть продукт для Вас лично. Покупает его Фирма. А продает Фирма не Ваш продукт, а свой собственный. Ваш продукт — только его часть. Как влияет оптимизация одного элемента продукта Фирмы (в виде доработок Вашей части продукта) на успех с продажами целого продукта на уровне Фирмы — Вы можете и не увидеть. Или Ваше представление будет иным, чем у Фирмы.
И тут лучше или хуже будет Ваша работа, Ваши подсказки — не факт, что все это как-то существенно повлияет на эффект бизнеса. Компетенция тоже может быть не особо важной. А может быть более важным будет цвет рюшечек или наличие свистоперделок именно для этой группы клиентов.
Но может быть и совсем наоборот, что некая фича именно в Вашей части продукта будет ключом успеха.
Самое интересное, что ни предсказать, ни запланировать успех или поражение в этих вопросах невозможно. Никак невозможно, только случайный поиск, множество вариантов, и длительная подстройка к Клиентам. И процесс этот — двухсторонний. Клиент будет влиять на продукт фирмы, но и продукт — будет влияет на поведение и выбор клиента.
Конечно, я не имел ввиду, что продукт ваш, подразумевалось: продукт вашей деятельности.

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


Вы таки не поверите, но врачам в частных клиниках вполне себе спускают план на то, сколько лохов он должен привести в кассу. И хирургия там тоже сплошь и рядом думает какую бы операцию подороже пропихнуть этому недоразумению с деньгами. Так что это просто обычный бизнес, ничего личного.
НЛО прилетело и опубликовало эту надпись здесь
Задачи бизнеса (я сейчас не беру бизнес по написанию ПО) — осуществление деятельности, приносящей прибыль — решает бизнес-процесс, т.е. все люди (из может быть 0, как в интернет-магазине цифровых товаров), занятые в осуществлении бизнес-процесса. И программист тут никаким боком ни при чём.

Бизнес-задачи по улучшению бизнес-процессов и проблемы бизнеса — вот тут да, программист может привлекаться к их решению. А может и не привлекаться — как где обстоятельства сложились, какая «корпоративная культура» получилась.
Задачи бизнеса (я сейчас не беру бизнес по написанию ПО) — осуществление деятельности, приносящей прибыль

У вас ведь не верное определение. Задачи бизнеса — это любые задачи, которые ставятся бизнесом для достижения бизнес-целей. А цели у него могут быть разные. Основная в долгосрочном периоде, это в общем случае максимизация прибыли (и то, бывают исключения). Локальные цели могут быть более разнообразными. Удержание доли рынка, увеличение доли рынка, оптимизация издержек, увеличение оборачиваемости склада, оптимизация и автоматизация бизнес-процессов. И вот последнее — непосредственная ответственность программиста.

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

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

Я писал про программистов, которые автоматизируют процессы в "традиционных" индустриях. Это обычно их основная обязанность. Но вот в некоторых бизнесах в их обязанности входит ещё и изменения, высокоуровневые оптимизации самих процессов. Или не входит, но приветствуется, если они изменяют/инициируют такие изменения. А в некоторых не приветствуется, вплоть до "оргвыводов" типа "постоянно лезет не в своё дело, не делая свою работу и мешая работать другим. Демотивирует остальных своей постоянной неконструктивной критикой, приносит какие-то "решения" каких-то "проблем" на решение которых не то что санкции от руководства не получил, а получил прямое указание на то, что это не проблема, а исторически сложившийся бизнес-процесс, а даже если и проблема, то не на его позиции её решать. "Копает" под других, показывая "возможность" уменьшать некоторые отделы наполовину и более, "доказывая" что их работа бесполезна и/или может быть автоматизирована или легко отдана на аутсорс. А где-то абсолютно то же самое назовут "Не ограничен рамками своих прямых функций, стремится понять и улучшить процессы не только в рамках своих прямых задач, но и коллег из смежных отделов. Умеет находить неоптимальные места в давно привычным всем процессах, которые остальные воспринимают как должное. Критикуя что-то если не с готовым решением, сделанным по собственной инициативе приходит, то с проработанной идей готового решения. Неоднократно эти решения помогли высвободить сотрудников от легко автоматизируемых или просто неактуальных задач и перебросить на более сложные, которые давно откладывались из-за загруженности текущими и недостатки ресурсов на расширение штата, чем увеличил показатели этих подразделений и компании в целом"

Задачи бизнеса (я сейчас не беру бизнес по написанию ПО) — осуществление деятельности, приносящей прибыль

Смею вас огорчить, это уже давно не так. В общем случае, более важным является ценность компании. Именно ценность, а не стоимость.
А в конкретном случае должна быть для каждой фирмы, для каждого подразделения разработана система ключевых показателей деятельности. Прибыль там — один из финансовых показателей. Есть иные, есть нефинансовые показатели.
Бизнес-задачи по улучшению бизнес-процессов и проблемы бизнеса — вот тут да, программист может привлекаться к их решению.

Все зависит от уровня организационной иерархии, на котором возникает такая задача. И скорее всего программист — не сможет решить задачи по оптимизации бизнес-процессов. Решать их он может, но вот оценить результат на короткой перспективе, на длительном отрезке времени, и для влияния на ключевые показатели фирмы — нет. Что еще хуже, то скорее всего не будет положительных результатов для фирмы от оптимизации бизнес-процессов программистом. Опять же, все зависит от того этапа, на котором находится фирма в жизненном цикле.
Например, если фирма находится на этапе операционной деятельности для продукта 1, то любое изменение бизнес-процессов на «жестком» уровне иерархии приведет к ухудшению ключевых показателей.
Но для продукта 2, на этапе «детальное проектирование» — будет улучшение показателей.
Если же все-таки надо обязательно изменять технические или организационные бизнес-процессы на «жестких» уровнях — то придется запускать отдельный проект. Это проект будет дублировать часть функций «жесткого» уровня, поэтому перемены становятся возможными. Но на время проекта ключевые показатели деятельности упадут, и упадут сильно. Именно это часто наблюдают в проектах по внедрению ERP/CRM/…
То есть всегда надо точно понимать и видеть, где и когда изменения бизнес-процессов возможны.
А в конкретном случае должна быть для каждой фирмы, для каждого подразделения разработана система ключевых показателей деятельности.

В реальности КПИ приведят к подгонке работы под максимальное повышение оных КПИ. Вне зависимости от влияния на другие подразделения/отделы/людей и на результат бизнеса вообще.

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

И это тоже так. КПИ = только инструмент. С дури можно много чего наворотить.
КПИ в реальности позволяют не только подгонять результаты, но и хоть как-то оценивать работу подразделений и фирмы в целом. И да, КПИ не обязательно должны быть формальными и известными всем.
Например, есть КПИ «добавленная стоимость» по продукту. Цена минус прямые затраты материалов. Никто его официально не рассчитывает. А он позволяет видеть, какой продукт дает в целом для фирмы максимальную потенциальную прибыль. Или та де «добавленная стоимость», но по всем продуктам за конкретный период времени.
Есть и нефинансовые КПИ. Например, перед каждым проектом мы тестируем фирму Заказчика на скорость прохождения решений. Для этого Заказчику надо оплатить 10 долларов за консультацию заграничному партнеру. Именно иная валюта, именно мизерная сумма, именно за границу. Тут все параметры важные.
Это занимает у Заказчика 72 нормочаса и длится 5 дней. Эти параметры позволяют скорректировать все планы и графики по проекту, мы тогда понимаем сколько времени будет занимать тот или иной этап.
Поэтому, с КПИ все-таки лучше, чем без них.
Ну а тому, что учат на MBA разных «манагаров» насчет КПИ лучше не доверять особо. Там бывает много бреда.
А в конкретном случае должна быть для каждой фирмы, для каждого подразделения разработана система ключевых показателей деятельности.

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


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

Необязательно.

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

Кому — руководству фирмы и руководителям подразделений.
Это одно из необходимых условий. Оно вытекает из принципов целеполагания и методологий на основе LFA. Если Вы придумаете и внедрите иную эффективную методику, по каким признакам понять, достигли цели в проекте или нет, то можно и не использовать KPI.
С моей точки зрения, нет особой возможности выбора. Или использовать некие стандартные методологии с доработками под свои потребности, или потратить время на что-то свое, что окажется просто кривой частью той же самой стандартной методологии. К сожалению, ни мое, ни Ваше мнение в этих методологиях особой роли не играют.
На примере реализации более 30 проектов, мне пока не удалось найти ни одного отклонения от стандартных методологий (лучших практик). В каждой фирме есть «манагары», которые думают, что придумали что-то новое, что-то интересное, инновационное. Обычно же все укладывается в комбинацию нескольких известных групп бизнес-процессов, причем обычно криво реализованных.
То же самое с продуктами: если кто-то думает, что придумал новый инновационный продукт — то на 99,99% он плохо искал на Али. Там его продукт продается уже лет 5 точно.
Исключений пока не нашел, хотя они и возможны. Наверное…
Необязательно.

Тоже верно. В рамках приведенного примера, в 80% случаев из моего личного опыта это так. В 20% — не так.
или потратить время на что-то свое, что окажется просто кривой частью той же самой стандартной методологии.

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


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

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

А я и не спорю. Я тоже постоянно сталкиваюсь с компаниями, которые не знают что такое цикл Деминга, например. Но когда рассказываю — «так это мы всегда так и делаем, что тут такого?»
И бизнес-процессы они сами придумали, хотя даже не используют таких формулировок, как бизнес-процесс. И продажи и закупки у них планируются в какой-то системе. И только потом, они видят, что эта система — часть функций обычной ERP системы. Криво -косо, но чатсь функций реализована.
Обычно хорошо голову взрывает изучения стандарта ISO/IEC 15288 System and soft ware engineering — System life cycle processes
перевод в ГОСТ Р ИСО/МЭК 15288-2005. Тогда менеджеры и иногда программисты начинают понимать, что «все украдено до нас». Типа все уже давно придумали и реализовали, причем очень качественно. Потом идет черед стандартам ISO. И когда более-менее разобрались хотя бы в самом простом, то становится понятно: все вопросы в бизнесе давно изучены, давно есть масса готовых решений, только подбирай «кубики» из готового конструктора.
А когда менеджеры доходят до стандарта на составление стратегий и планов фирмы, да еще на стандартное представление этих планов и стратегий на специальном расширении XML. То начинают понимать, что и их работа, управление типа, тоже давно описано и переведено в рутинную форму.
Производственники тоже радуются, что вся организация работы периодических процессов, рецептуры, интеграция с разными уровнями оборудования — все тоже давно описано в этих стандартах. А софт разных фирм — только более-менее корректная форма представления и помощи для работы в этих стандартах.
Если же кому-то надо интегрировать весь этот балаган (разнородные бизнес-процессы) — то тоже все придумано в модели GERAM.
Ну а если надо детали реализации — то все есть до уровня событий, структур данных, запросов SQL, причем продумано и очень качественно (книга того же Len Silverston The Data Model Resource Book).
И так по каждому вопросу или по каждому процессу.
А вот как соединить эти процессы, или не много доработать, чтобы работало лучше, чем у конкурентов — это да, это уже реальная работа менеджеров. Да еще чтобы было стабильно во времени.
Есть и те, кто уверен, что фактическое отклонение от стандартов и прочих умных книжек — их инновация, их ноу-хау, из конкурентное преимущество и от попыток что-то внедрить стандартизированное отмахиваются. И пилят своё расширение XML, причём не просто схему, а с полноценной поддержкой в IDE, кодогенерацией и т. п., если говорить о разработке.
отклонение от стандартов и прочих умных книжек — их инновация, их ноу-хау, из конкурентное преимущество

В том то и дело, что часто никакая это не инновация. А просто незнание «лучших практик» из тех же стандартов. После изучения множества фирм и их бизнес-процессов, на словах «инновационных», оказывается, что все эти инновации известны лет 30 как минимум. Продукты — могут быть инновационными, это правда. А вот процессы управления, процессы организации производства — чаще всего оказываются обыкновенными.
Пока я не нашел ни одного варианта бизнес-процессов, которые бы так или иначе не были описаны в тех же «лучших практиках» или стандартах ISO/IEC/EN/ANSI.
Мой путь и почему пост меня зацепил
У меня примерно тот же путь, что и у автора. Начал в 9 лет. Продолжил в 11 в 5-ом классе школы: Basic на терминальной системе. Даже 5-дюймовая дискета для её загрузки и работы где-то лежит до сих пор. Путь у меня всегда строился в направлении повышения сложности. Поэтому довольно быстро стал заниматься всей вертикалью, за исключением коммерциализации. Т.е. разработка для меня — это путь от проблемы до внедрённой системы или программного продукта включительно.
Причём на этом пути для проблемы сперва требуется разработать методы решения, потом — методики всей деятельности вокруг них, затем — ПО под них. Тогда уже обучить пользователей (на разработанных учебных материалах) и внедрить ПО в пром.эксплуатацию. Примерно такие границы деятельности себе выбрал.
И со временем стал понимать, что для меня самое интересное — это методы решения проблем и методики решения задач, под которые потом реализуется ПО. Ими сейчас и занимаюсь в научных проектах и собственной исследовательской деятельности. В этом смысле, настоящих нерешённых проблем в ПО я не вижу. Проблемы есть, однако они имеют чисто человеческое происхождение и являются продолжением проблем человека и его психики. А существующей технической базы в ПО вполне достаточно. Запрос на её развитие формирует решение какой-либо проблемы из другой области.
Анализ предыстории «senior»
Вообще, «senior» пришло с Запада и его методик организации деятельности. А они к нам пришли не в чистом виде, не в виде спецификации и стандартов, и были сильно «адаптированы». Главное правило в организации работы на Западе — каждый должен заниматься своим и только своим делом. Это связано, в первую очередь, с их подходом к управлению и с психологическим феноменом функциональной фиксации. А это, в свою очередь, является следствием их подхода к образованию в области логики и конструирования и классификации математики как гуманитарной науки.
В математике, в первую очередь, человек сталкивается с необходимостью осознания, что один и тот же объект может выполнять много ролей одновременно. В частности, в теории множеств и отношений. А ещё с необходимостью понимания, что выражение из не просто конечного, а совершенно небольшого количества символов, может описывать бесконечно много объектов и соотношений одной природы. Ну а т.к. менеджеры математику не любят, то и не выбирают её в колледжах и университетах, проходя мимо латерального мышления.
Почему в норме senior-разработчик не решает задачи бизнеса
По рассмотренной выше предыстории, с функциональной фиксацией на Западе действительно строго. От туда и сильная специализация позиций (а не должностей). Поэтому senior-разработчик там действительно не занимается методиками ведения бизнеса, и уж тем более не занимается их разработкой. Его бы за это просто уволили.
Когда речь о решении задач бизнеса, то это речь именно и исключительно о методиках ведения, решения и выполнения задач бизнеса. Заключить контракт, придумать продукт/сервис или продать актив — это задачи бизнеса, по признаку обрабатываемых объектов, имеющих непосредственное денежное выражение. И senior-разработчик не занимается ни поиском контрагентов, ни оценкой, ни тестированием решения в бизнес-среде, ни переговорами с инвесторами и остальными принципиальными по конструкции и процессам вещами, что находятся между владельцем/соучредителем бизнеса, потребителями и непосредственными контрагентами.
Разработчику бизнес на входе даёт методику и правила бизнеса, определяет цель и формирует требования к техническому решению (а не техническое задание) силами бизнес-аналитика, системного аналитика и архитектора. А дальше lead- и senior-разработчики либо находят, либо разрабатывают методы по воплощению этих требований и разрабатывают ПО согласно выбранным методикам ведения программного проекта.
Происхождение идеи «решение задач бизнеса головой программиста»
Идея «программист должен решать задачи бизнеса» родилась у менеджеров, очевидно. Какая основная деятельность менеджера? Перекладывать. Кто делает сам, менеджером быть не может. Потому что управлять — не мешки ворочить. Поэтому для менеджеров такая идея — совершенно нормальна: вместо того, чтобы тратиться на бизнес-аналитика, системного аналитика и архитектора, и чтобы не думать самим (потому что необходимых для этого методов мышления у них в голове нет и не сами же они делать будут-то), они попытались переложить проблему разработки методик ведения бизнеса на программистов.
Как можно проверить происхождение идеи на примере
Возьмём самую болезненную проблему торговли: формирование заказов поставщикам и распределение поступлений по заказам клиентов. Болезненна она потому, что у каждой компании, у каждого болта своя лексика торговли. Лексика торговли — это номенклатура товаров и услуг. Это не просто их идентификация, а также идентификация их свойств, характеристик и объёмов. И с точки зрения менеджера, и особенно директора, эта проблема не решаема. Потому что если её решить, торговлю можно будет вести практически без них: система сама будет переводить номенклатуру одной компании в номенклатуру другой, по ней переводить заказы, ещё и переводить в представления для покупателей.
А ещё эта проблема не решается потому, что номенклатура и управление ею является принципиальной частью методик управления торговлей. Ну а какие-такие методики вообще у директоров и менеджеров в основной массе своей? Нет, они по таким принципам вообще не привыкли работать. Им главное — коммуникации, назначить, нанять, уволить, начислить, списать, получить. А если есть методики, то коммуникации принципиально сокращаются, и что тогда им делать, как неиллюзорно показать свою необходимость бизнесу? Заменить их методиками и системой — вообще антисоциально, с их точки зрения. И для них очевидно, что менеджеры другой компании не пойдут на то, чтобы наладить хотя бы синхронизацию номенклатуры: это же ведь головой много думать придётся и вообще абсолютно не понятно, в том числе и выгода от этого дела. Как это действительно следует решать, какие для этого есть методы решения и почему я про это говорю — тема не для этого поста.
Кроме того, разработка методик вообще требует не только компетенций разработчиков ПО (потому что это про анализ, описание и конструирование), а ещё и компетенций исследователя и ряд других. А кто в компании больше всех думает и голову ломает (и вообще обязан это делать) с точки зрения менеджера и директора? Программист. Ну т.е. опять-таки по причине функциональной фиксации и ненависти к математике и мышлению.
Главное правило в организации работы на Западе — каждый должен заниматься своим и только своим делом.

Вы «на Западе» работали когда-нибудь?
Когда речь о решении задач бизнеса, то это речь именно и исключительно о методиках ведения, решения и выполнения задач бизнеса. Заключить контракт, придумать продукт/сервис или продать актив — это задачи бизнеса

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

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

Вы лично работали менеджером успешной фирмы, или знаете лично таких, чтобы утверждать прямо за всех? Мне кажется, Вы либо излишне упрощаете, либо ориентируетесь на плохих менеджеров (такие есть, конечно, как и плохие программисты).
В контексте данной статьи и фразы «программист должен решать задачи бизнеса», всегда подразумаевается именно выделенное жирным — придумать сервис, а также дальнейшие пути его улучшения.

Не вижу противоречия с тем, что я сказал: именно о проблеме перекладывания бизнесом разработки, генерации, воплощении и проверки бизнес-идеи на программиста я и говорил с своём комментарии. Об этой же проблеме говорит автор поста.

Что касается менеджера, довольно просто проследить, к какому конечному действию приходит вся его деятельность. Потому что если она не приходит к перекладыванию, значит она не переходит к команде или бизнес-правилам, т.е. к управлению. Перекладывать, по определению, можно на любой исполняющий механизм, т.е. человека, робота, технику, организм, физико-химический или вычислительный процесс и т.д. Т.е. природа не важна: важно, что некая действующая сущность оказывается в роли исполнителя и этим реализует нужную функцию. А ещё не важно, на какой именно объект перекладывается: это может быть и сам сотрудник в менеджерской позиции. Главное — соответствие функциональных требований переложенного функциональным возможностям исполнителя. То, что сотрудник в менеджерской позиции может выполнять ещё и другие виды деятельности, никак не меняет существа его основной роли в компании. Например, часто прибегают к смешиванию менеджерской и аналитической деятельности.
Разработчику бизнес на входе даёт методику и правила бизнеса, определяет цель и формирует требования к техническому решению (а не техническое задание) силами бизнес-аналитика, системного аналитика и архитектора. А дальше lead- и senior-разработчики либо находят, либо разрабатывают методы по воплощению этих требований и разрабатывают ПО согласно выбранным методикам ведения программного проекта.

А что мешает бизнесу давать разработчику то, что он даёт бизнес-аналитику, системному аналитику и архитектору напрямую, без этих "посредников"?

А что мешает бизнесу давать разработчику то, что он даёт бизнес-аналитику, системному аналитику и архитектору напрямую, без этих «посредников»?


А в честь какого праздника жизни работник должен работать за троих? Любой труд — это коллективная деятельность ведь.

Что значит "за троих"? 24 часа в сутки? Этого обычно не ожидают от него, давая ему задачи, которые где-то в другом месте делали бы три разных человека.

Никак не догоняю, в честь чего я должен делать то, что делают 3 разных человека? Может, мне еще и 4м пойти — прибраться, там, в офисе?
Никак не догоняю, в честь чего я должен делать то, что делают 3 разных человека?

Хм, а почему вы решили что это «что-то» обязательно должны делать именно три разных человека? Вы можете озвучить какую-то конкретную причину почему эти три вещи не могут совместно делать два человека? Или пять? Или десять? Или даже какой-то один человек?

Или вот зайдём с другой стороны: вот у вас есть фронтенд-разработчики и бэкэнд-разработчики. Означает ли это что фуллстэк-резработчиков быть не должно так как они «должны будут делать то, что делают 2 разных человека»?

Может, мне еще и 4м пойти — прибраться, там, в офисе?

Ну лично я не вижу ни одной причины почему это не должно быть возможно в принципе. Ну то есть если фирму это устраивает и вас это устраивает, то почему нет?
Специализация же. 3 специалиста каждый в своем деле сделают более качественно и быстро свои задачи, чем 3 универсала. При прочих равных.

Не факт. Будут потери на коммуникации между тремя специалистами. И хорошо если просто потери времени на коммуникации, а не потери важной информации. Например, бэкендер забудет сообщить фронту что ожидает от него request_id, а девопсу, что пишет логи каждого запроса. В итоге диск забъётся логами, польза от которых будет заметно меньше ожидаемой.

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

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

И сделают их так себе. Или багов будет больше, или тормозить будет сильнее, или поддерживать будет сложнее.
Три специалиста втрое дороже, чем один универсал, если работы мало.
Три специалиста невозможно загрузить так равномерно, как 3 универсала, если работы средне.
Десять специалистов трёх разных направлений более эффективны, чем десять универсалов, если работы много.
Ваш К.О.

P.S. Я в одной фирме ещё и тестироващиком параллельно был, то есть даже «4 человека», а сейчас у нас даже деплоймент-специалисты выделенные есть. Просто кардинально разные масштабы проектов.
Ну так специалисту же и логично стремиться со временем на проекты побольше да поинтереснее. А отсюда естественным образом выплывет и большая специализация и разделение.

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

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

Про менеджеров речи не было, было про аналитиков и архитекторов.

Ну не суть важно. Роль аналитика по сути как раз прослойка между технарями и бизнесом.
Вот я, например. Да много таких, кому интересно быть немного аналитиком и видеть в проекте не сугубо кодинг, а и финальную цель. То есть основная работа, конечно, на аналитиках, но и инициатива от разработчиков поощряется.
Ну так и вопрос то в том имеем мы эти самые «прочие равные» или нет. И например если фирма не может полностью загрузить работой трёх специалистов, то тогда может и логичнее чтобы их задачи взял на себя кто-то один.
Или скажем если на рынке труда нужных специалистов просто нет вообще или нет в нужном количестве.
Но мы ведь говорим про специалиста которому интересен технический рост. Зачем ему в такое место идти если есть места где есть специализация?

Рост может быть не только вглубь, но и вширь.

Но мы ведь говорим про специалиста которому интересен технический рост.

Разве? Где в этой ветке это было обозначено?
Далеко не всем интересен технический рост, как изучение чисто новых фреймворков. Большинство хочет карьерный рост, для которого как раз очень полезно уметь немного из смежных областей.
Ну и вообще, очень многих мотивирует выглядывать чуть-чуть из-за монитора в реальный мир.
Напомните как статья называлась? Если речь именно про программиста — то ему не нужно свою роль с ролью аналитика совмещать. Такое совмещение лишь один из частных случаев. Для карьерного роста куда нибудь там в тимлиды — да, это полезно, но опять же, это уже не совсем программист. Часто совсем не программист (со временем).
Если речь именно про программиста — то ему не нужно свою роль с ролью аналитика совмещать

Это как раз таки субъективное мнение автора статьи и мы сейчас и обсуждаем насколько остальные с ним согласны или нет.

Такое совмещение лишь один из частных случаев.

Вот только по моему опыту этих самых «частных случаев» куча и лично я знаю очень мало программистов, которые на работе занимаются исключительно программированием и ничем больше.
Такое совмещение лишь один из частных случаев.

Мой личный опыт и мои наблюдения говорят о том, что частный случай — это как раз чистый программист, который погружается только в технические аспекты, и никуда более.
Согласен. Добавлю лишь, что программист, который на 5% занимается бизнес-анализом, вопросами бизнеса и тестированием, куда полезнее, чем тот, который не занимается.
Доводилось видеть решения таких чистых программистов. На первый взгляд — «итальянская забастовка», а поговоришь, и понимаешь что он и правда уверен что сделал в лучшем виде.

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


Но при этом где то 15-30% времени надо тратить на бизнес-анализ и общение с клиентами. Неужели вы откажетесь? Особенно если похожих вакансий на рынке больше нет?

Скорее всего откажусь. Да. Я не против в какой то мере вникнуть в логику продукта и обсуждения с аналитиком каких то замеченных несоответствий или своего видения, но Цифра упаси от общения с клиентами или бизнес-анализа. А уж тем более в объеме 15+%. И 5% это много.
От меня только возможные рац. предложения будут, в рамках моих компетенций и опыта. Не больше.
А как же «интерес к техническому росту»? :)
Ну так какой технический рост в условиях когда нервы испорчены клиентами и непрофильной работой которую не любишь? Тут хотя бы не выгореть — и то хорошо будет.
А вот это уже опять же очень субъективно. То есть если для кого-то это так, то да, «он не должен решать задачи бизнеса». Но я бы не сказал что это применимо вот прямо ко всем программистам по умолчанию.
Ну собственно мы тут и обсуждаем должен ли подход «программист должен решать задачи бизнеса» применяться ко всем, или таки нет.
Ну если уж вернуться к самой статье, то там речь идёт не о всех программистах в целом, а скорее только о сениорах(«senior software developer»). Ну то есть даже сам автор статьи и написал «И тут я понял, что сеньор — это тот, кто решает задачи бизнеса.»

И как бы на мой взгляд наверное можно сказать что все сениоры должны это делать. Как минимум если следовать тому что лично я понимаю под термином «senior software developer».
Как по мне senior это именно технический скилл. То что во многих компаниях такие программисты не нужны а нужны именно мидлы совмещающие программирование с аналитикой, общением с бизнесом и клиентами и прочее — это уже другой разговор, как и то что их называют сеньерами чтобы от обычных мидлов отличать, которые не желают заморачиваться. То что в большинстве компаний именно так я согласен. То что ответственность и зп выше у таких людей чем у равных им по техническому скилу но не занимающихся этим — я тоже согласен. Это все вполне естественно. Но с тем что сеньер это только тот кто в задачи бизнеса лезет — я не согласен.
Ну вот и получается что камень преткновения у нас это понимание термина «сениор». И ответ на вопрос «должен ли сениор рештаь задачи бизнеса» зависит исключительно от того что мы понимаем под термином «сениор».
С этим я полностью согласен.
и общение с клиентами


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


Ну, вот видите, Вы уже и торгуетесь
Бернард Шоу на приеме, прогуливаясь, беседует с английской королевой:
— Наблюдая за нашей жизнью, говорит он, я пришел к неутешительному
выводу, что любая женщина продается.
— Что Вы такое говорите, возмущается королева. В нашей стране,
да даже в этой зале есть много честных и порядочных женщин о которых
не только сказать, но и подумать такое нельзя.
— Да в том то и дело, что они только с виду такие — цену набивают.
— Ну неужто Вы и меня имеете в виду! — вспыхнула королева
Шоу с невозмутимым видом оглядывает ее и говорит:
— Десять фунтов, максимум пятнадцать.
— Как, за меня… меня, английскую королеву..., растерялась она
— Ну, вот видите, отвечает Шоу, Вы уже и торгуетесь.
Кстати, клиенты разные бывают. Если это внутренний проект, то такое общение бывает очень интересным и мотивирующим.
если фирма не может полностью загрузить работой трёх специалистов, то тогда может и логичнее чтобы их задачи взял на себя кто-то один

Есть замечательная теория ограничений, которая построена и крутится вокруг одного краеугольного принципа распределения: кастование трудовой единицы (маны существа) в другую имеет ненулевой коэффициент и имеет свойство зависеть от множества факторов. Следствием этого является то, что любой процесс всегда упирается в подпроцессы и взаимодействующие процессы. На простом примере с вычислительными системами, производительность на конкретной задаче всегда упирается в один из ресурсов.

И это ставит вопрос пропорциональности производительности процессов и операций. Потому что единственный путь снижения простоя — это обеспечение пропорциональной производительности. А т.к. такой оптимум довольно трудно достижим (зачастую, ввиду отсутствия даже самого определения трудовой единицы в случае каждого конкретного человека), то на практике всегда имеет место простой (недогруз, по вашему). Что с ним делать и как его оценивать — тоже отдельный сложный вопрос. Потому что кажущийся недогруз часто куда лучше перегруза.

Почему вы пишете на форум сами а не наняли специального флеймера?

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

Т.е.


  • Вам это нравится
  • Для вас это необременительно
  • В качестве постоянного занятия это было бы много.

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

Не суть важно. Все равно это не работа программиста. Если это интересно — тогда варианты есть. Но если не интересно — программист этим заниматься не обязан. Тем более у него всяко выйдет хуже чем у профессиональных писак. И уж точно мало кто считает что «программист должен писать статьи для бизнеса».
А давайте зайдём немного с другой стороны. Ну вот например есть такая штука документация. И по хорошему её тоже должны писать технические писатели, то есть тоже «специально обученные люди». Но я видел очень мало фирм на которых они были.
И обычно написание документации точно так же спихивали на программистов или даже тестеров. И как теперь: должны программисты писать документацию или если им это неинтересно, то программист этим заниматься не обязан?
У нас как раз на прошлой работе программистам приходилось лезть в бизнес домен и с клиентами общаться — но документацию технические писатели писали)))) Ну то что кода не касалась и архитектуры, но на них у нас документации и не было почти.

Программист вообще ничем заниматься не обязан кроме программирования. По определению слова "программист".


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

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

В другом месте подзадачи высокоуровневой задачи делают четыре человека по цепочке, а вам дают всю задачу целиком. Грубо говоря, сделаете вы за день одну высокоуровневую задачу на 8 часов или четыре низкоуровневых подзадачи по два часа — какая вам разница?

Решение высокоуровневой задачи выражается исключительно программным кодом? Либо же для её решения потребуется договориться с сотрудниками и контрагентами, выяснить ряд ограничений и условий среды (в том числе исследовательскими методами), сконструировать процесс деятельности людей и задействования в нём вычислительных средств, а то и средства иного происхождения (сторонние сервисы, технику или даже живые организмы), например? Я уж не говорю про ситуацию, когда от программистов ожидают получить метод решения научной или инженерной проблемы, даже не идентифицировав последнюю.

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

Я призываю к осознанию убеждений, действующих в головах людей. Это просто убеждения и способ выбирать, действующий даже без проверки его корректности, причин и последствий. Без идентификации этих убеждений и выяснения их происхождения невозможно закрыть спор по теме, поднятой автором поста. И «должен» имеет место только в случае договора, а не просто наличия ожидания или убеждения у кого-либо. То, что кому-то отказывают в осуществлении их ожиданий — неизбежность: многие ожидания имеют в своей природе тенденцию к перекладыванию ответственности и забот на других и присвоению полученных теми результатов.

Требует, конечно. По крайней мере в части выявления требований, ограничений и условий, а так же конструирования новых или изменения текущих процессов.


Ну и в целом я согласен с мнением представителей бизнеса, если я правильно вас понял, что основная задача программиста думать и разбираться с непонятным. А вот насчёт объектов и субъектов обработки… Мне, наверное, одинаково интерсно разбираться как с оптимизацией программы, так и с оптимизацией бизнес-процессов. Суть, грубо говоря, одна и та же. Потому особой разницы не вижу между одной задачей "под ключ" или четырьмя подзадачами чисто на создание программного кода. Кроме того, что будет скучно заниматься только кодом, как и только анализом и синтезом процессов.

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

Смотрите, здесь всё зависит от вас. Если вы пришли программистом в крупную компанию с развитым ИТ, где в вашем распоряжении есть аналитики, технические писатели, системный архитектор, массажист, няня и личный психотерапевт, то решение вашей задачи — исключительно программный код. Если вы пришли программистом в небольшую компанию, где за вами нет взвода обслуживающего вас персонала, то да, ваша прямая должностная обязанность как программиста будет включать ещё и общение с потребителями вашего софта, сбор требований и так далее. И это правильно, это нормально, так и должно быть. Разговор, какой из подходов лучше — это все равно что спор, какой язык правильнее, C# или Java.

И не просто в с развитым ИТ, а со строгим разделением обязанностей, иерахией, с бюрократической, что ли, культурой. А не скрам-лайк, где всё горизонтально и кроссфункционально. Гд, может быть и есть выделенные аналитики и архитекторы в составе команд, но ответ "я программист — это не моё дело" на просьбу того же аналитика "у меня завал, выясни этот нюанс у стейкхолдера сам и согласуй с продакт-оунером изменения в таске" вызовет, мягко говоря, недоумение.

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

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

2. А что даёт бизнес исполнителям тех ролей? Проблему бизнеса, вопрос, а чаще — плохо выраженные идеи, ощущения и потребности (иногда), а не методику и правила. Вот та троица их и разрабатывает, выявляя, попутно, недостающие методы решения задач. Для недостающих методов формируется отдельный портфель проектов на разработку, оценивается, принимается решение о путях осуществления. И потом уже из результатов их воплощения получаются методы, которые затем оборачиваются методикой и правилами бизнеса.

3. Что произойдет, если программисту дать проблему или вопрос бизнеса? Либо он не решит их, либо решит без соразмерной компенсации: бизнес не даст ему ни долю, ни опцион даже, ни голосующую акцию. Не буду рассматривать причины и последствия первого варианта: они слишком многообразны, главное в нём — бизнес не запустится.
  1. По вакансиям и опросам впечатление, что аналитикам в среднем платят меньше чем программистам, если сравнивать позиции одного уровня, особенно в рамках одной компании.
Главное правило в организации работы на Западе — каждый должен заниматься своим и только своим делом. Это связано, в первую очередь, с их подходом к управлению и с психологическим феноменом функциональной фиксации.

Мне сдаётся, вы об организации работы на Западе судите по одной-единственной компании, в которую вам довелось попасть. На самом деле там абсолютно такой же зоопарк методов управления, как и у нас. От «нихрена непонятно кто чем занимается» до «делай вот по этой спецификации интерфейса вот в этот срок, а что за интерфейс, не твоё дело».
Про остальное, насчёт вашего развития идеи «Кто делает сам, менеджером быть не может. Потому что управлять — не мешки ворочить» и «в норме senior-разработчик не решает задачи бизнеса», даже комментировать не буду это. Будь вы на экзамене, это можно было бы перечеркнуть красным фломастером и кинуть в урну.
Вы пишете про что-то своё: неизвестность интерфейсов сотрудников самим или некоторым сотрудникам никак не отменяет функциональной фиксации в голове у их менеджеров и директоров. Функциональная фиксация (т.е. одна главная функция, ассоциируемая с человеком) элементарно проверяется вопросом «что делает такой-то сотрудник» в обстановке, ни к чему не обязывающей, как-бы случайной и не предоставляющей время на продуманный и обстоятельный ответ. То, что разные люди дадут разный ответ на него — нормально: каждый видит что-то своё. Общее в этих ответах будет единственная главная функция сотрудника, которую видит отвечающий. Это не про многообразие методов управления, а про психику и восприятие, из которых потом растёт остальное. При том же матричном управлении нет противоречий, как и с Agile-методиками, хотя они вообще построены на разных подходах к распределению задач. Один человек — одна функция на Западе доминируют. Об этом там только ленивый ещё не написал.

Не очень понятно, зачем приписывать мне авторство идеи «Кто делает сам, менеджером быть не может. Потому что управлять — не мешки ворочить». И это не идея, а наблюдение основного образа поведения и мышления лет за 20 примерно не только и не столько собственного опыта, сколько опыта окружающих людей. Одно дело — как должно быть и как правильно, и совсем другое — как есть и почему так сложилось. И ни ваш, ни иной экзамен не покажет, как будет: вы просто получите ответы, ожидаемые автором вопросов экзамена, если цель экзаменующегося — сдать экзамен.

Долгое время даже имел место феномен, отмеченный Фредериком Бруксом: многие архитектуры программных продуктов отражают структуру подразделений компании. Т.е. вместо применения необходимых расчётов для получения архитектуры, соответствующей решаемым вопросам и задачам, выходила иная архитектура на иных критериях, происходящих, фактически, из схем коммуникаций между сотрудниками и подразделениями.
Один человек — одна функция на Западе доминируют. Об этом там только ленивый ещё не написал.

А, я понял, вы судите об организации работы на Западе даже не по своему опыту, а по книжкам, которые прочитали. Я вас огорчу: подавляющее большинство руководителей американских и европейских предприятий тоже не читали всякие там «Мифические человеко-месяцы» и «Как пасти котов», как и наши.
Инженер, который строит мост, должен ли вообще задумываться о том, как этот мост будет окупаться? Вообще нет, его задача — спроектировать и построить мост, который уложится в сроки, в смету и простоит указаное по плану количество лет.

И далее про художника и хирурга.
Некорректно сравнивать сеньора в it с рядовым специалистом в прочих отраслях. Если вы посмотрите на обязанности ГИПа, ГАПа, главврача, то обнаружите, что они тоже частенько занимаются хозяйственными и административными вопросами, а не проектируют и не лечат.

Сеньор — это всё же старший, а не главный инженер.

Публикации