Making Architectural Design Phase Obsolete - TDD as a Design Method
Marc Josefsson · 2004
The architecture of a software system is one of its most valuable attributes. Good architecture supports software testing, reusing, maintenance and adaptability to changes. The ways to create architectural design may vary, but its role is unquestionable. The advocates of agile software development methods are claiming that software projects can be successful without a separate architectural design phase. One of the supporting methods of agile methodologies is Test Driven Development (TDD). What is TDD's impact on the quality of software design? Is it possible to create a solid architectural base by applying TDD in practice? This article tries to enlighten the role of TDD while creating high quality architectural design. Index Terms— Test Driven Development, TDD, TFD, Agile software design.