пятница, 12 декабря 2014 г.

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


В книжке Эдварда Йордона "Путь камикадзе" наткнулась на интересную тему.

Новый софт (для разработки или для автоматизации) привлекает своими возможностями. И вот ситуация — выпросили мы у начальства новый клевый инструмент, оно дало добро. Оплатили инструмент, оплатили курсы по его изучению. Но вот беда, за неделю обучения ты экспертом не станешь. Казалось бы, это очевидно, но начальники могут начать задавать вопросы "Мы согласились на ваш инструмент, вложили кучу денег. И где результат?".

В своей книжке Йордон ссылается на статью Мейлир Пейдж-Джонс The Seven Stages of Expertise in Software Engineering и я хочу привести тут его перевод этих ступеней:
  1. Наивный новичок — никогда не слышал о технологии Х (очевидно, для этого не требуется никакого времени).
  2. Осведомленный разработчик — прочел статью о технологии Х (в большинстве случаев разработчику ПО достаточно одного часа, чтобы разобраться в общих чертах и высказать свое мнение о преимуществах и недостатках средства, даже если он никогда его не видел или не использовал.
  3. Начинающий разработчик — посетил пятидневный семинар. Неделя, возможно, сжатая до двух дней ввиду того прессинга, под которым находится проект. Следует отметить, что при этом разработчик, скорее всего, успел всего лишь поработать с компьютерными руководствами, предоставленными поставщиком, или пробежаться по небольшим примерам, иллюстрирующим возможности средства. Ему не пришлось столкнуться с какими-либо проблемами и недостатками средства, у него не было возможности масштабировать средство (если это вообще возможно) для больших и сложных проектов; он не пытался интегрировать средство с большинством остальных средств в данной среде.
  4. Практикующий разработчик — готов использовать технологию Х в реальном проекте. По-видимому, достаточно месяца, чтобы в основном постичь все нюансы использования средства и быть вполне готовым к его применению в "реальном" проекте.
  5. Квалифицированный разработчик — постоянно использует технологию Х в своей работе и очень недоволен. если по какой-то причине лишается этой возможности. Для достижения такого уровня обычно требуется 6-12 месяцев, и если средство действительно подобно "серебрянной пуле", то разработчик превращается в проповедника и пытается всеми способами убедить каждого, что это средство — самое замечательное в мире.
  6. Мастер — усвоил все детали технологии Х; знает, как обходить ее правила. На это требуется 2 или 3 года. Это также означает, что разработчик прошел две или три новые реализации продукта, познакомился со всеми пользовательскими сообществами в интернете, знает все отсутствующие в справочниках номера телефонов специалистов по технической поддержке в организации поставщика.
  7. Эксперт — пишет книги, выступает с докладами на конференциях, ищет способ распространить технологию Х на другие галактики (Пейдж-Джонс в своей статье говорит о методологиях, поэтому это не совсем применимо по отношению к средствам и технологии).
Статья написана давно, но до сих пор актуальна! Еще раз дам на нее ссылочку. чтобы не пришлось скролить вверх.

Я думаю, это применимо не только к разработчикам, но и к тестировщикам  Инструменты автоматизации точно проходят эти ступени. JMeter, Soap Ui, всему надо учиться.

Покажите эти ступени своему менеджеру, когда будете записываться на обучение. Или посматривайте на них сами, когда руки начнут опускаться на 3 этапе! (smile)

Комментариев нет:

Отправить комментарий