С программистами надо держать ухо востро. Они так и норовят нарушить процесс и напортить в коде настолько, насколько это возможно. 🙂

Хоть это и шуточные слова, но доля истины в них есть.

Опишу случай из практики.

Некоторое время назад при разработке сложного сайта электронной коммерции, мы столкнулись с тем, что качество кода начало катастрофически падать. Т.е. исправление одной ошибки влекло за собой появление 10 новых ошибок.

Ситуацию надо было срочно менять.

Никого из программистов это особо не трогало. Они как работали так и продолжали работать. Меня же это никак не устраивало, потому что работа сайта практически блокировалась от постоянно возникающих проблем. Не говоря уже про то, что полностью остановилась разработка новых модулей.

Все силы были направлены на исправление ошибок. Воспитательные меры по отношению к тестировщику и программистам тоже не помогли.

Пришлось лезть в коды и разбираться. И что же я там увидел? О, ужас!

Оказалось, что программисты только на словах ставили себя профессионалами, а на практике их коды были настолько ужасны и безмозглы, что не тянули даже до уровня 10 класса школы. Не люблю наезжать на людей, но это правда.

Первым желанием было выгнать всех и нанять команду заново. Но моя мудрая жена вовремя меня остановила и рекомендовала не выгонять программистов, а обучать их.

И действительно, я вспомнил как сам работал программистом и для меня было важно только одно — как можно быстрее отвязаться от очередной нудной и неинтересной задачи.

И мне было совершенно наплевать на то, правильно или неправильно я её делаю. Я не думал ни над какими усовершенствованиями и просто тупо кодил.

И я не был плохим программистом. Просто мне было не интересно.

Поэтому я решил не сдаваться и научить своих программистов хорошим манерам.

Хорошенько обдумав ситуацию мне стало ясно, что проблему качества кода надо убивать сразу с нескольких сторон:

  • Надо разработать грамотную структуру классов с использованием шаблонов проектирования
  • Обучить программистов методам объектно-ориентированного проектирования и программирования. Как оказалось, они знают их только на словах, и последний раз применяли в институте. С исключениями вообще никто не знал как работать
  • Обучить программистов правильному стилю программирования
  • Минимизировать влияние человека на сайт, т.е. полностью запретить доступ программистов к сайту и создать систему автоматических сборок и предварительного тестирования кода на промежуточных серверах.
  • Увеличить интервал стабильности боевой системы с нескольких дней до 1 месяца, т.е. выкладывать изменения на сайт только 1 раз в месяц, а не по мере их появления.
  • Составлять подробные технические задания с тщательной проработкой всех альтернатив, которые и являются одной из основных причин проблем
  • Проводить постоянный контроль качества кода
  • Поставить тестирование на поток и сделать его простым и измеряемым, т.е. ввести автоматические юнит-тесты и тест-кейсы для ручного тестирования

И что же Вы думаете? Это сработало!

Количество ошибок резко упало почти до нуля. Я был рад.

Однако…   (продолжение следует)

Связанные записи

Share →

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