Being Agile does not mean eschewing design. Good agile teams make design activities such a high priority that they are embedded in nearly every thought and activity. This course will take a team through the process of Evolutionary Design and show how difficult design con¬straints can be met more accurately than by traditional upfront design work.
Students will be given real world design problems and learn how to satisfy complicated
requirements by incrementally ‘evolving’ a code base rather than pursuing an up-front design strategy.
We will also explore situations where large architectural changes are required late in a project life cycle due to changing requirements or faulty assumptions and how these changes can be safely undertaken.
Prerequisites: Solid understanding of Test Driven Development using an xUnit Framework.
Fluency in an Object Oriented Language (Java or Ruby preferred)
Useful but not Required: Working knowledge of design pattern language, experience
with any refactoring IDE. At least 3 years of hands-on design work at the project or
enterprise level.
Duration: 3 Days
Lab to Lecture Ratio: 80%
Students will be given real world design problems and learn how to satisfy complicated
requirements by incrementally ‘evolving’ a code base rather than pursuing an up-front design strategy.
We will also explore situations where large architectural changes are required late in a project life cycle due to changing requirements or faulty assumptions and how these changes can be safely undertaken.
Prerequisites: Solid understanding of Test Driven Development using an xUnit Framework.
Fluency in an Object Oriented Language (Java or Ruby preferred)
Useful but not Required: Working knowledge of design pattern language, experience
with any refactoring IDE. At least 3 years of hands-on design work at the project or
enterprise level.
Duration: 3 Days
Lab to Lecture Ratio: 80%











