- PVSM.RU - https://www.pvsm.ru -

Десять правил спокойной разработки

Введение

Современный темп разработки ПО просто поражает своей скоростью. Функционал всегда «нужен вчера». Зачем? Конкуренция — обойдут, обгонят. Времени тестировать нет, надо отгружать функционал, надо, надо, надо.

На помощь командам разработки приходят практики, методологии, подходы и четкие регламенты. Попробую сформулировать в виде десяти правил концепцию «спокойной» разработки. А она то вынудит использовать современные методологии разработки ПО. И заказчик спокоен, и нервы свои целы. Profit!

Проблема

В фильме «Пираты силиконовой долины» [1] хорошо показаны замученные длительным марафоном разработчики Apple. А код уставшего разработчика часто не приятен даже ему самому на следующий день. Вывод — не писать уставший код. Да и производительность оставляет желать лучшего.

Но требования постоянно меняются, горизонты продукта размыты, заказчик не может внятно объяснить, что хочет. Для таких случаев и придумали Agile [2]. Все родственные методологии позволяют гибко подстраиваться под изменяющиеся требования заказчика и выдерживать должный темп разработки без ущерба здоровью команды.

Перейдем к правилам «спокойной» разработки.

Правила

  1. Срочных задач не бывает, бывают приоритеты
    Если задача имеет фатальный приоритет, то о ней надо было думать еще неделю назад. Явная ошибка планирования. Либо был проигнорирован пункт 9 и «хомяк» грозится откусить пол руки;
  2. Приступай к задаче после полного ее понимания
    Типичная ошибка в больших системах. Что-то сделал, как-то проверил, получил нечто;
  3. Наладь диалог с заказчиком
    В любом проекте приходится искать компромиссы, расставлять приоритеты. Найти общий язык с заказчиком дорогого стоит;
  4. Руководствуйся ТЗ
    ТЗ будет идеальным при использовании пункта 3, поэтому проблем быть не должно. А если функционального элемента нет, то и делать его не надо;
  5. Используй только проверенный код
    Любой код должен проходить серьезный цикл проверки перед поставкой заказчику. Любые сторонние модули должны быть покрыты тестовым кодом и хорошо проверены. Свой код надо проверять в обязательном порядке, без исключений;
  6. Рабочий день 8 часов
    Очень полезный пункт. Порой надо себе об этом напоминать. Семья тоже требует внимания, да и здоровье свое надо беречь. Если не хватает времени, то смотри пункт 1.
  7. Пиши документацию
    Без документации нет функционала. К тому же, она экономит уйму времени, потому что достаточно дать ссылку интересующемуся. Если документация не понятна, устарела или имеет двойственную трактовку, то ее надо актуализировать;
  8. Держи код в порядке
    Ужасный код должен переписываться, а не врастать в систему. Нет времени? Поставь TODO и исправь в ближайшую свободную минуту;
  9. Заказчик не лабораторный хомячёк для экспериментов
    Есть такой подход «стрельба трассирующими» [3]. Его можно использовать только в молодых и еще мало-функциональных продуктах. Как только продукт переходит в фазу зрелости, заказчик перестает мириться даже с самыми маленькими ошибками. Продукт должен быть идеален. Иначе будет снижаться лояльность, а значит и уровень оплаты работ;
  10. Тестируй
    Очень важный пункт. Если функция не имеет теста, то вообще ничего нельзя сказать о ее работоспособности. ПО нестабильно. Яркий пример SQLite [4]. Вот почему эта БД успешно работает в самых разных системах.

Заключение

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

Автор: VaiMR

Источник [5]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/motivatsiya/19684

Ссылки в тексте:

[1] «Пираты силиконовой долины»: http://ru.wikipedia.org/wiki/%D0%9F%D0%B8%D1%80%D0%B0%D1%82%D1%8B_%D0%A1%D0%B8%D0%BB%D0%B8%D0%BA%D0%BE%D0%BD%D0%BE%D0%B2%D0%BE%D0%B9_%D0%B4%D0%BE%D0%BB%D0%B8%D0%BD%D1%8B_(%D1%84%D0%B8%D0%BB%D1%8C%D0%BC)

[2] Agile: http://ru.wikipedia.org/wiki/%D0%93%D0%B8%D0%B1%D0%BA%D0%B0%D1%8F_%D0%BC%D0%B5%D1%82%D0%BE%D0%B4%D0%BE%D0%BB%D0%BE%D0%B3%D0%B8%D1%8F_%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B8

[3] «стрельба трассирующими»: http://kristina-ametov.narod.ru/7502525.html

[4] SQLite: http://eao197.blogspot.ru/2011/12/progtesting-sqlite.html

[5] Источник: http://habrahabr.ru/post/158095/