Software architecture has traditionally been about creating standards and designs to achieve consistency across an application or system. These choices are often assumed to be well-considered decisions made by smart people known as ‘architects’ who can see all the requirements and how everything should work. They are not challenged by an individual developer, whose role is simply to code it all up.
But in today’s agile-enlightened world, we’re aware that it’s impossible to know all the requirements. And we recognise that it’s developers themselves who are best placed to make most design decisions.
So where does this leave architects? What should they actually do?