The Discovery Process Will Make You Win at Software Development

Doug Crescenzi
Upstate Interactive
4 min readJan 15, 2018

It’s true, the right software can change everything for your business. It can help drive innovation and growth, and enable you to make smarter decisions with your company’s data.

At the foundation of any successful software development effort is an effective “Discovery” process.

We use our Discovery process to de-risk your software investment. It helps to ensure we build a solution that actually satisfies your users’ requirements and capably solves their problems.

So, what does our Discovery process look like?

Week 1: Onboard, research, and define

We use the first week of Discovery to onboard you as a new client. We gather existing assets from you, perform product ownership interviews, and begin to develop customer personas. The customer personas help us understand and verify exactly who will be using the software we’re developing, how they’ll be using it, and why it will make their lives better.

After we’ve documented the customer personas and their corresponding value propositions, we then research the market space and identify what similar products already exist. This helps us understand what works and what doesn’t when it comes to building software for users in your space.

We then tease out narrowly focused users stories that capture descriptions of all of the necessary software features from an end-user perspective. The user stories describe the types of users that will be using the software, what they want and why. They help to create simplified descriptions of all of the necessary requirements in a clear and coherent manner.

Week 2: Conceptualize and mockup

Next we transition and start to develop preliminary design and wireframe mockups. We start with low-fidelity design mockups first that depict concepts, design alternatives, and screen layouts.

The low-fidelity mockups help us communicate, educate, and inform the design and user experience decisions associated with your product.

Low-fidelity mockups

We also begin the process of developing low-fidelity user flows that map out the paths your users will follow through your product’s interface in order to complete a task. These are referred to as user journeys.

Preliminary user flows

At the conclusion of the second week we document all of the requirements we’ve identified together from the low-fidelity mockups and user flows, and capture them in a preliminary requirements document.

Week 3: Feedback fueled iteration

In the third week we use your feedback to iterate upon the low-fidelity mockups and produce medium-fidelity mockups.

Medium-fidelity mockups

These, too, are used to foster a dialogue and help us collectively refine your product’s requirements. Similarly, we continue to iterate upon your user flows and your requirements document, and start to explore the underlying technologies that will be used to implement your product. This first phase of this involves developing your system’s architecture.

Your product’s system architecture is a logical model that defines the structure, behavior, and technologies that will be used for development. We identify the APIs and the type of database that will be used, as well as the underlying protocols we’ll rely on to manage and manipulate your product’s data.

The decisions associated with what technologies will be used and how the system will be architected stem from the mockups and user stories we’ve developed together.

Week 4: Optimize, refine and deliver your Development Roadmap

In the final week of the Discovery process we produce a collection of deliverables which include your development roadmap, refined user flows, and your product’s high-fidelity design mockups.

User Flows

Your high-fidelity design mockups are highly detailed and address the missing details in your low-and-medium-fidelity predecessors. They typically contain elements that are intended to accurately represent the final product

High-fidelity mockups

Now we’re ready to write some code!

Takeaways

Building software can be an expensive and time-consuming process. It can easily eat through hundreds of thousands of dollars and years of your life. Therefore it’s important to be certain you’re developing the right product that will actually solve the right problems for your users.

The Discovery process is the secret sauce when it comes to software development. It’s used to address all of the most important questions before writing a single line of code (i.e., user needs, design considerations, core value propositions, features, etc.) Not only that, it facilitates more accurate timelines and budgetary estimates.

Put simply, the Discovery process de-risks your software investment and prepares us to develop your software as efficiently and as effectively as possible. It’s fundamental to developing custom software successfully.

Interested in learning more?

☞ We help B2B organizations turn great ideas into software. Interested in learning more?

--

--

Doug Crescenzi
Upstate Interactive

vp, software engineering @ Foundry, previously founding partner at Upstate Interactive (acq'd by Foundry in '22)