Explore *Then* Expand *Then* Extract
Migrations are expensive in ... opportunity cost. Write hot spots appear only after a product is gaining real traction, which is a bad time to temporarily stop feature development and back off on user growth.
The above was an argument for pre-emptive, speculative performance tuning. If this product is successful, goes the thinking, then data write performance is going to become a bottleneck. We don’t want to have pause user growth to switch to a new database. Let’s just fix the bottleneck now.
I can empathize with the sentiment, but I think this line of reasoning creates risk & reduces profit.
Review
Going from exploration to expansion always creates the risk of uncovering new bottlenecks. Fixing bottlenecks quickly so extraction can commence is a more realistic goal.
To review, product development proceeds:
1. From exploration—the risky search for a viable return for a viable investment
2. To expansion—the elimination of bottlenecks to growth
3. To extraction—where profitable growth continues
Can’t Jump To Expand
The system design rules change between the three phases. In exploration, anything goes as long as it reduces the cost of experimentation. Use infrastructure that doesn’t scale if it accelerates experimentation.
The transition from exploration to expansion is tricky. The activities & values that resulted in successful exploration become dangerous during expansion. Exploration requires diverse, tangential thinking and experimentation. Expansion requires singular focus on removing the next bottleneck just before it chokes growth. Continuing to experiment distracts from this focus.
The activities & values that make for successful expansion, however, endanger exploration deployed prematurely. Doing a better job preparing for future growth slows experimentation, reducing the chance of success.
Success
The lament above, that during traction is a “bad time to stop feature development” is perfectly understandable. You’ve been experimenting for months or years. You’ve begun to despair of those experiments ever paying off. Suddenly you’re on a hot streak. Everything you try works.
Who wants to stop during a hot streak? (In poker we call this “playing the rush”.)
You can’t create infrastructure that eliminates all bottlenecks. You don’t know the exact circumstances of those bottlenecks. You don’t know what data distributions look like, usage patterns geographically or by time of day or day of week.
Universal infrastructure is under-constrained, does work it needn’t do. That extra work perversely creates risk in the precise situations we need to overcome now that users have shown us what those situations are.
Conclusion
The best we can hope for is:
● To repair emerging bottlenecks quickly so we can get on with extraction. If this requires that we pause or throttle growth so we survive, that’s the price of success.
● To permanently repair bottlenecks that “rhyme” with past bottlenecks, but this as an Extract project.
via Software Design: Tidy First? (author: Kent Beck)
First publishing February 2016
Migrations are expensive in ... opportunity cost. Write hot spots appear only after a product is gaining real traction, which is a bad time to temporarily stop feature development and back off on user growth.
The above was an argument for pre-emptive, speculative performance tuning. If this product is successful, goes the thinking, then data write performance is going to become a bottleneck. We don’t want to have pause user growth to switch to a new database. Let’s just fix the bottleneck now.
I can empathize with the sentiment, but I think this line of reasoning creates risk & reduces profit.
Review
Going from exploration to expansion always creates the risk of uncovering new bottlenecks. Fixing bottlenecks quickly so extraction can commence is a more realistic goal.
To review, product development proceeds:
1. From exploration—the risky search for a viable return for a viable investment
2. To expansion—the elimination of bottlenecks to growth
3. To extraction—where profitable growth continues
Can’t Jump To Expand
The system design rules change between the three phases. In exploration, anything goes as long as it reduces the cost of experimentation. Use infrastructure that doesn’t scale if it accelerates experimentation.
The transition from exploration to expansion is tricky. The activities & values that resulted in successful exploration become dangerous during expansion. Exploration requires diverse, tangential thinking and experimentation. Expansion requires singular focus on removing the next bottleneck just before it chokes growth. Continuing to experiment distracts from this focus.
The activities & values that make for successful expansion, however, endanger exploration deployed prematurely. Doing a better job preparing for future growth slows experimentation, reducing the chance of success.
Success
The lament above, that during traction is a “bad time to stop feature development” is perfectly understandable. You’ve been experimenting for months or years. You’ve begun to despair of those experiments ever paying off. Suddenly you’re on a hot streak. Everything you try works.
Who wants to stop during a hot streak? (In poker we call this “playing the rush”.)
You can’t create infrastructure that eliminates all bottlenecks. You don’t know the exact circumstances of those bottlenecks. You don’t know what data distributions look like, usage patterns geographically or by time of day or day of week.
Universal infrastructure is under-constrained, does work it needn’t do. That extra work perversely creates risk in the precise situations we need to overcome now that users have shown us what those situations are.
Conclusion
The best we can hope for is:
● To repair emerging bottlenecks quickly so we can get on with extraction. If this requires that we pause or throttle growth so we survive, that’s the price of success.
● To permanently repair bottlenecks that “rhyme” with past bottlenecks, but this as an Extract project.
via Software Design: Tidy First? (author: Kent Beck)
Sitting Down with Pierrick Gaudin from TotalEnergies, New Chair of the PMC for the OSDU® Forums.thilberg@car…Mon, 12/08/2025 - 07:28
Blog Link
https://blog.opengroup.org/?p=12075
Blog Date
Thursday, June 12, 2025 - 09:00
via www.opengroup.org (author: s.thilberg@carbon.super)
Blog Link
https://blog.opengroup.org/?p=12075
Blog Date
Thursday, June 12, 2025 - 09:00
via www.opengroup.org (author: s.thilberg@carbon.super)
Outstanding Contribution Award Winners for The Open Group OSDU® Forum May 2025s.thilberg@car…Mon, 12/08/2025 - 07:28
Blog Link
https://blog.opengroup.org/?p=12061
Blog Date
Tuesday, June 10, 2025 - 09:00
via www.opengroup.org (author: s.thilberg@carbon.super)
Blog Link
https://blog.opengroup.org/?p=12061
Blog Date
Tuesday, June 10, 2025 - 09:00
via www.opengroup.org (author: s.thilberg@carbon.super)
The Open Group Summit Highlights – Amsterdam, – May 19 – 22, 2025s.thilberg@car…Mon, 12/08/2025 - 07:28
Blog Link
https://blog.opengroup.org/?p=12016
Blog Date
Tuesday, May 27, 2025 - 09:00
via www.opengroup.org (author: s.thilberg@carbon.super)
Blog Link
https://blog.opengroup.org/?p=12016
Blog Date
Tuesday, May 27, 2025 - 09:00
via www.opengroup.org (author: s.thilberg@carbon.super)
Exciting Updates for the Open FAIR™ Body of Knowledge and Certification Programs.thilberg@car…Mon, 12/08/2025 - 07:28
Blog Link
https://blog.opengroup.org/?p=11964
Blog Date
Thursday, May 22, 2025 - 09:00
via www.opengroup.org (author: s.thilberg@carbon.super)
Blog Link
https://blog.opengroup.org/?p=11964
Blog Date
Thursday, May 22, 2025 - 09:00
via www.opengroup.org (author: s.thilberg@carbon.super)
Celebrating Milestones: The Open Group FACE® Consortium at 15 and The Open Group SOSA® Consortium at 10s.thilberg@car…Mon, 12/08/2025 - 07:28
Blog Link
https://blog.opengroup.org/?p=11954
Blog Date
Tuesday, May 20, 2025 - 09:00
via www.opengroup.org (author: s.thilberg@carbon.super)
Blog Link
https://blog.opengroup.org/?p=11954
Blog Date
Tuesday, May 20, 2025 - 09:00
via www.opengroup.org (author: s.thilberg@carbon.super)
Open Comments Rewind: Charting a Course from Music to Cybersecurity Mastery with John Feezells.thilberg@car…Mon, 12/08/2025 - 07:28
Blog Link
https://blog.opengroup.org/?p=11900
Blog Date
Tuesday, May 13, 2025 - 09:00
via www.opengroup.org (author: s.thilberg@carbon.super)
Blog Link
https://blog.opengroup.org/?p=11900
Blog Date
Tuesday, May 13, 2025 - 09:00
via www.opengroup.org (author: s.thilberg@carbon.super)
Achieving Business Goals While Safeguarding Your Datas.thilberg@car…Mon, 12/08/2025 - 07:28
Blog Link
https://blog.opengroup.org/?p=11929
Blog Date
Tuesday, April 29, 2025 - 09:00
via www.opengroup.org (author: s.thilberg@carbon.super)
Blog Link
https://blog.opengroup.org/?p=11929
Blog Date
Tuesday, April 29, 2025 - 09:00
via www.opengroup.org (author: s.thilberg@carbon.super)
Earth Day and Enabling the Shift to Clean Energy through Standardss.thilberg@car…Mon, 12/08/2025 - 07:28
Blog Link
https://blog.opengroup.org/?p=11914
Blog Date
Tuesday, April 22, 2025 - 09:00
via www.opengroup.org (author: s.thilberg@carbon.super)
Blog Link
https://blog.opengroup.org/?p=11914
Blog Date
Tuesday, April 22, 2025 - 09:00
via www.opengroup.org (author: s.thilberg@carbon.super)
Open Comments Rewind: Navigating the Oil and Gas Industry With AI and Real-Time Datas.thilberg@car…Mon, 12/08/2025 - 07:28
Blog Link
https://blog.opengroup.org/?p=11895
Blog Date
Thursday, April 17, 2025 - 09:00
via www.opengroup.org (author: s.thilberg@carbon.super)
Blog Link
https://blog.opengroup.org/?p=11895
Blog Date
Thursday, April 17, 2025 - 09:00
via www.opengroup.org (author: s.thilberg@carbon.super)
Introducing the Lifelong Learning Programs.thilberg@car…Mon, 12/08/2025 - 07:28
Blog Link
https://blog.opengroup.org/?p=11889
Blog Date
Tuesday, April 15, 2025 - 09:00
via www.opengroup.org (author: s.thilberg@carbon.super)
Blog Link
https://blog.opengroup.org/?p=11889
Blog Date
Tuesday, April 15, 2025 - 09:00
via www.opengroup.org (author: s.thilberg@carbon.super)
Authentication and authorization in a microservice architecture - Part 5 - implementing complex authorization using Oso Cloud
via Microservice architecture
via Microservice architecture
Telegraph
Authentication and authorization in a microservice architect…
This article is the fifth in a series of articles about authentication and authorization in a microservice architecture. The complete series is: Overview of authentication and authorization in a microservice architecture Implementing authentication Implementing…
👍1
Microservices Platforms: When Team Topologies Meets Microservices Patterns - part 1
This is the first in a series of articles based on my QCon San Francisco 2025 talk on Microservices Platforms. It describes what platforms are, why they are essential for fast flow, and introduces the six essential platforms that stream-aligned service teams need to develop microservices.
Read more (This post is for paying subscribers only)
Need help with accelerating software delivery?
I’m available to help your organization improve agility and competitiveness through better software architecture: training workshops, architecture reviews, etc.
Learn more about how I can help
via Microservice architecture
This is the first in a series of articles based on my QCon San Francisco 2025 talk on Microservices Platforms. It describes what platforms are, why they are essential for fast flow, and introduces the six essential platforms that stream-aligned service teams need to develop microservices.
Read more (This post is for paying subscribers only)
Need help with accelerating software delivery?
I’m available to help your organization improve agility and competitiveness through better software architecture: training workshops, architecture reviews, etc.
Learn more about how I can help
via Microservice architecture
Fragments Dec 11
Why does AI write like… that (NYT, gift link). Sam Kriss delves into the quiet hum of AI writing. AI’s work is not compelling prose: it’s phantom text, ghostly scribblings, a spectre woven into our communal tapestry.
❄ ❄ ❄ ❄ ❄
Emily Bache has written a set of Test Desiderata, building on some earlier writing from Kent Beck. She lists the characteristics of good tests, and how they support her four “macro desiderata” - the properties of a sound test suite
❄ ❄ ❄ ❄ ❄
Daphe Keller explains that the EUs fines on X aren’t about free speech.
Cory Doctorow The Reverse-Centaur’s Guide to Criticizing AI
via Martin Fowler (author: Martin Fowler (martin@martinfowler.com))
Why does AI write like… that (NYT, gift link). Sam Kriss delves into the quiet hum of AI writing. AI’s work is not compelling prose: it’s phantom text, ghostly scribblings, a spectre woven into our communal tapestry.
❄ ❄ ❄ ❄ ❄
Emily Bache has written a set of Test Desiderata, building on some earlier writing from Kent Beck. She lists the characteristics of good tests, and how they support her four “macro desiderata” - the properties of a sound test suite
● Predict success in productionShe also has a great list of other writers’ lists of good test characteristics.
● Fast to get feedback
● Support ongoing code design change
● Low total cost of ownership
❄ ❄ ❄ ❄ ❄
Daphe Keller explains that the EUs fines on X aren’t about free speech.
There are three charges against X, which all stem from a multi-year investigation that was launched in 2023. One is about verification — X’s blue checkmarks on user accounts — and two are about transparency. These charges have nothing to do with what content is on X, or what user speech the platform should or should not allow.❄ ❄ ❄ ❄ ❄
Cory Doctorow The Reverse-Centaur’s Guide to Criticizing AI
Start with what a reverse centaur is. In automation theory, a “centaur” is a person who is assisted by a machine. … And obviously, a reverse centaur is machine head on a human body, a person who is serving as a squishy meat appendage for an uncaring machine.
Like an Amazon delivery driver… the van can’t drive itself and can’t get a parcel from the curb to your porch. The driver is a peripheral for a van, and the van drives the driver, at superhuman speed, demanding superhuman endurance.
via Martin Fowler (author: Martin Fowler (martin@martinfowler.com))
Being an architect isn’t the sum of skills. It’s the product.
It's not just about tech. But also not just about non-tech.
via The Architect Elevator (author: Gregor Hohpe)
It's not just about tech. But also not just about non-tech.
via The Architect Elevator (author: Gregor Hohpe)