Building a Digital Product: Infrastructure, Experiments, and Features
We can categorize Software Product Development work into three key types: infrastructure, experiments, and features - each of them with different purpose. Let's explore them in deep.
Hello, developers! 🚀
Welcome back to the Learn Agile Practices newsletter, your weekly dose of insights to power up your software development journey through Agile Technical Practices and Methodologies!5t
Before starting, I quickly remind you that my brand new Test-Driven Development 101 5-day Email Course is available: it is the introduction to TDD I wish I had when I started learning it, so I think you will find it very useful!
As a subscriber to my newsletter, you can have it with a 10EUR discount! 👇
Now, let's dive into today's micro-topic!
In short
🏗 Software product development can be categorized into three main types of work: infrastructure, experiments, and features. Effective teams balance these three elements rather than focusing solely on feature development.
✨ Many teams prioritize building features, but research suggests that 80% of features are rarely or never used. A strong platform enables rapid iteration, reduces maintenance overhead, and allows teams to build features more efficiently over time.
🚀 Infrastructure-First Approach: By prioritizing infrastructure, teams can move faster, adapt to changes easily, and run cost-effective experiments. This approach reduces waste and ensures that development efforts lead to sustainable, long-term value.
The Three Types of Work: Experiments, Features, and Infrastructure
This post has been partially inspired by this interview of Farhan Thawar, VP of Engineering di Shopify, at the Lenny’s Podcast - I strongly suggest you to have a look at the interview, which is full of gold.
If we analyze Software Product Development work from a Product Development perspective, we can categorize work into three key types:
🏗 Infrastructure → The foundation that makes everything else possible. A well-designed infrastructure reduces the cost of building future features and enables rapid experimentation.
🔬 Experiments → Small, controlled tests designed to explore new ideas with minimal risk. They help teams learn quickly and adapt based on real-world feedback.
✨ Features → Built on existing infrastructure, they add direct value to users. Features should be informed by validated experiments and designed to integrate seamlessly into the broader platform.
This classification can help teams in allocating resources effectively: this way, they won’t just chase the next big feature but invest in long-term capabilities that compound over time.
Features should be minimized
Many teams believe that software development is about building features. In reality, the most effective teams focus on building platforms that enable continuous innovation.
Rather than developing one-off features, teams should invest in foundational infrastructure that makes it easier and faster to build the next generation of features. This approach allows them to move quickly, iterate with confidence, and scale their impact.
Moreover, we need to always remember that features are one of the form of waste in software development: 80% of features are usually not used, or used rarely (see Pendo 2019 report).
Why Infrastructure Matters More Than Features
Features often solve only one problem at a time, and they can become difficult to maintain, extend, or replace as the product evolves. The goal should not be to just release features but to create an infrastructure that accelerates product development. Instead of hardcoding an NFT-gating feature, you can build a platform that allows anyone to implement NFT gating in one hour.
This difference is critical: while features address immediate needs, infrastructure enables countless future solutions. A strong foundation allows teams to experiment, iterate, and grow without constantly reinventing the wheel.
The key benefits of an Infrastructure-First approach are:
🚀 Speed → A strong platform allows teams to move faster. Instead of reinventing solutions, developers can leverage existing infrastructure to focus on what truly matters.
🔁 Adaptability → When the foundation is solid, pivoting becomes easier. Rather than scrapping old features and starting over, teams can iterate and extend their platform with minimal disruption.
🧪 Cheap Experiments → Testing new ideas is low-cost and high-reward when infrastructure is designed to support rapid experimentation. Teams can try, fail, learn, and improve without significant overhead.
📉 Reduced Waste → Research shows that only 20% of features are used daily—meaning most of what teams build is wasted effort. By focusing on infrastructure and experiments first, teams can validate what’s actually needed before investing heavily in features.
Applying This to Your Own Work
Next time you’re planning a feature, ask yourself:
Are we building a one-off solution or laying the groundwork for multiple solutions?
How can we structure our work to encourage more experiments?
What existing infrastructure can we leverage to move faster?
Are we prioritizing learning and adaptability over short-term outputs?
The best teams don’t just deliver features—they build the systems that make great products inevitable.
🇮🇹 Calling my Italian readers!
🚀 Want to master Continuous Integration and safely hide work in progress?
Join my hands-on Mastering CI: Fast Releases for Modern Team Workshop, organized in collaboration with Crafted Software Community, where you'll learn to implement these techniques in real-world projects. Say goodbye to long-lived branches and risky deployments—embrace seamless integration with confidence!
📅 Dates: March 29th, April 5th and April 12th. (3h sessions, 10am-1pm).
🎟️ Spots are limited—Sign up now and take your development workflow to the next level! 🚀
Until next time—happy coding! 🤓👩💻👨💻