Professional Scrum Master (PSM)

Professional Scrum Master (PSM)
Professional Scrum Master (PSM)

четверг, 30 января 2014 г.

Ровно 37 градусов


Ровно 37 градусов. Если вы купаете новорожденного ребенка, то должны следить за тем, чтобы вода в ванночке была прокипячённая и температура обязательно соответствовала  тридцати семи (37) градусам. Все очень просто – мы кипятим большую кастрюлю с водой, выносим ее на балкон и даем остынуть в течение нескольких часов. Таким образом, получаем большой объем стерильной холодной воды. Затем незадолго до самого купания ребенка, кипятим воду в другой кастрюле.  После этого, вода из двух кастрюль смешивается в различных пропорциях до того момента, пока градусник, плавающий в ванночке, не покажет заветные 37 градусов. Это получается не сразу. Обычно, с первого раза у меня получается слишком горячая ванночка, столбик термометра скачет вверх. Я иду и доливаю воду из холодной кастрюли, мешаю, и снова меряю температуру, понимаю, что переборщил и снова доливаю горячую. Таким образом, после нескольких неудачных попыток, мне, все-таки, удается получить ровно 37 градусов.

Эмпирический процесс. Вчера, отправляясь на кухню за очередной порцией горячей воды, я вдруг понял, что мои действия представляют собой ни что иное, как эмпирический процесс. Я лью воду “на глаз” (Действие), затем меряю температуру (Инспекция) и доливаю по необходимости горячую или холодную воду (Адаптация). Градусник, плавающий в ванночке, обеспечивает Прозрачность процесса. Терморегуляция, теплоемкость воды и ванночки, температура воздуха, наш с женой метаболизм, конечно же, влияют на температуру, но данные параметры меня абсолютно не интересуют, потому что у меня есть возможность Инспектировать и Адаптировать.
Детерминистический процесс. Давайте представим мои действия в том случае, если бы я хотел использовать детерминистический процесс. Сначала мне пришлось бы поднять учебники по физике и выписать необходимые для расчетов параметры воды (плотность, теплоемкость и тому подобное) и некоторые формулы. Затем я бы захотел узнать объем воды необходимый для нагрева, померять емкость обеих кастрюль, произвести точные вычисления. И поверьте, с такой простой задачей, как ванночка с водой в 37 градусов я бы успешно справился, не смотря на то, что потратил бы кучу времени. А каковы были бы последствия ошибки в вычислениях? Ошпаренный или замерзший ребенок, ни больше ни меньше.
Когда? Это самый распространенный вопрос в индустрии разработки программного обеспечения. Когда ЭТО будет сделано? Когда мы можем выйти в релиз? Когда мы закончим проект? Чаще всего я говорю: «не знаю, давайте подождем несколько Спринтов, посмотрим на скорость команды и сделаем прогноз.» Я не занимаюсь гаданием на кофейной гуще, не хожу к гадалкам и не умею предсказывать будущее по звездам.
Как мы работаем в Скраме. Все происходит также, как и в примере с купанием ребенка. Сначала я лью воду “на глаз” (даю командам отработать несколько спринтов, чтобы узнать их возможную производительность), смотрю на градусник (высчитываю релиз- план исходя из исторических данных по велосити), доливаю холодную и горячую воду (ведем разработку Спринтами), не забывая при этом после каждого эксперимента (Спринта) мерять температуру (Инкремент продукта в конце Спринта должен быть потенциально готовым к использованию).
Многостраничные планы, трудоемкие вычисления с множеством формул –  кидаем в топку. В турбулентной среде Разработки Программного Обеспечения нужно работать как можно проще, что вам и советую делать. Иначе бы я никогда не смог покупать своего ребенка :)
Scrum ON!