Rebecca Parsons, TweetThoughtWorks' Chief Technology Officer
Biography: Rebecca Parsons
Dr. Parsons has more than 20 years of application development experience in industries ranging from telecommunications to emergent internet services. She has been published in language and artificial intelligence media, served on numerous program committees, and currently reviews academic articles for several journals.
Before coming to ThoughtWorks she worked as an assistant professor of computer science at the University of Central Florida. She also worked as director's post doctoral fellow at the Los Alamos National Laboratory researching issues in parallel and distributed computation, genetic algorithms, computational biology and non-linear dynamical systems.
Dr. Parsons holds a [Ph.D] in Computer Science from Rice University.
Agile software development encourages, or even requires, a more evolutionary approach to architecture than is normally practiced by traditional Software Architects. The evolutionary approach to architecture, based on the principle of delaying architectural choices until the latest responsible moment, balances the desirability for sufficient information to make architectural choices with the reality that many architectural choices are difficult to change and should thus be made early.
This tutorial describes the principles that support an evolutionary architecture. We illustrate these principles with example techniques such as database migrations, HATEOS based architectures, and strategies such as end point testing for integration points. We also describe approaches to technical testing, particularly automated technical testing, that provide the safety net for evolving the architecture in the same way that automated unit and regression testing support evolving the code in an agile project.