Про «10x engineer»

Вот этим летом какой-то индийский чувак чувак написал в твиттере, что «для успеха стартапа» очень желательно найти «10x engineer» — то бишь программиста, который работал бы за десятерых, а «кушал» бы, желательно, за одного:

https://twitter.com/skirani/status/1149302828420067328

Индусу, конечно, напихали хуев в панамку — но вообще, «10x engineer» — это реальность, например, в модели COCOMO (Constructive cost model), применяющейся для оценки сроков разработки программного обеспечения (в частности, NASA сделало даже онлайновый калькулятор — впрочем, расчеты там довольно просты). Применимость ее, правда, ограничена — для того, чтобы посчитать сроки, нужно заранее как-то прикинуть количество строк кода в проекте, а этого знать заранее никто не может. Впрочем, в модели есть довольно забавная штука — набор множителей, увеличивающих или уменьшающих сроки в зависимости от разных факторов. Непосредственно к квалификации программиста можно отнести весь раздел Personnel Attributes, а заодно — два параметра из Project Attributes — Modern Programming Practices и Use of Software Tools. Если принять «стандартную» сложность проекта за единицу, то использование «лучших из лучших» проектировщиков-аналитиков и программистов с офигенным опытом даст снижение сложности до 0,71*0,82*0,70*0,90*0,95*0,82*0,83=0,23 — в 4,5 раза. А что будет, если брать специалистов уровня «ниже среднего» (но не самое дно — лучше, чем 15% худших)? Сложность проекта в человеко-часах возрастет до 1,19*1,13*1,17*1,10*1,07*1,10*1,10=2,24 — больше двух раз.

Собственно, вот здесь и видно, как возникает десятикратная разница — опытных (от 3 лет опыта с конкретной «платформой», и от 12 лет «вообще») высококлассных специалистов (10% лучших) сравнивают с малоопытными (меньше года) и низкоквалифицированными.

PS С другой стороны, сама по себе модель, где можно варьированием факторов изменить оценку сложности и продолжительности проекта в десять или даже хотя бы в пять раз — тоже штука довольно сомнительная.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *