II.0.2. Late Introduction
Запоздалое введение
Ура! Мы можем дать нормальное, формализованное введение нашей книге. И все благодаря рассмотренной нами концепции S.M.A.R.T. (кстати, smart в переводе с английского означает не только умный и умелый, но и «страдания» – смотря как Вы к этой методологии будете подходить).
Итак, чему же учит наша книга, в чем ее цель?
S-Specific. Отражать в Ваших проектах то, что Вам нужно, и так, как Вы считаете нужным.
M-Measurable. Количество сил и средств, потраченных на формулирование, реализацию и сдачу.
A-Achievable. Да, если Вы хотите. Если же нет – о чем нам говорить?
R-Relevant. Время – основная универсальная валюта. Ваше время (теоретически) для Вас должно быть особенно дорого. И сколько Вы его потратили (трудоемкость), и на сколько Вам его уменьшили (нервы). Разве это не так?)
T-Timely. В итоге у нас получится 11—12 лекций. Это меньше трех месяцев. Компактный, понятный, ограниченный срок.
II.0.3. Smartest One
Умный парень
В следующих главах мы рассмотрим с Вами особенности и подходы к самому процессу проектирования – достижению выбранной цели. Сейчас достаточно сказать, что в том случае, когда цели меняются с течением времени, необходимо закладывать саму возможность данного процесса изменения в структуру целеполагания.
Автором было предложено расширение методологии S.M.A.R.T., обеспечивающее учет такого свойства целей современных проектов, как постоянная изменчивость (эволюционность), необходимость разделения функционала проекта на мелкие независимые (атомарные) функции и, наконец, ограниченность имеющихся ресурсов.
Результатам стала методология S.M.A.R.T.E.S.T.= S.M.A.R.T.+
• E – Evolution. Цель проекта меняется со временем.
Неважно, вы проектируете по Agile, изменяют техническое задание по окончании этапа проектирования либо изменились предпочтения целевой аудитории вашего продукта.
• S – Set of functions. Цель может быть достигнута путем решения (параллельного, последовательного или комбинированного – это не так важно) ряда задач. Каждая из этих задач должна являться атомарной – относительно простой и независимой от других.
Примерами здесь является проектирование любой программной библиотеки или – внезапно – диссертации: кандидатской или докторской. Собственно, написание которых и натолкнуло на формулирование данного элемента целеполагания.
• T – Tolerance limits. Достаточно очевидное, казалось бы, расширение. Действительно, уже в оригинальном SMART мы ставим ограничение на время, но почему-то не на другие ресурсы.
А ведь мы всегда ограничены деньгами, трудовыми единицами, доступными рынками… В общем, в процессе корректного целеполагания необходимо максимально трезво представлять себе ограничения, с которыми Вы можете столкнуться. Да, они могут меняться со временем, но на то разработанная методология и ориентирована – на эволюционные цели.
II.2. Цель, вопрос, оценка
Goal, Question, Metric
Если Вы думаете, что понимаете квантовую механику, значит, Вы не понимаете квантовую механику.
Ричард Фейнман, Нобелевский лауреат, физик-ядерщик
II.2.1. GQM и его уровни.
GQM conception and it’s levels
S.M.A.R.T. – изначально методика для менеджеров, которые не должны и не могут разбираться в сложных технических аспектах любого современного продукта.
Когда же мы говорим о разработке какого-то программного обеспечения, каких-то изделий, то желательно использовать более сложные и конкретные методики, интегрирующие в себе не только целеполагание, но и способы проверки степени достижения поставленной цели в каждый момент времени. К счастью, в восьмидесятые годы в NASA была разработана прекрасная методика, позволяющая гибко объединять вопросы и KPI в самом процессе целеполагания, а затем и оценивания итогового проекта.
Речь идет о созданной Виктором Басили (Victor Basili) методике отказоустойчивого проектирования под названием GQM – Goal, Question, Metric (цель, вопрос, оценка). Данная методика имеет три уровня – страты существования.
1. Концептуальный – целевой (goal) уровень.
На этом уровне формируется цель, представляющая собой вещественный объект или абстрактную сущность (object or entity в оригинале), при этом в качестве данного объекта или сущности могут рассматриваться:
o продукты (products): программный код, физическое изделие, теоретическая концепция и т. д.;
o процессы (processes): тестирования, верификации и валидации программного кода; дизайна изделий; налаживания сбыта и проч.;
o ресурсы (resources): материальные, финансовые, информационные, трудовые и проч.
2. Операционный уровень – уровень вопросов (questions).
На данном уровне появляются вопросы, которые должны быть заданы, чтобы четко определить цель.
Примеры удачных вопросов для различных видов целей.
o Является ли производительность данного (конкретного) процесса достаточно удовлетворительной с точки зрения команды?
o Ухудшается ли точность станка со временем?
o Будет ли лучше безопасность рестайлинга автомобиля?
3. Квантитативный уровень – уровень метрик (metrics). Здесь определяются метрики – способы определения количественных оценок на каждый заданный вопрос. Метрики делятся на два типа – объективные и субъективные.
Примеры объективных метрик:
• количество линий кода;
• процент отказов;
• максимальная длина пути на одной заправке.
Примеры субъективных метрик:
• удовлетворенность клиентов по 10-балльной шкале;
• аккуратность вождения по 5-балльной шкале;
• относительное улучшение самочувствия после лечения.
Важно!