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