Recent Changes
Here is a list of recent updates the site. You can also get this information as an RSS feed and I announce new articles on twitter.
I use this page to list both new articles and additions to existing articles. Since I often publish articles in installments, many entries on this page will be new installments to recently published articles, such announcements are indented and don’t show up in the recent changes sections of my home page.
Tue 19 Jul 2022 13:20 EDT
When I'm writing, or mentoring others in writing, about a particular
technique I prefer to take the role of an educator rather than that of an
advocate. When doing that, I see two main stances an author
can take. One is to focus on the trade-offs between this technique and its
alternatives, the other is to focus on the merits of the particular
technique and not discuss the alternatives.
more…
Thu 07 Jul 2022 10:07 EDT
Legacy systems often act as integration hubs, ingesting source data to
pass on to downstream systems. A new downstream system can decouple itself
from legacy by finding the source of data to the legacy and integrating
directly to that instead. Ian Cartwright, Rob Horn, and James
Lewis describe this Revert to Source pattern,
explaining that this part of legacy displacement often also allows a new
system to take advantage of upgrades to source data that the legacy had neglected.
more…
Tue 14 Jun 2022 10:15 EDT
Many software teams describe desired product capabilities as a product
backlog: a list of user stories. These stories capture who needs the work,
what the work is, and why it's needed. Too often teams expect a product
owner to be the sole source of the backlog, but anyone could (and should)
write user stories. Paulo Caroli teaches teams to use a Product Backlog
Building Canvas, which provides a simple process to develop user stories,
starting with describing personas for product users and the activities
they do. These activities yield features: their interactions with the
product. Features are broken down into backlog items, which can then be
formulated into user stories from the background of personas and
activities.
more…
Thu 28 Apr 2022 11:33 EDT
James Shore's Art of Agile Development is my favorite single-volume
book on agile software development. A reason for that is its serious
emphasis on the technical practices that are essential to making it work
effectively. James and I discuss the role of refactoring for software
development, the nature of design changes we see, and how to break down
big changes into small pieces.
more…
Tue 26 Apr 2022 08:50 EDT
A couple of recent conversations about Twitter were nudging me into writing
about how I use Twitter even before The Muskover developed. Twitter has
become an important part of my online life, and my online life is a big part
of what I do. But like any tool, Twitter can be used in many different ways,
and how you use it affects how useful it can be.
more…
Tue 19 Apr 2022 17:58 EDT

