The software architect role is evolving. As systems and distributed teams become more complex, it's often impossible for architects to be everywhere they need to be. To be effective, consultants and in-house architects alike have to move constantly from client to client or team to team to collaborate and work with code. And the situation is reaching a breaking point.
There's a better way. Andrew Harmel-Law, tech principal at Thoughtworks, shows you how architects and development teams can collaborate effectively and efficiently on the architectures of their systems. Techniques in this book help you ensure that everyone and everything is working toward the same goal. You'll learn how to create a collaborative, decentralized mindset that allows everyone to do architecture and build the best systems they've ever experienced.
With this book, you will:
Understand the new dynamics that affect modern software delivery and how to take advantage of them to optimize for fast flow and continuous feedback Learn a methodology that brings software architecture and development together in partnership Nurture the fundamental interplay of decisions, advice, autonomy, and architecture Initiate practices and constraints that maximize benefits and mitigate risks Create an approach tuned to your skill sets, architecture, and your organization's engineering culture Identify and work to prevent failure modes when they threaten to arise
A Tech Principal at Thoughtworks, Andrew specializes in domain-driven design, org design, software and systems architecture, agile delivery, build tools and automation.
Andrew is also an author and trainer for O’Reilly. They’ve written one book about facilitating software architecture and one chapter about implementing the Accelerate/DORA four key metrics. They also run regular online training sessions in Domain-Driven Design (First Steps) and Architecture Decision Making by Example.
Experienced across the software development lifecycle and in many sectors, what motivates them is the humane delivery and sustainable evolution of large-scale software solutions that fulfill complex user needs. They understand that people, architecture, process and tooling all have key roles to play in achieving this.
Andrew has been involved with OSS to a greater or lesser extent since their career began; as a user, contributor, expert group member, or paid advocate—most notably as one of the Jenkins JobDSL originators.
Andrew enjoys sharing their experience as much as possible. This sharing is not only seen in their formal consulting engagements and writing, but also informally through mentoring, blog posts, conferences (keynoting, speaking and organising), and open-sourcing their code.
I had the privilege to participate in the first Architectural Advisory Forum (AAF), to see the magic in the making. A group of people who had never spoken or understood each other before, quickly and seamlessly falling into the flow of the AAF. I saw technical decisions being made democratically and responsibly, arguments being solved with disagreement and commitments, and more than anything, I saw people converging naturally towards a common strategy and getting comfortable with responsibility towards themselves and others. This book is a groundbreaking contribution to our industry, and I wish it was on the desk of every technical leader.Ìý
I had the privilege to participate in the first Architectural Advisory Forum(AAF), to see the magic in the making. A group of people who had never spoken or understood each other before, quickly and seamlessly falling into the flow of the AAF. I saw technical decisions being made democratically and responsibly, arguments being solved with disagreement and commitments, and more than anything, I saw people converging naturally towards a common strategy and getting comfortable with responsibility towards themselves and others. This book is a groundbreaking contribution to our industry, and I wish it was on the desk of every technical leader.
Software architecture is not all about the technical aspects, but that is where most books focus. This book looks at the whole socio-technical domain of software architecture.
Recommended reading for any architect, tech lead, or anyone looking to step into an architecture role. This book builds out from the main premise in software architecture of making decisions. Software architecture is making decisions. The technical aspects are secondary.