photostream 130
Martin Fowler
APRIL 21, 2024
Big Sur, CA
This site uses cookies to improve your experience. By viewing our content, you are accepting the use of cookies. To help us insure we adhere to various privacy regulations, please select your country/region of residence. If you do not select a country we will assume you are from the United States. View our privacy policy and terms of use.
Martin Fowler
APRIL 10, 2024
Alessio Ferri and Tom Coggrave complete their article about introducing seams into mainframe systems by looking how we can use data replication.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.
Martin Fowler
APRIL 4, 2024
Alessio Ferri and Tom Coggrave move on to analyzing the internal seams of the application by treating the database as a coarse-grained seam. They describe how they introduced seams into the database readers and writers.
Martin Fowler
APRIL 4, 2024
Mainframe processing is often organized into pipelines of batch processes consuming and creating data files. Alessio Ferri and Tom Coggrave show a couple of ways they found to introduce seams into these pipelines , so that processing could be replaced by steps in a replacement platform.
Martin Fowler
MARCH 28, 2024
As the enmuskification of Twitter continues, I’ve increasingly heard that more people are using LinkedIn to keep up with new professional material. So, a couple of weeks ago, I set up my LinkedIn account , so people can follow me on that platform. I’ve always avoided LinkedIn - I’ve found the whole vibe of connections rather off-putting. I get too much spam from people wanting to connect as it is.
Martin Fowler
MARCH 27, 2024
John Kordyback, a treasured colleague and friend, died last week, aged 64.
Martin Fowler
MARCH 27, 2024
Alessio Ferri and Tom Coggrave start detailing the seams they explored with two areas of external interfaces. Batch input of files are copied to new implementations while comparing the output of the processing pipelines. API access points can be covered with a proxy and traffic gradually directed to the new implementation.
Martin Fowler
MARCH 26, 2024
Mainframe systems continue to run much of the world's computing workload, but it's often difficult to add new features to support growing business needs. Furthermore the architectural challenges that make them slow to enhance also make them hard to replace. To reduce the risk involved, we use an incremental approach to legacy displacement, gradually replacing legacy capabilities with implementations in modern technology.
Martin Fowler
MARCH 19, 2024
Abi Noda and Tim Cochran complete their article on qualitative metrics by outlining how to capture them effectively. They discuss the mental steps that people go through as they respond to a survey and provide a template to get started when assessing developer experience. A final section looks at how qualitative and quantitative work together: often by starting with qualitative metrics to establish baselines and determine where to focus, followed with quantitative metrics to drill deeper into sp
Martin Fowler
MARCH 15, 2024
From time to time people ask me for a copy of the code I used in the opening chapter of Refactoring , so they can follow along themselves. I had Reasons for not providing this code, specifically laziness. Fortunately Emily Bache is more dedicated, and she has set up a github repository - the Theatrical Players Refactoring Kata - with the code, and enough tests to make it reasonable to do the refactoring.
Martin Fowler
MARCH 13, 2024
Abi Noda and Tim Cochran continue their discussion on using qualitative metrics to assess the productivity of development teams. In this installment they classify qualitative metrics into attitudinal and behavioral metrics. We also see that qualitative metrics allow you to measure things that are otherwise unmeasurable, provide missing visibility, and supply necessary context for quantitative data.
Martin Fowler
MARCH 12, 2024
Measuring developer productivity is a difficult challenge. Conventional metrics focused on development cycle time and throughput are limited, and there aren't obvious answers for where else to turn. Qualitative metrics offer a powerful way to measure and understand developer productivity using data derived from developers themselves. Abi Noda and Tim Cochran begin their discussion by explaining what a qualitative metric is and why we shouldn't reject them for being subjective or unreliable.
Martin Fowler
FEBRUARY 27, 2024
Improvements in communications technology have led an increasing number of teams that work in a Remote-First style, a trend that was boosted by the forced isolation of Covid-19 pandemic. But a team that operates remotely still benefits from face-to-face gatherings, and should do them every few months. Remote-first teams have everyone in a separate location, communicating entirely by email, chat, video and other communication tools.
Martin Fowler
FEBRUARY 13, 2024
LLM engineering involves much more than just prompt design or prompt engineering. Here David Tan and Jessie Wang reflect on how regular engineering practices such as testing and refactoring helped them deliver a prototype LLM application rapidly and reliably.
Martin Fowler
JANUARY 25, 2024
I’ve been using Emacs for many years, using it for any writing for my website, writing my books, and most of my programming. (Exceptions have been IntellJ IDEA for Java and RStudio for R.) As such I’ve been happy to see a lot of activity in the last few years to improve Emacs’s capabilities, making it feel rather less than a evolutionary dead end. One of the biggest improvements to my Emacs experience is using regexs for completion lists.
Martin Fowler
JANUARY 24, 2024
Tim and Premand begin their discussion of how to get out of the difficulties of onboarding by explaining how to create a path to effectiveness for new hires. Such a path outlines the needs of employee and how the onboarding process should fulfill them.
Martin Fowler
JANUARY 23, 2024
The last year has been a hard one for the technology industry, which faced its greatest waves of cutbacks and layoffs since the dotcom crash at the beginning of the century. As 2024 begins, we're seeing the early signs of a turn-around, which hopefully means technology organizations will soon be thinking of hiring again. Should such happy days return, firms will again run into the common problem of taking too long for new hires to become effective.
Martin Fowler
JANUARY 18, 2024
At the turn of the century, I was lucky to involved in several projects that developed the practice of Continuous Integration. I wrote up our lessons from this work in article on my website, where it continues to be a oft-referenced resource for this important practice. Late last year a colleague contacted me to say that the article, now nearly twenty years old, was still useful, but was showing its age.
Martin Fowler
JANUARY 4, 2024
When working with a legacy system it is valuable to identify and create seams: places where we can alter the behavior of the system without editing source code. Once we've found a seam, we can use it to break dependencies to simplify testing, insert probes to gain observability, and redirect program flow to new modules as part of legacy displacement.
Martin Fowler
JANUARY 2, 2024
Another year, another time to pick six favorite musical discoveries. 2023 includes ambient bluegrass, Afro-Andean funk, Northumbrian smallpipes, dancing kora, and Ukrainian folk jazz.
Martin Fowler
DECEMBER 12, 2023
Throughout my career, people have compared software development to “traditional” engineering, usually in a way to scold software developers for not doing a proper job. As someone who got his degree in Electronic Engineering, this resonated with me early in my career. But this way of thinking is flawed because most people have the wrong impression of how engineering works in practice.
Martin Fowler
DECEMBER 11, 2023
Test-Driven Development (TDD) is a technique for building software that guides software development by writing tests. It was developed by Kent Beck in the late 1990's as part of Extreme Programming. In essence we follow three simple steps repeatedly: Write a test for the next bit of functionality you want to add. Write the functional code until the test passes.
Martin Fowler
NOVEMBER 28, 2023
Over the last year, lots of developers have incorporated LLM coding assistants into their work, finding them a useful tool. But one of the problems of these tools is that they are unreliable, often coming up with poor or outright wrong-headed suggestions.
Martin Fowler
NOVEMBER 28, 2023
Over the last year, lots of developers have incorporated LLM coding assistants into their work, finding them a useful tool. But one of the problems of these tools is that they are unreliable, often coming up with poor or outright wrong-headed suggestions.
Martin Fowler
NOVEMBER 24, 2023
During the last four years, my colleague Unmesh Joshi been developing a collection of patterns to help us all better understand how modern distributed systems work. We've been publishing drafts of these patterns on this site. Now these have turned into a book, published by Addison-Wesley in my signature series. As such, we've now removed the work-in-progress drafts from this site, and have replaced them with a catalog of pattern summaries.
Martin Fowler
NOVEMBER 9, 2023
My colleague Sannie Lee has met many students who are looking into getting into technology, taking narrow professionally-oriented majors. Sannie, however, has found that a traditional liberal-arts degree has given her skills that are highly relevant to her work as a product manager.
Martin Fowler
NOVEMBER 2, 2023
It's now been a year since The Muskover, what does my use of social media look like now, both as a reader and a writer?
Martin Fowler
NOVEMBER 1, 2023
As React UI controls become more sophisticated, complex logic can get intertwined with the visual representation. This makes it hard to reason about the behavior of the component, hard to test it, and necessary to build similar components that need a different look. Juntao Qiu tackles this by using a Headless Component , which extracts all non-visual logic and state management, separating the brain of a component from its looks.
Martin Fowler
SEPTEMBER 19, 2023
How is code generation with GenAI different from more "traditional" code generators? The newest memo in Birgitta Böckeler's explorations of GenAI talks about abstraction levels in software engineering, and on which levels GenAI sits in the translation of our thoughts into zeros and ones.
Martin Fowler
AUGUST 17, 2023
At Thoughtworks, we are strong practitioners of Test Driven Development (TDD). Naturally this leads to the question of how generative AI can help with this technique. Paul Sobocinski writes a brief memo explaining how some of our teams have used TDD with GitHub Copilot. As ever, co-pilot can't be relied on to fly the plane, but can suggest some useful ideas for the red and green steps.
Martin Fowler
AUGUST 16, 2023
Time for two more strategic directions from Sarah Taraporewalla. These look at the questions that need to be investigated when reducing cost, minimizing operation risk, and enabling data-driven decision making.
Martin Fowler
AUGUST 10, 2023
In her 5th memo about exploring GenAI for software development, Birgitta Böckeler answers the frequently asked question if coding assistants are making the practice of Pair Programming obsolete. Spoiler alert: They don't.
Martin Fowler
AUGUST 10, 2023
Sarah Taraporewalla moves on to the remaining two strategic directions that are part of growing the business. Expanding into new customer segments can introduce new operational processes or channels. Inorganic growth (eg acquisitions and mergers) needs an understanding of the drivers of increased value and the long term expectation (eg merge or keep separate and divest) for the business unit.
Martin Fowler
AUGUST 10, 2023
When scaleups need to start working on cost efficiency, our experience is that they need to form a cost optimization team to work on the immediate steps that are needed. In this installment Sofia and Stefania describe how to understand the primary cost drivers, together with the levers to get them under control.
Martin Fowler
AUGUST 8, 2023
My colleague Sarah Taraporewalla describes an approach to building technology strategy that challenges the convention. It starts by identifying the overall strategic directions that the organization is considering, and using common aspects of these directions to indicate the investigations needed for the organization to understand the technology implications raised by that strategic change.
Martin Fowler
AUGUST 3, 2023
While coding assistants like Copilot can improve speed and flow, they can also disrupt it. Birgitta Böckeler looks at two ways in which they can get in the way : amplifying bad or outdated practices, and review fatigue.
Martin Fowler
AUGUST 1, 2023
Sofia and Stefania begin their examination of how to get out of the bottleneck of surging cloud costs by relating a case study from a recent client - illustrating how the cost control can be separated into reduce and sustain phases.
Martin Fowler
AUGUST 1, 2023
The most widely used form of coding assistance in Thoughtworks at the moment is in-line code generation in the IDE, where an IDE extension generates suggestions for the developer as they are typing. Birgitta Böckeler looks at the factors that impact the usefulness of these suggestions, indicating where they lead to safe waters, and the rocks that we need to look out for.
Martin Fowler
JULY 31, 2023
As startups begin to grow rapidly, they often find that early decisions that helped them find a product/market fit lead to excessive costs once traffic increases. These costs can threaten a scaleup's ability to grow. Sofia Tania and Stefania Stefansdottir have worked with many scaleups in this predicament and share their approach to understanding and reducing these costs.
Martin Fowler
JULY 27, 2023
Birgitta Böckeler continues her explorations in using LLMs, this time by asking GitHub Copilot to write a median function. It gave her three suggestions to choose from. The experience shows you still have to know what you're doing when asking LLMs to write code, since the LLM's programming skills are often rather flawed.
Martin Fowler
JULY 26, 2023
My colleague Birgitta Böckeler has long been one of our senior technology leaders in Germany. She's now moved into a new role coordinating our work with Generative AI and its effect of software delivery practices. She's decided to publish her exploration in a series of memos. The first memo looks at the current toolchain for LLMs , categorizing them by what tasks they help with, how we interact with the LLM, and where they come from.
Martin Fowler
JULY 25, 2023
A two-pizza team is a small team that fully supports software for a particular business capability. The term became popular as it used to describe how Amazon organized their software staff. The name suggests the most obvious aspect of such teams, their size. The name comes from the principle that the team should no larger than can be fed with two pizzas.
Martin Fowler
JULY 25, 2023
Any large software effort, such as the software estate for a large company, requires a lot of people - and whenever you have a lot of people you have to figure out how to divide them into effective teams. Forming Business Capability Centric teams helps software efforts to be responsive to customers’ needs, but the range of skills required often overwhelms such teams.
Martin Fowler
JULY 19, 2023
Platform teams have a unique reliance on other teams to ensure adoption of their platform - getting code changes into other teams' codebase is critical to their success. Pete Hodgson structures how platform teams collaborate into phases of migration, consumption, and evolution. He describes what's different in each of these phases, the operating models to adopt, and which cross-team collaboration patterns work best.
Expert insights. Personalized for you.
Are you sure you want to cancel your subscriptions?
Let's personalize your content