This was a question raised on a recent Agile Linked-In discussion forum from a computer.org article “Software architecture is getting a bad rap with many agile proponents due to such aspects as big design up front, massive documentation, and the smell of waterfall. It’s pictured as a nonagile practice, something we don’t want…”
I pondered this and thought that the issue arises because some architects feel they need to design a “big, robust architecture” up-front in order to have a platform that can support changing needs release after release. Whereas in reality, too often what they are building ends up overly complex, heavy, hard to develop on and definitely not Agile. And too often their “elegant” and “brainy” complex architecture causes major issues down the road.
Instead, if the architect thinks “clean”, “simple”, and “functional” and only creates the underly framework as needed, even very complex projects can be accomplished in an agile way. I guess that would be called an Agile Framework 🙂
It’s not an easy problem – you need a very smart architect who has a clean, lean philosophy and can guide the development team and help with refactoring or restructuring when needed. If the architecture is clean and simple, typically there are less issues encountered over time and the product requires less people to develop and maintain it. At least that’s been my repeated experience in multiple companies and projects – even long before “Agile” came about.
I’ve been lucky find such architects over the years. The latest one is Freeman Michaels who was the Architect at Azerity and is my partner on Software 2020.