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.

Agile Book Club interview on Refactoring

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.


How I use Twitter

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.


photostream 128

Tue 19 Apr 2022 17:58 EDT

Heian-jingu Shrine

Kyoto, Japan (2004)

Transitional Architecture

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.


Investing in the hiring process

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.


How to get out of the talent bottleneck

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.


How scaleups get constrained by talent

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.


How to get out of the tech debt bottleneck

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.


Bottlenecks of Scaleups: How did you get tech debt?

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.


Using the Four Key Metrics to assess an infrastructure platform

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.


Communicating the technical vision of an infrastructure platform

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.


Find out what infrastructure platform customers need

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.


Building Infrastructure Platforms

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.


Divert the Flow

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.


Critical Aggregator

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


Two Phase Commit

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.


Legacy Mimic: a new component that looks like an old one

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.


Replicated Log: synchronize multiple nodes with a write-ahead log

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.


Paxos: using two consensus-building phases to handle unreliable nodes

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.


My favorite musical discoveries of 2021

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.


How the advice process works in practice

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.


Treat integration as strategic to your business

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."


A tech landscape and current climate sensing tool - Your own Tech Radar

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.


Team-sourced Architectural Principles

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.


Use commercial integration tools to simplify implementation concerns

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


A time and place for conversations: The Architecture Advisory Forum

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.


Use a general purpose language to manage the interface evolution

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.


A thinking and recording tool: Decision Records

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.


Put most of your energy into building clean interfaces

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.


You Can't Buy Integration

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.