Custom software is very exciting. The possibilities are almost limitless, and you can build something that may become core to your business or your brand.

At Radial, we want to turn your vision into reality, and we have concrete steps to get there. By outlining these steps and how we walk through them, we hope to help you better understand the software development process.

Step 1: Research

You’ve probably already gotten a head start on this through observing pain points in your business or marketplace. You probably have an idea of where custom software might lessen or remove these.

You can even run small experiments to gain more insight into why these pain points exist and what additional value you would open up by solving them. Perhaps you have an intern manually managing things on paper or you are moving data around using a shared spreadsheet.

Maybe you want custom software to automate these workflows. But if you run an experiment to evaluate their costs, you could find that something that seems low-tech and manual might not be worth automating. If an intern can complete the task in 30 minutes, it will cost you a lot less to pay for that than to buy expensive custom software.

Or you might find the opposite, and realize that automating processes through an app would produce real value for your business. Either way, your experiments should give you insights.

You will also want to research existing, pre-built solutions. Many times a product already exists that will do 90 percent of what you want for 10 percent of the cost of custom software. The critical question to answer in this research phase is: “Will actual people use this software and find it valuable?”

Step 2: Specify

Communicating the important details you learned from your research is perhaps the hardest part of the entire project!

When working on a technical project, it’s easy to fall into the trap of focusing on technical or design details. Focus instead of the profound knowledge you carry in your subconscious. Keep in mind that you have a unique knowledge base. Only you know what your business needs and how the product will solve your problems.

At the same time, it’s important to try to see the trees, not just the forest. Just as different parts of your product are easier or harder to develop, they are also more or less valuable to the people who will use your software. You might love the idea of customizable avatars for user profiles. However, if none of your users care about adding a personal profile photo, is it really that important? Specifying helps you decide what you truly need for your app to serve its purpose.

At Radial, we have developed a tool for diving into your project and building a road map that will get the most bang for your buck. We are always happy to give potential clients a free consultation. Once we have that map, we can begin detailed specification of the nearest destinations. These specifications almost always focus on the user and describe what they want and why. At this point, we also will discuss bringing in a user experience (UX) designer, to ensure the app is designed in a way that is intuitive and enjoyable for users.

Step 3: Deliver

When it comes to custom software you may be surprised to know that an enormous amount of code is written that never gets used.  This is due to delivery problems. We are determined not to let that happen, so at Radial we practice “Day One Delivery”.

Our motto is “deliver early and deliver often”. We typically start a project by setting up an automated delivery path from the developer all the way to live web servers.

Likewise, we encourage you to plan a gradual rollout. First deliver to a small, trusted, group of testers, then to a wider beta group, and finally to market. There are two keys to delivery: capability and completable work. At Radial we prove out and expand our capability constantly though better tools and continuous improvement.

The second factor, completable work, means that specifications should be in small enough pieces to be able to see results in a short period of time and should not be moving targets. Of course, your vision will evolve over time and the specification will have to change at some point. You must remember: delivery is not the end but the beginning!

Step 4: Iterate

Every project evolves during and after delivery. Over time, course corrections will become necessary. Managing them is key, because failure to manage changes can prevent delivery and doom a project. Fortunately, software is a very adaptable thing as long as we can rely on starting from a known state every time.

Shorter iteration cycles (we usually prefer two weeks) let us balance delivery with adjusting to new information.  On longer-term projects we quickly settle into an efficient cadence of research, specification, and delivery. This cadence helps us focus on your priorities and catch problems before they become significant waste. Meanwhile, each new iteration brings new value to your simultaneously expanding user base.

We hope this guide will help you understand the process of app development as you make the call on whether a custom web or mobile application will help your business.