пятница, 27 июня 2008 г.

Мотивация разработчиков

Что является мотивацией делать свою работу хорошо? Часто задаюсь этим вопросом как по отношению к себе ,так и по отношению к ребятам работающим со мной. Как добиться от людей более качественной работы , повысить их ответственность за конечный продукт? Многие говорят что главная и основная мотивация это деньги ,и следовательно лучше всего использовать систему штрафов и премии. Я не вполне согласен с этим утверждением , ибо следствием из него является тотальный контроль за действием работника , учет его достижении и недостатков с соответствующим вычислением премии. Это весьма мерзкая и нудная, на мои взгляд, работа, превращающая начальника в некоего надсмотрщика с бичом. В идеале хотелось бы иметь сплоченную команду людей идущих к одной цели ради идеи ,а не кучу людей пытающихся перекинуть работу друг на друга и побыстрее дождаться вечера. Но как мотивировать людей? Что если человеку уже не интересна его работа , или он устал от продукта которым он занимается? На мои взгляд достигнуть этого можно выдвинув людей так сказать на линию огня, убрав людей заслоняющих их от бушующего ветра.

Приведу наш пример, мы занимаемся разработкой программного обеспечения в одной крупной американской компании. Изначально процесс работы был построен так что разработчики находились очень далеко от пользователей , т.е. были люди которые проверяли наш продукт (тестеры) , люди которые писали нам что делать (product managment), команда осуществляющая продажи и команда обеспечивающая поддержку. При этом как не трудно заметить разработчики были окружены огромным бюрократическим аппаратом закрывающим их от любых недовольств с любой стороны. Если разработчикам говорили что они что то не так сделали то ответ чаще всего был "нам так поставили задачу" , если находили баги то виноваты были тестеры , если продукт не зарабатывал денег то продавцы или те кто его придумал. Разработчики же всегда были "белыми и пушистыми".

В результате ряда течении у нас не стало тестеров , и мы сами начали заниматься автоматизацией тестирования , как то в рамках TDD так и используя механизмы автоматического приемочного тестирования (FitNesse). Так же пропали люди которые принимали на себя удар пользователей , и каждый в команде вынужден был лично общаться с покупателями, разбираться с трудностями и решать их.

Подобный подход позволил разработчикам почувствовать что они делают, зачем и для кого. Ко всему прочему улучшилось качество кода , увеличилась скорость команды и команда начала делать больше полезных вещей.

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