Принцип № 10. Простота – искусство минимизации лишней работы – крайне необходима .

Часто бывает довольно сложно добавить код в существующий проект, особенно если дописываемый код зависит от уже существующего. Зависимости между системами, объектами, услугами и прочим делают код более сложным и трудно изменяемым: зависимости повышают вероятность того, что одно изменение может привести к каскадным изменениям в другой части системы, которые, в свою очередь, вызовут изменения в третьей, создавая эффект домино с возрастающей сложностью для каждого изменения. При помощи итераций и создания минимальной документации в начале проекта команда может избежать поставки ненужного программного обеспечения.

Однако многие разработчики испытывают неловкость, когда впервые слышат фразы вроде «использование итеративной разработки» и «сделать минимальный объем планирования, необходимого для запуска проекта». Они чувствуют, что преждевременно писать код, пока не рассмотрены и не записаны разные варианты конструктивных и архитектурных решений. Иначе написанный сегодня код придется удалять завтра в процессе изменений в дизайне.

Это понятная реакция, ведь для многих проектов вне сферы разработки программного обеспечения такой подход не имеет смысла. Нередко программисты, только что вступившие в сферу agile-разработки, выдвигают возражения такого рода: «Если подрядчик ремонтирует мой дом, то первым делом я хочу видеть подробные чертежи. Я не допущу, чтобы, второпях поговорив со мной, он начал ломать стены».

Этот аргумент имеет смысл в ситуации с ремонтом дома. Дело в том, что в этом случае нет ничего более разрушительного, чем взять кувалду и сломать стену. Но программные проекты отличаются от домов и прочих физических объектов. Удаление кода не несет глобальных разрушений, потому что вы легко можете восстановить его из системы управления версиями. Самая разрушительная вещь для вашего проекта – это создать новый код, а затем другой, зависимый от первого, и так далее, как выстраивают костяшки домино. Получится до боли знакомый эффект каскадных изменений… И в итоге вы останетесь с неремонтопригодным, запутанным спагетти-кодом.

Максимальное увеличение объема работы не поможет избежать этой путаницы. Лучше создавать систему без большого количества зависимостей и ненужного кода. Наиболее эффективный способ создания максимально полезного и ценного программного обеспечения – это работа с клиентами и заинтересованными сторонами. Если функция не является ценной, то в долгосрочной перспективе для компании дешевле не создавать ее вовсе. Потому что расходы на содержание дополнительного кода выше, чем стоимость самой разработки. Когда команды пишут код, они могут хранить свои несложные проекты программного обеспечения, создавая дизайн ПО на базе небольших автономных единиц (например, классов, модулей, сервисов и т. д.), которые делают только одну вещь – помогают избежать эффекта домино[24].

<< | >>
Источник: Эндрю Стеллман, Дженнифер Грин. Постигая Agile. Ценности, принципы, методологии. 2015

Еще по теме Принцип № 10. Простота – искусство минимизации лишней работы – крайне необходима .:

  1. Принцип минимизации разногласий
  2. Сегментирование рынка – это не только наука, но и своеобразное искусство, требующее творческого подхода. Вместе с тем, как во всяком искусстве, здесь существуют определенные принципы, которые поддаются изучению.
  3. Обменивайте крупные суммы денег в обменных пунктах только тогда, когда это крайне необходимо
  4. Пример торговой системы для работы в коридоре. Принцип работы данной ТС
  5. планирование и организация обеспечения строек и предприя­тий необходимыми кадрами представляет собой систему различных форм и мето­дов работы, направленных на своевременное и качественное комплектование ор­ганизаций кадрами, что создает необходимые условия для успешного выполнения производственной программы и социального развития трудовых коллективов
  6. О том, что необходимо знать новичку о работе
  7. Глава 6. Оборудование, необходимое для работы с Интернет
  8. Проверьте у каждого работника необходимые полномочия для выполнения работы
  9. Галиарди Гари, Сунь-цзы. Искусство войны и искусство управления, 2003
  10. Документы, которые необходимо составлять при работе на ККТ
  11. За работу без лицензии, когда такое разрешение необходимо
  12. Нет никакой необходимости в том, чтобы работа вам надоедала
  13. 2.5.2. Искусство «разговора» в современном искусстве
  14. Принципы и методы работы с резервом
  15. Определение принципа работы
  16. Принципы работы телеканалов
  17. Краткий обзор принципов работы с людьми
  18. Необходимо понимать значение эффективных методов работы для бизнеса. В противном случае вы будете не­правильно вести дела
  19. Принципы кадровой работы
  20. ОСНОВНЫЕ ПРИНЦИПЫ КАДРОВОЙ РАБОТЫ