The Development Process: Discovery

Posted on

You’ve got an idea for a brand new software application that you believe will change how you do business, or perhaps an idea to expand your company’s existing technology. What does the process, from idea to fully-functioning reality, look like, and what are the possible technology decisions you’ll need to make during the process, even though you potentially know nothing about software development?

While many companies we work with have their own in-house developers and look to us to expand their team for a short-term project, a few of our clients have little to no understanding of software project development, or of what kinds of decisions they’ll be called on to make.

Over the next month, this series of posts will focus on the software development services we offer, the development process we go through to deliver these services, and what you as a potential client should know regardless of whether you choose to hire a single developer, or an entire team of product specialists like Coretec.

The first step: Discovery.

The Discovery Session

Once you have a vision of what you want, or even when you know you need something but you’re not exactly sure what it is, the first step is the Discovery Session. This is a half or full day session where key Coretec personnel sit down with you to learn about your business and help you determine exactly what you need to do your business better.

We’ll ask the questions to get you thinking about everything you could possibly want your application to do. We then prioritize the items on your wishlist and determine what can be delivered inside your timeframe and budget.

But don’t feel too pressured. Even with the most detailed wishlist it’s not uncommon for new features to spring to mind part way through development. This is where an Agile approach over a Waterfall approach will be to your advantage.

Agile vs Waterfall

There’s a lot out there about Agile vs. Waterfall methodologies, so we won’t get too detailed here. Essentially, there are different ways to execute a development project.

Waterfall is an approach where all the planning happens and then all the development happens. As a client, you’ll invest most of your time up front, getting an exact understanding of how the entire finished project will look and work. You’ll see and approve all the wireframes and receive a schedule of when everything will be done. Then we’ll go away and develop the project. If you like to be kept up to date on the project we can do that, otherwise, unless a major problem arises, you likely won’t hear from us until the finished product is ready to be demonstrated and delivered.

Waterfall works best with projects that are smaller in scope, have defined boundaries, and generally don’t take longer than twelve weeks. It does not lend itself well to an “Oh no, I forgot I wanted this feature” situation. That’s where Agile is your friend.

Agile is a continuous integration method where the planning and the development happen side by side. It’s a more flexible approach, better suited to larger projects where attempting to plan out everything in advance could set you back by months.

Our Project Manager keeps you up to date throughout the project so that you can give feedback, and changes can be made as and when they’re needed. One of the big advantages to this approach is the ability to slot in extra features that come up during development that you may not have thought about during Discovery.

We work successfully in both a Waterfall and Agile environment; it really just depends on the scope of the project.

Code Review

To help determine your wishlist during Discovery, we assess any existing technology that you have, go over what’s working for you, what isn’t, and where you would like to see it taken next.

This code review portion of Discovery also reveals the current coding language being used for any current application, and allows us to assess whether the existing code is sufficient to take your project to the next level.

In an upcoming post, we’ll discuss what needs to be taken into account when choosing a coding language for your application. As you’ll see, there are situations where the goal for your application is beyond the point that your existing coding language can take it. We may need to rewrite your existing technology in order to build out from it. However, we will always use the existing code base if we can, which will keep costs lower for you; it’s not our MO to rewrite code if we don’t have to!

The Bottom Line

There is a fee for the Discovery Session, but what you receive is a precise Scope of Work (SOW) document. We use this SOW as our roadmap if you hire us to do the development, but ultimately it belongs to you. During the Discovery Session, think of us as consultants who are advising you on how to move forward with your project. At the end of it, the decision is still yours as to whether we’re the one to develop the application, or you want to hire someone else, or develop it in-house. The SOW is your IP and it’s up to you what you do with it.

The Discovery Session is a safe way to dip your toe in the water and get a feel for your working relationship with us, our expertise, and what we will bring to your project.

Next time, we’ll talk about choosing a development language for your project and what you need to know to make that decision.