Need Innovative Agility For Your Software Production? Introducing The Breakthrough Consumer-Driven-Contract (CDC) Approach.

Need Innovative Agility For Your Software Production? Introducing The Breakthrough Consumer-Driven-Contract (CDC) Approach.

Need Innovative Agility For Your Software Production? Introducing The Breakthrough Consumer-Driven-Contract (CDC) Approach.

Introduction

In today’s technology-driven world, software has already “eaten the world.”

Software developers are perpetually creating new programs to meet consumer demand. The ability to develop software is in unprecedented high demand. This demand drives today’s labor shortages, high salaries, and higher project risk.

The high risk and costs, in turn, drive the need for new efficiencies when creating software.

So a breakthrough strategy for developing software has emerged: consumer-driven-contract (CDC) development.

CDC is a way to build high-quality software faster, cheaper, and better. It’s superior to traditional approaches like Waterfall. And it adds rocket fuel to your Agile team’s productivity.

CDC helps you create the right product faster. You cut risk and costs by understanding what service each consumer needs—all before building anything.

It’s the same economic pressures driving the entire UX industry. Take the same value proposition of UX. Expand it throughout the software development lifecycle. And you get CDC.

Apply a consumer-driven philosophy to your entire system design. It not only cuts cost, time, and risk. It also boosts your progress.

This article will explore why people are using CDC. And I’ll cover how this new approach boosts software development.

Software Production Today

It may shock you. But, half of an engineer’s time is usually spent doing unnecessary rework.

P. Efe, O. Demirors, “A change management model and its application in software development projects,” Computer Standards & Interfaces, 2019.

Crazy, right?

You probably sense it. What’s happening beneath the surface doesn’t make sense.

Here’s how it works today.

Imagine this: You want to build a house. You start construction. A year passes of hard labor. And finally, the final coat of paint dries. Next, you call an architect to design the layout.

Wait a minute. This may not be optimal.

Isn’t it too little, too late? And isn’t it in the wrong order? Shouldn’t design be first?

Unfortunately, it’s how many software projects go today. Design and construction are smashed together and are not separate activities. And it can be disastrous.

Teams end up sprinting in circles.

When you step back and think it through, the sequence in which you do things matters.

Doesn’t it just make sense that you need investigation, negotiation, and planning to ensure you do the right thing no matter what you are doing?

What is Consumer Driven Contract Development?

CDC is a way of making software that builds on the ideas behind agile software development and lean manufacturing.

BEFORE service construction, your API blueprint should be discussed, negotiated, and finalized.

One of the earliest technologies enabling CDC is Pact. Pact defines an API contract in JSON early before construction. Additional technologies provide this same opportunity for CDC, including JsonAPI and Swagger.

Of course, just having a fantastic tool is not a silver bullet. You still need know-how and skill. Work is still required, it’s just a strategic shift in activity sequence.

But imagine what you get when you combine better tooling with a few more iterative design and vetting activities. You push your projects forward by mitigating the most costly risks earlier.

This minimal upfront thinking is why CDC boosts your team’s agility.

You take the blinders off. See the terrain. And chart a course.

I’m sure you sense that, even if it’s a bit hazy, it’s much better than flying completely blind.

And here’s the thing: it’s not hard.

It only takes some minor process shifts and a dash of discipline.

How Does CDC Work?

The new CDC process means you first define your service contract. Then you vet it. Then you build.

And, just like any legal contract, it is a living agreement. You must amend, update, and improve as your agile team adapts.

But the point is, your teams are not moving forward blindly. You get more control than crossing your fingers and hoping for the best.

You move forward only after you have an agreement. Not only that, but you have your blueprint. And so you have consensus.

When changes happen, you reassess and adapt even more quickly. You stop unnecessarily running your projects in software circles.

So, figure out what each consumer needs. Use it to drive your contract design. And then streamline your development.

Goodbye, monstrously bloated APIs. Goodbye, wasted rework. Goodbye, blind spots.

Benefits of Consumer-Driven Contract Development

One of the best things about using CDC is that it enforces focus on your customer first.

You start with your first contract with your customer: Your user experience.

Don’t start building out of the gate. Take your UX design and hone it. You add some detailed design, communication, and vetting activities.

As you drill down to the APIs, your estimates get more detailed. Your APIs come into focus over time rather than producing a full high-fidelity design upfront (aka Waterfall).

And as you probably know, with any software system, change is inevitable. But now you’ll know as soon as possible if there are any roadblocks and you need to adjust.

Another significant benefit of the CDC approach is that it fosters early team collaboration and trust.

You push for communication to happen early and often rather than after the fact.

You break down your silos. People working on different aspects of the project are no longer isolated.

Teams with different disciplines connect through the integration points as early as possible.

The Problems with CDC

Unfortunately, the CDC approach isn’t perfect for every project.

While CDC is a highly flexible approach to software development, certain situations require a more or less rigid upfront design process.

For example,

  • A CDC project may be inefficient or impossible for businesses. They may not have achieved product market fit. They may not know what customers need. You need that initial contract to drive the rest.
  • A CDC project will not have enough detail mapped out for companies. Especially companies that require you to iron out every detail ahead of time.
  • The CDC approach requires discipline. It is hard for less mature teams.

Doing critical upfront work will be difficult for companies that don’t have skilled and disciplined technical leadership. And some just don’t know enough to understand the value of design and believe engineers should sling code and skip explicit design activities.

How to Fix the Problems with Consumer-Driven Contracts

You need a team with enough maturity to execute CDC.

  • The business must be willing to invest in some top-down design activities.
  • The project team must have enough flexibility to adapt and change constantly.
  • There must be an understanding that as conditions change, they will impact your project scope, time, and cost. (but at least you now have a way to know earlier)

Make sure your project and business can adapt and change as you go.

  • The team requires the right members with the right skills at the right times.
  • The project needs to have stakeholder agreement on an agile approach. Stakeholders must acknowledge change is inevitable. Technical designs must plan for changing upfront (which you require for success with any agile approach).
  • You need to involve your customer with modern UX practices from the start of the project.

CDC is how you ensure customers get the products they require as fast as possible. And ensure your team is agile, taking the most efficient approach to building the product.

Conclusion

CDC is an excellent approach to software development that you can use for any type of project.

Do you believe in a customer-centric approach? CDC drives efficient collaboration and trust between your stakeholders, customers, and team members.

And, while there are some challenges with CDC, they are not uncommon. They exist for most agile processes. And there are ways to fix them.

The biggest problem with CDC is that it’s not ideal for every project. You have to find the sweet spot.

But, you can make CDC work for you by ensuring that your process supports agile development. Find the right team members. And, get your customer involved from the start of the project.

This is how you can make a CDC approach work. Streamline your software production. And deliver better products for your customers.


Wishing you all the best,

Matt Cochran


P.S. Looking for a superior way to develop software?

CDC is an excellent approach that will help you

  • Develop software in a customer-centric way.
  • Foster collaboration and trust between your stakeholders, customers, and team members.
  • Navigate over rocky, technical terrain and achieve your objectives.

Do you need to create software that is not only high quality, but also on time and on budget? Want to streamline agile processes? Interested in tight collaboration, visibility, and clarity?

If so,click here to talk with me about how TruthShield helps.

LET'S WORK TOGETHER