I'm pleased to say that I'll be speaking at the GOTO conference in Aarhus in a couple of months. GOTO Copenhagen in May was a blast so I have high expectations for Aarhus where I'll be presenting a session on the So you think you're an architect track called The Frustrated Architect...
The IT industry is either taking giant leaps ahead or it's in deep turmoil. On the one hand we're pushing forward, reinventing the way that we build software and striving for craftsmanship at every turn. On the other though, we're continually forgetting the good of the past and software teams are still screwing up on an alarmingly regular basis.
Software architecture plays a pivotal role in the delivery of successful software yet it's frustratingly neglected by many teams. Whether performed by one person or shared amongst the team, the architecture role exists on even the most agile of teams yet the balance of up front and evolutionary thinking often reflects aspiration rather than reality.
If we really do want to succeed, we need to get over our fascination with shiny new things and starting asking some questions. Does agile need architecture or does architecture actually need agile? Have we forgotten more about good software design than we've learnt in recent years? Is emergent design really just about foolishly hoping for the best? Does any of this matter if we're not fostering the software architects of tomorrow? How do we move from frustration to serenity?
As the abstract says, software architecture is a crucial element for most software development projects yet it's frustratingly neglected. Come and join me for a look at the state of software architecture past, present and future.
Simon is an independent consultant specializing in software architecture, and the author of Software Architecture for Developers (a developer-friendly guide to software architecture, technical leadership and the balance with agility). He’s also the creator of the C4 software architecture model and the founder of Structurizr, which is a collection of open source and commercial tooling to help software teams visualise, document and explore their software architecture.