I live in Jersey (the largest of the Channel Islands) and work as an independent consultant, helping teams to build better software. My client list spans over 20 countries and includes organisations ranging from small technology startups through to global household names. I'm an award-winning speaker and the author of Software Architecture for Developers - a developer-friendly guide to software architecture, technical leadership and the balance with agility. I still code too. :-)
I believe that a lightweight approach to software architecture is pivotal to successfully delivering software, and that it can complement agile approaches rather than compete against them. After all, a good architecture enables agility and this doesn't happen by magic.
In a nutshell, my lightweight approach to software architecture includes doing "just enough" up front design to understand the significant structural elements of the software, some lightweight sketches to communicate that vision to the team and ensuring that the highest priority risks are identified and mitigated. I use a technique that I call Risk-storming as a visual and collaborative way to identify those risks. The code doesn't tell the whole story, so I deliver a lightweight software guidebook as supplementary documentation. The video of my "Software Architecture & the balance with agility" talk from the "Software Architect 2013" conference provides a good overview of my approach to software architecture, while my "Simple sketches for diagramming your software architecture" article summarises my "C4 model" for describing, visualising and communicating software architecture.
Ensuring an alignment between the software architecture and the code can help massively, yet the abstractions we draw on our diagrams rarely match those in the code. For this reason, I'm currently experimenting with a way to create software architecture models as code and an open source Java implementation can be found on GitHub. I've also created a simple web-based diagramming tool called Structurizr to visualise the models.
I regularly speak about software architecture at conferences, user groups and meetups around the world. I also run training courses about software architecture, technical leadership and the balance with agility.
I've spoken at events, or have clients in, the following countries.