Software development has changed immeasurably since the creation of the agile manifesto, but attempts to optimise team performance will still fail if good engineering fundamentals are not in place. I've had the privilege of visiting hundreds of organisations over the past 15+ years, spanning almost every industry sector, in almost 40 countries. From startups and small country specific businesses, to scale-ups and global household names. Despite the huge leaps made in the industry, a number of recurring themes have emerged from my conversations with the engineering managers, CTOs, directors of architecture, etc I've met:
- We don't have a standard way to discuss our products from an engineering perspective.
- Our lack of documentation is slowing us down.
- It takes too long for new hires to be effective.
- We still have a gap between dev and ops because they are speaking different languages.
- Our product owners, testers, and domain experts don't fully understand what the engineers are building.
- Our teams are autonomous and decentralised, but we're missing the big picture.
- Technical debt is inhibiting our ability to move fast.
- Our engineering teams are not considering the trade-offs of the decisions they are making.
- We want to create an "architecture school" as a way to grow our engineers into tech leads.
In this session I'll share my insights and stories of reintroducing software architecture concepts to engineering teams across the globe, in a way that complements modern software engineering and contributes to building high performing teams.