Iterative Product Development 101

Iterative product development is a process of creating and improving products through a series of short, incremental cycles. This approach allows teams to quickly gather feedback from users and make changes to the product as needed. As a result, iterative product development can help teams deliver better products faster.

Iterative product development has laid the ground rules for how we manage our software projects - and it affects everything about the project.

To first understand why we use Iterative Development and recommend this approach when counseling founders, it helps to understand what methods we’re not choosing as well - the software development methodologies that have been used before and why they do and don’t work.

Software development methodologies

Don’t worry, this section will be brief. Mostly because software development hasn’t been around that long.

Let’s not forget that personal computers have only been around since 1971, leading to the dot-com bubble of the 90s, all heralding more widespread adoption of technology and the growth of the field of software development - that’s just 50 years.

To put 50 years of transformation in context, 50 years after the first automobile was created, cars still looked like this. 👇

Now that we’re all in agreement that the field of software engineering is very new, here is a breakdown of two of the primary schools of thought that have driven software development styles to date.

Waterfall

The earliest use of the term “waterfall” was in the last 1970s. The waterfall methodology of software development ascribes sequential stages to software development - each of which must be completed before moving to the next stage. Some of the earliest stage definitions were taken from a paper by Winston Royce in 1970.

If you research the waterfall methodology today, you’ll find various modifications to these phases, but the general idea that you move from project planning > design > development > testing before releasing a complete product to users is the same.

One of the main reasons companies love the waterfall methodology is because it gives you a complete roadmap of your project, which in theory sets firm deadlines and budgets in place.

That very reason leads to some of the main criticisms of the waterfall process.

The first criticism is that waterfall is rather inflexible. If something in your business changes, it is hard to change the roadmap.

Secondly, the deadlines and budgets are typically wrong. According to a study by McKinsey, “large IT projects run 45 percent over budget and 7 percent over time, while delivering 56 percent less value than predicted, with software projects running the highest risk of cost and schedule overruns.”

A final criticism of waterfall is that it doesn’t consult the person who will be using the software at any point throughout the development cycle. Wouldn’t you want your tailor to at least ask what color jacket you prefer before making you a custom suit?

Agile

Throughout the 1990s software developers had become discontent with the outcomes of the waterfall process and were experimenting with more flexible ways to build software.

In February 2001, a group of software engineers got together and penned the Agile Manifesto, which provided some views on development that flew in the face of traditional waterfall methodologies. Agile identified 12 principles and 4 values that drive the mindset of this style of software development. The manifesto heralds a new focus over the prior emphasis on process, documentation, and planning.

Individuals and interactions over processes and tools

Working software over comprehensive documentation

Customer collaboration over contract negotiation

Responding to change over following a plan

The principles of agile outline shorter release cycles that get the most important parts of your project in the hands of customers sooner, with an emphasis on talking to your customers and getting feedback along the way. It also encourages flexibility. Businesses change, needs change, and minds change, and this process accounts for those moving parts. Agile is light and fast, compared to the process-heavy, document-driven waterfall approach.

A favorite way to describe agile, designed by Henrik Kniberg, is encapsulated in the illustration below.

With the illustration above, the user needs to travel from point a to point b. Rather than delivering pieces of the complete design - none of which are usable until phase 4 - he recommends providing something to the user that will solve their problem at every phase of the process. In doing so, you get user feedback along each step of the journey, which ultimately ends in a better product than originally planned.

Agile has been heralded by some as saving projects that were previously black holes of money under waterfall processes, like this $800M project of the FBI, but it has also received mixed reviews over the years. Some of which show a misrepresentation or mismanagement of the agile process.

Because of our natural waterfall instinct, users of agile have created story points and two-week iteration cycles to better predict the agile process. But prediction leads to planning and over-planning leads to the death of flexibility and innovation - all of which was the original goal of agile.

An introduction to Iterative Product Development

So here we are. It’s 2023 and ThinkNimble is talking about iterative development. We have been piloting focused, iterative development projects at ThinkNimble for over a year now, and well… they’re working.

Goals of Iterative Development

Iterative Development, in its simplest form, is going back to the basics of the original intent of the agile manifesto. However, the term agile has become conflated over the years with good and bad nuance, so we’ve stripped out the negative connotations and are starting fresh.

The goal of Iterative Development is to understand your long-term goals and build a process that consistently produces an excellent technical product in the direction of those long-term goals. Given your goals, we work in short, clear, releases to get feedback weekly, validate product fit, and better understand your market and customers. Iterative development takes your 5 year vision and breaks it into 5 day feedback cycles.

Benefits of Iterative Development

