Как стать автором
Обновить

Проектирование, циклы разработки и тестирование

Время на прочтение3 мин
Количество просмотров2.9K
Поработав с разными командами, я выяснил для себя несколько правил разработки, которыми хочу с вами поделиться.

Проектирование


  1. Лучше потратить большOе количество времени на этапе проектирования информационной системы, чем потерять время и деньги потом.
  2. Ошибки в проектировании могут повлечь за собой: затягивание сроков, многократное удорожание проекта.
  3. Проектировать систему стоит целиком от начала и до конца (без добавления дополнительного функционала) или предусматривать модульность:

    — разработка и доработка концепции полностью.
    — разработка очень подробного технического задания.

    — разработка схемы базы данных
    — разработка сценариев контроллеров
    — разработка дизайна шаблонов представления
    — разработка сценария поведения пользователя (он же сценарий тестирования)
    — СЕО
    — ...
  4. На создание проектной документации и технического задания лучше создать тендер, а затем провести аудит. Возможно на начальном этапе вы потратите больше денег, но зато сможете сэкономить в разы больше в дальнейшем.

Разработка


1. В разработке применяйте готовые и стабильные решения: это значит, что для работы с базой данных лучше применять MVC (Model View Controller) фреймворк или ORM (Object Relational Mapping) или AR (Active Record), а для работы со стандартными сценариями CRUD (Create Read Update Delete) — генератор, который создает код без ошибок.

Ваше мастерство низкоуровневого разработчика никто не оценит, а вот если система работает стабильно и без ошибок будет гораздо большим плюсом.

2. Документируйте код.

3. Создавайте хорошую и понятную техническую документацию.

4. Используйте докер.

5. Используйте системы автоматической сборки версий.

Организация работы команды


  1. Применяйте системы контроля версий, я в своей работе использовал git.
  2. Разделяйте работу разработчиков по разным функциональным модулям, для того, что бы когда ветки системы контроля версий будут сливаться в одну — не возникало конфликтов.
  3. Не занимайтесь экстремальным программированием на коленке, когда на решение задачи отводится от нескольких часов до нескольких дней.

Ставьте задачи минимум на неделю и максимум на месяц до выхода следующей сборки.

Тестирование


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

Цикл разработки


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

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

Задачи должны выполняться в течение недели.

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

2. Каждый понедельник происходит слияние кода каждого разработчика в главную ветку.

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

Далее цикл повторяется.

При таком подходе


  1. Количество ошибок в результате выполнения задач будет минимальным.
  2. Вы сможете создать более качественный программный продукт.
  3. Вы сэкономите время.
  4. Вы сэкономите деньги.
  5. Команда будет работать быстрее, эффективнее, слаженнее ( не конфликтуя в плане изменения кода).
  6. Вы сможете выполнять задачи в срок.
  7. Выполненные задачи будут более качественными.
  8. Вам не придется вносить дополнительные задачи, такие как: изменение дизайна, функционала или чего то еще во время хода работ.

Что сделает результат более предсказуемым и простым и понятным.

Программирую уже больше 10 лет, всем интересных и удачных проектов!
Теги:
Хабы:
Всего голосов 29: ↑16 и ↓13+3
Комментарии17

Публикации