Семь ступеней мастерства в разработке ПО

В этой записи я сохранил выжимку из книги Эдварда Йордана — Смертельный марш. Она показалась мне полезной. В своей книге он, ссылаясь на статью своего коллеги Mellir Page-Jones, выделяет несколько ступеней мастерства.

1. Наивный новичокНикогда не слышал о технологии Х (очевидно, для этого не требуется никакого времени).
2. Осведомленный разработчикПрочел статью о технологии Х (в большинстве случаев разработчику ПО достаточно одного часа, чтобы разобраться в общих чертах и высказать свое мнение о преимуществах и недостатках средства, даже если он никогда его не видел или не использовал).
3. Начинающий разработчикПосетил пятидневный семинар (неделя, возможно, сжатая до двух дней ввиду того прессинга, под которым находится безнадежный проект. Следует отметить, что при этом разработчик, скорее всего, успел всего лишь поработать с компьютерными руководствами, предоставленными поставщиком, или пробежаться по небольшим примерам, иллюстрирующим возможности средства. Ему не пришлось столкнуться с какими-либо проблемами и недостатками средства, у него не было возможности, каким образом можно масштабировать средство (если это вообще возможно) для больших и сложных проектов; он не пытался интегрировать средство с большинством остальных средств в данной среде).
4. Практикующий разработчикГотов использовать технологию Х в реальном проекте (по-видимому, достаточно месяца, чтобы в основном постичь все нюансы использования средства и быть вполне готовым к его использованию в «реальном» проекте).
5. Квалифицированный разработчикПостоянно использует технологию Х в своей работе и очень недоволен, если по какой-то причине лишается этой возможности (для достижения такого уровня обычно требуется 6-12 месяцев, и если средство действительно подобно «серебряной пуле», то разработчик превращается в проповедника и пытается всеми способами убедить каждого, что это средство — самое замечательное в мире).
6. МастерУсвоил все детали технологии Х; знает, как обходить ее правила (на это требуется два или три года, это также означает, что разработчик прошел через две или три новые реализации продукта, познакомился со всеми пользовательскими сообществами в Internet, знает все отсутствующие в справочниках номера телефонов специалистов по технической поддержке в организации поставщика).
7. ЭкспертПишет книги, выступает с докладами на конференциях, ищет способ распространить технологию Х на другие галактики (Page-Jones в своей статье говорит о методологиях, поэтому не совсем очевидно, что это применимо по отношению к средствам и технологии).
несколько ступеней мастерства