blog

Image of clock, Montreal Canada. Photo by Phil Desforges on Unsplash

Prioritizing Features for a Custom Software Solution

by | Apr 29, 2015 | Insights

Every custom software solution is unique. Otherwise, it wouldn’t be custom. With this in mind, it’s important to align the overall custom software development process to your needs.

Not every project, for example, will need the same depth of initial research – you wouldn’t apply the same research process to a manufacturing plant control system as you would to a web form for collecting user data.

Similarly, as you decide which software features and capabilities to pursue, it’s best to prioritize those that are essential to solving your business problem. How, then, do you select which features to implement?

Version 1.0

There’s one important thing to remember: software is an ongoing process. You will always have the ability to build second, third, and fourth versions of your custom software solution.

When you’re building a commercial product, it’s useful to conceptualize the first version as the simplest iteration of the software that will meet the need you’ve identified in the marketplace, excluding the bells and whistles and nice-to-have features. We can think of this simple, initial version as Version 1.0.

The same philosophy applies to business process software. If you can get an initial version built, the entire process is likely to run more smoothly. By contrast, project teams often run into problems when they shoot for every feature they can imagine right from the outset.

For example, the implementation of one of those bells-and-whistles features may be dependent on how you approach a core piece of the software’s functionality – and if that core piece evolves, the feature will have to evolve with it. You can imagine how complicated this could get if you’re trying to incorporate dozens of those bells and whistles all at once, from the very beginning. Depending on the success of your Version 1.0 or the user feedback you receive, you may find that those non-essential features are unnecessary.

A strong foundation

This concept is sometimes frustrating for people with a particular vision for their custom software solution. They imagine everything they want their application to do, and they can’t imagine it being useful without every element in place. It’s natural to dream big, but by working together with your software development partner to build a straightforward, viable piece of software as a starting point, you will be embarking on a much more sound development process, and giving yourself a strong foundation on which to build.

Focus on the highest-priority features first, and know that it’s okay to release a simple version of your custom software solution first, approaching later versions as upgrades. Understand that solutions are going to evolve, and that’s a natural part of building custom software. It’s not a sign that something has gone awry or that something is missing – in fact, it’s good and necessary, and it leads to better software.

blog graphic

+ more

Accurate Timing

Accurate Timing

In many tasks we need to do something at given intervals of time. The most obvious ways may not give you the best results. Time? Meh. The most basic tasks that don't have what you might call CPU-scale time requirements can be handled with the usual language and...

read more