Systems Development Life Cycle (SDLC) Reference

Автор раздела: Ivan Zakrevsky

Grady Booch выделяет два ключевых критерия, которые определяют успех или неудачу проекта:

📝 "Traits of Successful Projects

A successful software project is one in which the deliverables satisfy and possibly exceed the customer's expectations, the development occurred in a timely and economical fashion, and the result is resilient to change and adaptation. By this measure, we have observed several traits that are common to virtually all of the successful object-oriented systems we have encountered and noticeably absent from the ones that we count as failures:

  • Existence of a strong architectural vision

  • Application of a well-managed iterative and incremental development lifecycle"

—"Object-Oriented Analysis and Design with Applications" 3rd edition by Grady Booch, Robert A. Maksimchuk, Michael W. Engle, Bobbi J. Young Ph.D., Jim Conallen, Kelli A. Houston

Если с "architectural vision" все понятно, то с "well-managed development lifecycle" у многих могут возникать вопросы. Тем не менее, для успешности проекта процессы должны быть грамотно выбраны и качественно отлажены.

Три превосходные книги Dean Leffingwell:

  • "Scaling Software Agility: Best Practices for Large Enterprises" by Dean Leffingwell - о проблемах масштабирования команд.

  • "Agile Software Requirements: Lean Requirements Practices for Teams, Programs, and the Enterprise" by Dean Leffingwell - о проблемах интегрирования аналитической и архитектурной работы в Agile.

  • "SAFe® 5.0: The World's Leading Framework for Business Agility" by Richard Knaster, Dean Leffingwell - наиболее удачная масштабируемая Agile-модель на сегодня.

Нужно заметить, что Software является подмножеством System. Раньше и Software, и System описывались одним стандартом ISO/IEC 12207:2008. Потом их разделили на ISO/IEC/IEEE 12207:2017 и ISO/IEC/IEEE 15288:2015.

📝 "This document has a strong relationship with ISO/IEC/IEEE 15288:2015, Systems and Software Engineering System Life Cycle Processes, and is more applicable to software systems. To account for situations in which both ISO/IEC/IEEE 15288:2015 and ISO/IEC/IEEE 12207:2017 are applied (e.g., a development of a system containing software, or the development of a software system containing hardware), their process structures are harmonized to be identical. The processes of this document directly correspond to processes of ISO/IEC/IEEE 15288 with specialization for software products and services."

—"ISO/IEC/IEEE 12207:2017 Systems and software engineering - Software life cycle processes"