Recently I was invited to join a discussion forum to discuss the relationship between architecture and an agile software development process. During the talk with the person that invited me, we talked about what to expect. Then he mentioned students asking the question how architecture and agile relate and he spoke the phrase: “In theory they don’t. They are really a different philosophy.” That triggered a thought train in my head that kept me thinking for some days. Because is it really a different philosophy? In my opinion it is a different craftsmanship.
It is like comparing a construction architect with a builder that needs to build a house. In the construction world you see more and more agile principles being applied but you would not want to build a house without an architect. It is a different craftsmanship. Most people even ask an architect when rebuilding their house.
But, as mentioned above, the construction build is changing as well. Where you previously had to decide on every detail of your new home, it is now more common to be able to choose or change the arrangement of rooms at the very last moment. Builders are more aware of customer satisfaction. But it does have an impact on the work that builders and architects do today.
If you allow for changes late in the process, it doesn’t make sense to make very detailed designs up front. So architects today are more looking at the global picture and the base construction of a building, providing builders with boundaries within which they can work.
In software craftsmanship you see the same paradigm shift. In the 1980s it was normal that architects made a detailed overview of the product and that all designs were created upfront before development started. Today this approach is shifting to an agile approach. But why wouldn’t we need an architect when building a new application or rebuilding an existing application. Yes, his roles changes but there is still a need for a person that can have a more abstract view of the application and the area it lives in.
Do we always need an architect? Probably not. If you, as a craftsman, are building yet another shed, your probably don’t need an architect to tell you how the construction should look like. But when things get more complicated then an architect might be the right person to make the difference between a bad application and a good application.