Гибкий / XP и многоуровневый подход [закрыт]
-
21-09-2019 - |
Вопрос
Может ли Agile / XP сочетаться с многоуровневым подходом?
Должен ли Agile / XP сочетаться с многоуровневым подходом?
Разбиение исходного кода на слои требует дополнительных усилий и тем самым значительно увеличивает время разработки.
N.B :Под "Слоями" я подразумеваю отдельные сборки с POCO, DA и т.д.
Решение
Agile / XP - это подход к управлению вашей проектной деятельностью, конечными результатами и сроками.
Многоуровневые (N-tier) приложения - это способ улучшить ремонтопригодность, масштабируемость и возможность для членов команды разделять области ответственности.
Они не имеют большого отношения друг к другу, за исключением того, что оба потребуют дополнительных затрат времени, если вы не знакомы с каждым из них.И то, и другое, как правило, улучшит качество вашего проекта при правильном использовании по сравнению с традиционными альтернативами.
Другие советы
Вместо этого мне кажется, что гибкое предупреждение "Вам это не понадобится" предназначено не для того, чтобы полностью избежать сложности, а для того, чтобы избежать добавления ненужной сложности.Действительно, одно из преимуществ модульного тестирования заключается в создании дисциплины, в которой вы можете безбоязненно проводить рефакторинг, чтобы материал оказался там, где ему место, а не там, где он, возможно, начался.
Таким образом, смысл не в том, чтобы избегать слоев (или ярусов, если необходимо) - смысл в том, чтобы избегать слоев, которые отстойны.
Эти два полностью ортогональны.
В XP вы разрабатываете систему функция за функцией.Добавляя функции, вы постоянно проводите рефакторинг системы, чтобы гарантировать, что ее реализация будет как можно более понятной.Слои обычно выпадают в результате такого рефакторинга.Как и ярусы, если такая архитектура подходит, или другие крупномасштабные архитектурные сооружения, такие как SEDA или REST.
Я думаю, что реальный вопрос здесь заключается в том, должны ли разработчики быть разделены по уровням в команде - должен ли у вас быть разработчик html, разработчик js, специалист среднего уровня, специалист по системе обмена сообщениями и администратор базы данных, которые работают вместе над созданием CRUD-формы, или вы должны создавать по функциям и позволить одному человеку владеть потоком.Последнее предпочтительнее в agile - специализирующиеся специалисты широкого профиля предпочтительнее специалистов.
Разумно ли иметь несколько команд, работающих вместе над Гибким проектом?ДА:Я работал над крупномасштабным проектом с более чем 200 разработчиками в более чем 15 командах.Всего было проведено около 20 или 30 служб.
Можно ли это сделать с помощью специализированных команд?Не совсем.
Могут ли члены команд иметь специализацию?Да, но вам действительно нужны специалисты широкого профиля, обладающие сильными сторонами в некоторых областях, а не люди, которые знают только одно и не будут касаться ничего другого.