An Architecture Heritage
petereeles 120000BW4X Visits (958)
Been doing some more thinking around architecture and agile (and included some nice quotes too) - and would appreciate your thoughts on this blog entry (just add a comment!). I'd be particularly interested in hearing of additional core architecture practices.
One of the reasons that architecture gets a bad press in the agile world is that it is often linked to plan-centric methods – methods that try to impose artificial (and often detailed) plans in situations where much is unknown. Such methods are often characterized as traditional or waterfall. Agile methods, on the other hand, acknowledge such situations by embracing one of the values expressed in the Agile Manifesto; “Responding to change over following a plan” (Manifesto for Agile Software Development, 2001).
There is also a perception that
“Software architecture has a history of excesses that in part spurred the reaction called Agile. Software architecture of the 1980s was famous for producing reams of documentation that no one read”. (Coplien & Bjørnvig, 2010)
But surely it can’t all be bad? Of course not; I believe that the criticisms outlined above are the result of the poor application of either method or architecture practices. Furthermore, we know that most agile teams do perform a degree of architecture.
“There seems to be a fear in the agile community that if we use terms such as “model” or “document” that suddenly the “evil bureaucrats” will dig their claws into our projects and force us to write detailed, big requirements specifications or to take a big-design-up-front approach ... the strange thing is that agilists are, in fact, modeling on a regular basis, even though they're not directly talking about it”. (Ambler & Gonzalez)
So what are those architecture practices
that should be considered on any
project? In 2008 I co-authored The
Process of Software Architecting with my colleague Peter Cripps (Eeles & Cripps, 2009). In it we explored those practices embraced by successful
architects by trawling through many different methods and interviewing many successful
architects. The core arch
These practices apply irrespective of method or lifecycle and apply equally to waterfall, iterative and agile methods:
“Software architecture is part of product quality and isn’t tied to a particular process, technology, culture or tool”. (Nord & Tomayko, 2006)