94
организации, никто не воспринимал его как «серебряную пулю», которая сможет чудесным
образом спасти проектную команду от гарантированной катастрофы. Иногда можно видеть
проектную команду, добивающуюся разрешения использовать какое-либо мощное средство, с
которым они уже имели дело в предыдущей работе - однако, это достаточно редкое явление. В
большинстве случаев никто из участников проектной
команды и вообще никто в организации
никогда прежде не видел или не использовал это средство.
Как отмечалось раньше, любое нетривиальное средство обычно предъявляет жесткие
требования к соответствующим процессам; таким образом, новое средство обычно подразумевает
новый процесс. Хотя такая зависимость должна быть очевидной, тем более поразительно,
насколько часто представители поставщика, занимающиеся
обучением, пробегают пятидневный
семинар по использованию средства и только после этого обнаруживают, что сотрудники,
обучающиеся на курсах (руководители которых уже впали в панику по поводу пятидневного
отставания от плана из-за их обучения), абсолютно ничего не понимают в процессах,
поддерживаемых данным средством. Чрезвычайно неприятно, например, провести два дня,
объясняя лишенному какого
-либо энтузиазма студенту, как рисовать ER-диаграммы, и затем
услышать от него вопрос: «Между прочим, а что такое сущность? Поскольку я собираюсь
программировать все на С++, зачем мне вся эта чепуха?»
Предположим, однако, что участники команды разбираются в процессах, поддерживаемых
(или автоматизируемых) данным средством и готовы с энтузиазмом использовать его в
практической работе; правда, мой 20-летний опыт преподавания структурных и объектно-
ориентированных методов говорит о том, что такое предположение наивно, и бессмысленно
продолжать дальше обсуждение этой проблемы. Итак, если мы предположим, что не существует
технических проблем, связанных с данным средством, и если предположим, что соответствующие
процессы также не вызывают никаких проблем,
тогда все, что остается - это обучение и практика,
связанные с самим средством.
Как много времени на это потребуется? Очевидно, это зависит от характера и сложности
средства, а также от его пользовательского интерфейса, возможностей онлайновой подсказки и др.
В лучшем случае разработчики могут самостоятельно разобраться, как использовать средство, без
какого-либо формального
обучения; в такую возможность ужасно хочется верить менеджеру
проекта и разным другим руководителям, поскольку они считают любое обучение потерей
времени и отвлечением от «реальной работы» над проектом. Более реалистичная оценка
заключается в том, что на освоение средства потребуется час, день или неделя. Независимо от
формы (занятия в классе, чтение книги
или просто «игры» со средством), на это все равно
потребуется какое-то время.
Тем не менее, в результате обучения мы не получим опытного пользователя в совершенстве
владеющего средством. Обучение не является двоичным феноменом: к концу недельного
обучения в классе участники проектной команды не перейдут из состояния полного непонимания
в состояние высшего
мастерства владения средством. Это должно быть очевидным, однако
нарушает планы высшего руководства, которые склонны ворчать и возмущаться: «Хорошо, мы
потратили кучу денег на этих высокооплачиваемых преподавателей и напрасно потеряли столько
времени в классах, чтобы эти ленивые бездельники-программисты могли научиться кодировать.
Теперь мы хотим увидеть реальную отдачу от этого «замечательного»
средства, за которое вы так
агитировали!» Наверное, в такой наивности высшего руководства нет ничего удивительного,
поскольку они сами практически не сталкивались с инструментальными средствами; однако, к
сожалению, мне приходилось наблюдать похожую реакцию со стороны многих менеджеров
безнадежных проектов, гораздо лучше разбирающихся в технических вопросах.
В замечательной статье [1] мой коллега Mellir Page-Jones утверждает, что
в разработке ПО
существует семь ступеней мастерства; его статья сосредоточена в основном на методологиях, но я
думаю, что она в такой же степени применима к средствам и технологиям. К списку,
приведенному ниже, я добавил свои собственные оценки, касающиеся времени достижения
разработчиком средней квалификации различных ступеней мастерства в предположении, что
средство
или технология обладают средней сложностью: