Anatoly Levenchuk (ailev) wrote,
Anatoly Levenchuk
ailev

Давид Андерсон про менеджмент против инженерии

Давид Андерсон (который зачинатель Канбана для разработчиков) имеет собственное мнение про разделение труда между менеджерами и инженерами. Вот тут (http://www.djaa.com/why-we-lost-focus-development-practices, 2008) он рассказывает, что в начальный момент распространения agile там были представлены как инженерные практики (типа парного программирования, юнит-тестирования, непрерывной интеграции и т.д.) и менеджерские практики. Качество софта (он определяет его количеством багов) неизмеримо выросло и ограничение оказалось в менеджерских практиках. После чего только маленькое количество членов сообщества agile продолжило развивать инженерные практики, а большинство сдвинулось на главную проблему -- снять менеджерские ограничения, запустить проход. В книжке Kanban (http://www.amazon.com/Kanban-David-J-Anderson-ebook/dp/B0057H2M70/, 2009) он реализует это своё наблюдение в форме "рецепта" из шести шагов: 1. фокус на качестве (акцент на инженерии, должен выполняться кем-то типа Director for Engineering), а затем в 2-6 он говорит, что инженерного в этих шагах должно быть меньше и меньше.

Этот тренд стал хорошо заметен многим и многим разработчикам: они радостно восприняли самые первые версии agile (когда ещё было принято обсуждать роль и место архитектуры в ходе разработки) и в штыки восприняли приход в их ряды "озабоченных менеджеров", когда инженерная часть была профанирована, а менеджерская с ней не стыковалась. Кончилось это по факту тем, что Якобсон сказал "какая же лавка признается, что она не гибкая! Поэтому слово agile перестало означать хоть что-нибудь" (http://www.csi-india.org/c/document_library/get_file?uuid=faffd90f-cc91-4624-a54a-2272200e5cb2&groupId=10157) и agile с точки зрения инженеров в проекте перестал отличаться от наколенной разработки -- в современном agile по факту ничего инженерного, всё только менеджерское.

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

Должен быть баланс инженерного и менеджерского начал. Разделение труда, а затем его смычка. Андерсон считает, что софтверное дело инженерно и менеджерски неразделимо, и поэтому "сообщество" как стадо вытоптало одну полянку до приемлемого уровня качества и побежало топтать другую. Я же считаю, что прошло обычное разделение труда. Инженерной частью софта не стало заниматься мало народу из agile комьюнити, это Андерсон просто выпал из рядов инженеров, а инженеры не слишком держались за термин со своими инженерными практиками. Хорошо тестировать -- это разве прерогатива только agile?

Но вышло так, что инженеры и менеджеры (даже с учётом новомодных Lean-Kanban-TOC веяний в менеджменте) так и не говорят на одном языке (хотя попытка в первые несколько лет после agile manifesto была сделана -- хотя бы оргпаттерны и архитектурные паттерны начали обсуждать в языке паттернов). Один из немногих моментов явного стыка инженерии и менеджмента в сегодняшнем Lean-Kanban-TOC -- это попытки менеджеров договориться с инженерами про высокомодульные архитектуры, ибо это решает им множество логистических задач. Всё остальное обсуждается без использования понятий из инженерного языка -- все эти "work in progress", "small batch size" и т.д..

Я думаю, что Андерсон погорячился. И в менеджменте много чего интересного происходит, и в инженерии. А самое интересное происходит, как всегда, на стыке -- и слово agile там не ключевое ни у инженеров, ни у менеджеров.
Subscribe
  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

  • 2 comments