There are many benefits to using iterative development, including:

  • Increased speed to market: Iterative product development allows teams to release products more quickly than traditional waterfall methods.

  • Improved product quality: Iterative product development allows teams to get feedback from users early and often, which helps to ensure that the product meets their needs.

  • Reduced risk: Iterative product development allows teams to test different ideas and approaches before committing to a final product, which helps to reduce the risk of failure.

  • Increased customer satisfaction: Iterative product development allows teams to build products that are more closely aligned with the needs of their customers.

Steps in Iterative Product Development:

The steps involved in iterative product development typically include:

Learn - We begin the iterative cycle by cultivating a deep understanding of “now.” Whether we’re diving into business goals, state of current tech, user feedback or otherwise, we utilize a variety of tools to understand the present so we can build an informed future.

The first step is to define the problem that the product is trying to solve. This will help to focus the development effort and ensure that the product is meeting the needs of the users. Once the problem has been defined, the team can start to brainstorm ideas for solutions. This can be done through brainstorming sessions, user interviews, or other methods.

Plan - We step into the planning phase with a holistic understanding of the present and what we are aiming to achieve. Using both as our guide, we architect the technical strategy and blueprint to get you there.

Designs manifest into prototypes, which can be simple mockups or working models that allow the team to test different ideas and get feedback from users. The team should test the prototypes with users to get feedback on the usability, functionality, and design of the product. This feedback can then be used to improve the product before it is released.

Deliver - With our plans and designs in place, we proceed equipped to implement code in service to the monthly outcomes we established. Our goal is for you to see progress on a weekly basis, and release a working MVP to users as soon as possible.

Once the first version of your tech is in the hands of users, the team should continue to monitor the product and gather feedback to make improvements over time. Then the process starts over.


The Iterative Development process keeps you moving through the learning, planning, and delivery phases on a consistent basis for as long as you are building software.

Outcomes from Iterative Development

  • Aligning your projects towards outcomes or a singular product vision (we call this a “north star”)

  • Starting with something small that works to get in users’ hands as soon as possible

  • Creating high-definition iterations in short time frames (long time frames get lower definition)

  • Fast development cycles that incorporate user feedback in each iteration, aligning market demand with development efforts

  • Producing a viable critical path in a short time frame so that a full experience is testable by users within 4-6 weeks

  • Intentional experimentation with clear outcomes/learnings so each dollar spent has a clear ROI

  • Reduced cognitive load in service of marked progress on key objectives

What Iterative Development Is Not

  • Strict Agile Scrum Methodology

  • Unplanned, cowboy-style development

  • Low accountability style engagement

  • Emotional/gut-reactive roadmaps

Iterative Values in Software Development

In order for any of this to work, there are a handful of values we’ve seen proven time and time again that we hold fast to with all of our clients.

Experimentation

If every new business was guaranteed success, 90% of startups wouldn’t fail. So building a business is one big experiment to see if you can turn your great idea into a great business.

The fastest way to find success is by testing small experiments that will prove traction or prove that big idea you’re running after. Testing small experiments will help you build better products by failing faster and capitalizing on wins sooner.

Iteration

Expect to always be growing and adjusting your product. Start getting feedback from your users as soon as possible so you can build a product the market wants.

Keep your development cycles short and often so you can consistently deliver, evaluate, and pivot when needed.

Prioritization

Cut things from your to-do list.

Focus is the most valuable thing you can bring to the table to make progress. What is the one thing you want to accomplish first?

Focus on that, and de-prioritize the rest.

Communication

Technology is not a black box. In fact, you should understand exactly what is going on with your product development.

You should know the state of your tech, why you’re hitting hurdles, and how different aspects of your technology might impact your business.

Don’t settle for a technical partner who doesn’t make you feel confident about your tech.

I appreciated your team always asking “What is the problem you’re trying to solve?” That defined what we needed to build in that month, but they were defining that for the business as well. You need to boil it down to one simple thing - What do I start with? This is critical for a tech team to know what to build. Everything else can come but this is the best starting place.

- A Happy Client

Benefits from Building Iteratively with Clients

Confident tech leaders - Since our clients are integrating their highest business priorities for their product and are seeing the development process week over week, they leave engagements understanding how to lead an effective tech process.

Understand your customers - Since we release products in phases, we’re getting early, critical feedback from users that helps us understand (not guess) their motivations and needs.

Build better solutions - Being adaptive to changing needs, new information, and customer feedback simply creates better products.

If you’re interested in learning more about Iterative Development or implementing an iterative process at your company, contact us here. We’d love to chat.


Enjoy this article? Sign up for more CTO Insights delivered right to your inbox.

Previous
Previous

When to launch your product

Next
Next

Cognitive Overload is Killing Your Tech Team’s Productivity