Поработав с разными командами, я выяснил для себя несколько правил разработки, которыми хочу с вами поделиться.
1. В разработке применяйте готовые и стабильные решения: это значит, что для работы с базой данных лучше применять MVC (Model View Controller) фреймворк или ORM (Object Relational Mapping) или AR (Active Record), а для работы со стандартными сценариями CRUD (Create Read Update Delete) — генератор, который создает код без ошибок.
Ваше мастерство низкоуровневого разработчика никто не оценит, а вот если система работает стабильно и без ошибок будет гораздо большим плюсом.
2. Документируйте код.
3. Создавайте хорошую и понятную техническую документацию.
4. Используйте докер.
5. Используйте системы автоматической сборки версий.
Ставьте задачи минимум на неделю и максимум на месяц до выхода следующей сборки.
После того, как вы создали качественное техническое задание, можно приступить к разработке, далее приведу повторяющийся цикл:
1. Постановка задач разработчикам в различных системах контроля выполнения задач так, что бы они не затрагивали код друг друга, например разделив систему по модулям, при этом каждый работает в своей ветке.
Задачи должны выполняться в течение недели.
После выполнения каждой задачи, разработчик должен запускать автоматизированные программные тесты, которые покрывают всю систему полностью.
2. Каждый понедельник происходит слияние кода каждого разработчика в главную ветку.
После того, как в главной ветке появляется результат работы всей команды, каждый из разработчиков копирует себе главную ветку.
Далее цикл повторяется.
Что сделает результат более предсказуемым и простым и понятным.
Программирую уже больше 10 лет, всем интересных и удачных проектов!
Проектирование
- Лучше потратить большOе количество времени на этапе проектирования информационной системы, чем потерять время и деньги потом.
- Ошибки в проектировании могут повлечь за собой: затягивание сроков, многократное удорожание проекта.
- Проектировать систему стоит целиком от начала и до конца (без добавления дополнительного функционала) или предусматривать модульность:
— разработка и доработка концепции полностью.
— разработка очень подробного технического задания.
— разработка схемы базы данных
— разработка сценариев контроллеров
— разработка дизайна шаблонов представления
— разработка сценария поведения пользователя (он же сценарий тестирования)
— СЕО
— ... - На создание проектной документации и технического задания лучше создать тендер, а затем провести аудит. Возможно на начальном этапе вы потратите больше денег, но зато сможете сэкономить в разы больше в дальнейшем.
Разработка
1. В разработке применяйте готовые и стабильные решения: это значит, что для работы с базой данных лучше применять MVC (Model View Controller) фреймворк или ORM (Object Relational Mapping) или AR (Active Record), а для работы со стандартными сценариями CRUD (Create Read Update Delete) — генератор, который создает код без ошибок.
Ваше мастерство низкоуровневого разработчика никто не оценит, а вот если система работает стабильно и без ошибок будет гораздо большим плюсом.
2. Документируйте код.
3. Создавайте хорошую и понятную техническую документацию.
4. Используйте докер.
5. Используйте системы автоматической сборки версий.
Организация работы команды
- Применяйте системы контроля версий, я в своей работе использовал git.
- Разделяйте работу разработчиков по разным функциональным модулям, для того, что бы когда ветки системы контроля версий будут сливаться в одну — не возникало конфликтов.
- Не занимайтесь экстремальным программированием на коленке, когда на решение задачи отводится от нескольких часов до нескольких дней.
Ставьте задачи минимум на неделю и максимум на месяц до выхода следующей сборки.
Тестирование
- Не используйте системы постановки и исправления задач для тестировщиков.
- Используйте автоматизированные тесты: создайте модуль программных тестов, который будет запускаться каждый раз перед сборкой и тестировать всю систему автоматически.
Цикл разработки
После того, как вы создали качественное техническое задание, можно приступить к разработке, далее приведу повторяющийся цикл:
1. Постановка задач разработчикам в различных системах контроля выполнения задач так, что бы они не затрагивали код друг друга, например разделив систему по модулям, при этом каждый работает в своей ветке.
Задачи должны выполняться в течение недели.
После выполнения каждой задачи, разработчик должен запускать автоматизированные программные тесты, которые покрывают всю систему полностью.
2. Каждый понедельник происходит слияние кода каждого разработчика в главную ветку.
После того, как в главной ветке появляется результат работы всей команды, каждый из разработчиков копирует себе главную ветку.
Далее цикл повторяется.
При таком подходе
- Количество ошибок в результате выполнения задач будет минимальным.
- Вы сможете создать более качественный программный продукт.
- Вы сэкономите время.
- Вы сэкономите деньги.
- Команда будет работать быстрее, эффективнее, слаженнее ( не конфликтуя в плане изменения кода).
- Вы сможете выполнять задачи в срок.
- Выполненные задачи будут более качественными.
- Вам не придется вносить дополнительные задачи, такие как: изменение дизайна, функционала или чего то еще во время хода работ.
Что сделает результат более предсказуемым и простым и понятным.
Программирую уже больше 10 лет, всем интересных и удачных проектов!