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 OReilly. Theyve 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-Drive 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.