Heian-jingu Shrine
Kyoto, Japan (2004)
Mon 28 Mar 2022 14:49 EDT
The core to a successful legacy displacement is the gradual
replacement of legacy with new software, as this allows benefits to
delivered early and circumvents the risks of a Big Bang. During
displacement the legacy and new system will have to operate
simultaneously allowing behavior to be split between old and new.
Ian Cartwright, Rob Horn, and James Lewis explain
how to build and
evolve a Transitional Architecture that supports this collaboration as it
changes over time. For this to work, intermediate configurations may require integrations
that have no place in the target architecture of the new system.
Or to put this more directly - you will have to invest in work that
will be thrown away.
more…
Wed 16 Mar 2022 10:06 EDT
Tim Cochran and
Roni Smith complete their article by looking at how
scaleups need to invest in the hiring process to overcome the talent
bottleneck. They add a case study from our experiences with talent
acquisition at Thoughtworks.
more…
Tue 15 Mar 2022 10:59 EDT
Tim Cochran and
Roni Smith explore how scaleups can get out of the
hiring bottleneck by using technology and innovation as a hiring
differentiator, hiring T-shaped and non-senior developers, and embracing
remote working.
more…
Thu 10 Mar 2022 10:31 EST
The second bottleneck in the series looks at talent, and how scaleups
struggle to hire enough good people. Tim Cochran and
Roni Smith explain how the small network and informal
processes that allow early stage startups to grow begin to fail during the
scaleup phase, and what signs indicate a new approach is needed.
more…
Wed 09 Mar 2022 11:03 EST
Tim Cochran and Carl
Nygard finish their examination of the tech debt bottleneck by
looking at how to get out of it. This includes close collaboration betwen
product and engineering, a strategy for the four phases of a startup's
journey, and empowering teams to fix the tech debt problems.
more…
Tue 08 Mar 2022 09:40 EST
In its early days, a startup searches for a good product-market fit.
When it finds one it looks to grow rapidly, a phase known as a scaleup. At
this time it's growing rapidly along many dimensions: revenues, customer,
headcount. At Thoughtworks, we've worked with many such scaleups, and our
work has focused on how to help them overcome various bottlenecks that
impede this growth. As we've done this work, my colleagues have noticed common
bottlenecks, and learned approaches to deal with them.
This article, by Tim Cochran and Carl
Nygard, is the first in a series that examines these bottlenecks,
in this case looking at the problem of a startup accumulating
technical debt. This bottleneck is a common one, and like most
bottlenecks it isn't necessarily due to bad work so far, but more due to
the change of context that rapid growth imposes on a company. We begin the
article by explaining how this bottleneck appears and what the key signs
are the bottleneck is slowing progress.
more…
Wed 09 Feb 2022 10:43 EST
Poppy Rowse and
Chris Shepherd complete their article on infrastructure
platforms with a warning on over-complicating a platform and a section
on how to use the Four Key Metrics to assess a platform's success.
more…
Tue 08 Feb 2022 09:31 EST
The next installment of Poppy Rowse and
Chris Shepherd's article on infrastructure platforms
looks how to communicate the technical vision of platform
and how to understand the platform from the users' point of view.
more…
Wed 02 Feb 2022 10:21 EST
Poppy Rowse and Chris Shepherd
continue their advice on building infrastructure platforms by discussing
techniques to discover what platform users need and stress
the importance of finding the Shortest Path to Value by onboarding them
quickly.
more…
Tue 01 Feb 2022 09:52 EST
A lot of organizations are looking to improve the way their teams
build on top of clouds by assembling their own preferred set of cloud
components into an infrastructure platform. This allows product teams
work with a consistent and curated set of services, rather than having
to figure it out on their own. Poppy Rowse and
Chris Shepherd have worked with several of these teams
and put together some guidelines on how to do this successfully. They
begin by outlining how to create a strategy for such a platform.
more…
Thu 20 Jan 2022 10:50 EST
Yesterday Ian Cartwright, Rob Horn, and James Lewis
described the Critical Aggregator and how it can metastasize into an
invasive form. When a legacy system has such an Invasive Critical
Aggregator it's often best, if a little counter-intuitive, to Divert
the Flow of data by building a new critical aggregator first. Once
this is done, we have far more freedom to change or relocate the various
upstream data sources.
more…
Wed 19 Jan 2022 10:53 EST
Business Leaders often need to make decisions that are influenced by a
wide range of activity throughout the whole enterprise. To support this
systems often have a what Ian Cartwright, Rob Horn, and James
Lewis call a Critical Aggregator: a component whose job is to
visit various other systems and pull this information together. A critical
aggregator is important, but often metastasizes into an Invasive Critical Aggregator
more…
Tue 18 Jan 2022 12:42 EST
Continuing his exploration of important patterns to maintain consistency
across a cluster, Unmesh Joshi now looks at Two Phase
Commit. It's broadly the most familiar approach, but comes with lots of
complexities to make it work in practice over unreliable networks.
more…
Wed 12 Jan 2022 10:11 EST
Ian Cartwright, Rob Horn, and James Lewis are also
back with the New Year with a couple more articles from Patterns of Legacy
Displacement in the funnel for the next couple of weeks. This one
describes a Legacy Mimic: a part of the new system designed
to make the old system think that nothing has changed.
more…
Tue 11 Jan 2022 10:09 EST
One of the core challenges in a distributed system is keeping the state
synchronized across all the nodes, especially when neither the nodes, or
the connections between them, are reliable. The core approach to handle
with is a replicated log: using the write-ahead log pattern
over the cluster. Unmesh Joshi shows how this works using
its most common implementation: the Raft protocol.
more…
Wed 05 Jan 2022 10:53 EST
Unmesh Joshi is ready to start the New Year with a few
more of his Patterns of Distributed Systems. With this one he attempts the
tricky task of explaining Paxos. This is a well-known
protocol developed by Leslie Lamport, for nodes to reach a reliable
consensus when both they, and the network, are prone to unexpected
failure. Although it's well-known, it's also notoriously difficult to
understand, indeed we had considerable difficulty getting our heads around
it. We hope this description makes it a bit easier for those who follow
us.
more…
Sun 26 Dec 2021 11:21 EST
I listen to a lot of interesting music, so picked out my six favorite
new-to-me albums this year. I hope you find something interesting to
groove to in there.
more…
Wed 15 Dec 2021 10:10 EST
Andrew finishes his article on how to scale software architecture by
looking at how this technique works in practice, and also outlines how
things can go wrong.
more…
Tue 14 Dec 2021 09:27 EST
Brandon finishes his article on how we should look at
integration by arguing that it is a strategic element of an enterprise's
infrastructure. You can buy the best products in the world but "none of it
will make you competitive in a digital world if you continue to treat
integration as a tactical nuisance to overcome so you take advantage of
those new systems."
more…
Mon 13 Dec 2021 10:05 EST
Andrew's fourth supporting element for the Advice Process is using a
tech radar to capture and map out your local version of the technology
trends you see across your organization.
more…
Thu 09 Dec 2021 11:44 EST
Having architectural principles is not new, but in a world of
highly-autonomous-teams they become essential because they are the means
by which an aligned delivery direction is achieved without the need for
control. In the latest installment, Andrew talks about what makes a good
principle, and how they work with the Advice Process.
more…
Thu 09 Dec 2021 10:35 EST
Thus far, Brandon has has explained why general purpose languages are
better for integration. In this latest installment he
explains that there are cases when commercial integration tools make
sense
more…
Wed 08 Dec 2021 10:07 EST
Andrew uses the Architecture Advisory Forum as a regular and recurring place and
time for conversations. It's a weekly, hour-long, open invite meeting used
to gather advice and share information across a broad group.
more…
Tue 07 Dec 2021 09:50 EST
Many commercial integration tools market their ability to own the
integration landscape and call out to general purpose languages as needed.
While Brandon can appreciate the marketing behind such messaging — it promotes
product penetration and lock-in — as architectural guidance, it is exactly
backwards. Instead, we should almost always manage the interface evolution
in a general purpose language for at least two reasons: so we can better
manage the complexity of maintaining a clean interface, and so that we
avoid the gravitational pull of our tool's mental model when making
strategic integration decisions.
more…