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.
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…
Wed 01 Dec 2021 10:59 EST
The Advice Process works when supported by four elements. Andrew
describes the first of these, Decision Records, which act as a tool for
thinking about and recording the decision process.
more…
Wed 01 Dec 2021 10:50 EST
Brandon points out that while we have historically drawn up our project plans and costs around
the boxes—the digital products we are introducing—the lines are the
hidden and often primary driver of organizational tech debt. They are the
reason that things just take longer now than they used to.
more…
Tue 30 Nov 2021 09:45 EST
“Build versus buy” decisions are everywhere today, and rightly so.
Building software is risky and expensive, and software product companies
can spread that risk and expense across multiple customers. But my
colleague Brandon Byars argues that the kinds
of tools that are available to buy for systems integration are not
products that directly solve a business problem.
more…