6 essentials for getting your own software developed

Thinking about getting your own software developed? Now is the time!

Think back a few short years to the early 2000s. Back then deciding what software to use was a weighty decision for most organisations. You only had two real choices: buy an off-the-shelf product or commission developers to build custom software for you.

Until 10 years ago, the second choice was a big decision as the cost was high, and few organisations could afford it. On top of that companies were locked into proprietary platforms, meaning there was no easy way to change a purchase decision if it turned out to be the wrong one. Meanwhile, the biggest organisations often bought expensive packaged software and then paid even more for professionals to customise it for them.

But change has been afoot, and high quality bespoke software can now be commissioned by businesses of all sizes, and even individual units or departments.

What happened? The cost and time required for developing software has dropped markedly. The tools developers use have improved, largely due to the open-source software movement, which has democratised production of high-quality software tools. Also, technology infrastructure costs have dropped dramatically, and you can now run a web server for the cost of 3 Starbucks lattes per month. Add to that the fact that more people now know what they want from web and mobile applications (due to working with them every day) and can provide input into a software development process.

So, if you have been thinking about it, now is the time to have bespoke software developed to empower your team.

But, you may ask, why create your own software when there are already so many options available in every industry? Why not just stick to buying prepackaged software or cloud-based services?

For normal auxiliary business functions it certainly true that great options already exist. The selection of project management, accounting, marketing and customer relationship management applications is staggering, and they are usually available at a very reasonable price.

The problem for many organisations, however, is that their core operations are more than just support functions.

The core operations of many organisations are just too nuanced to be handled by generalist “catch-all” applications. These nuances really matter. Core operations often include specific sequences of steps, defined by highly detailed rules and decision criteria.

Core operations are also often characterised by important rule exceptions. For example, a fieldworker is recording data about remote health posts, and is taking GPS points at each health post using a mobile device. What if a GPS cannot establish a location? Assuming that the fieldworker is carrying a secondary GPS, should they be able to capture the location manually? If this is allowed, under what circumstances, and how will this record be handled differently from the others? Will a different approval process take effect?

You can imagine that this situation might be handled very differently depending on the organisation. Many off-the-shelf business packages have tried to deal with this problem with an ability to handle every likely situation across their entire client base. This approach makes software feature-rich, but usability-poor. Software that tries to doing everything for everyone is complex to learn, use and maintain.

Furthermore, off-the-shelf packages create swathes of redundant features, which clutter screens and are never used. Just think of the continued ubiquity of Microsoft Excel as a multi-purpose business tool – forced to do many things it was never designed for, whilst most users know only a small proportion of its many functions.

An alternative approach is to have software built for your organisation: for your core business and your rules.

This will, however, require some preparation and thinking. Before engaging any professionals to develop software for you, you first need to be familiar with a few key concepts:

1/ Requirements
You will need to find a way to explain to what the software application will do to the people building it. There are several ways of doing this, but one of the best is wireframes or mockups. There is substantial information available online to help you create them. It is important to remember that these will change during the process of development as new possibilities and issues emerge. Requirements are not a static rulebook for the application.

2/ Testing
Testing your new software will be an important role to fulfil as client. You must test every feature, every screen, every button. Developers will often do their own testing, but independent verification is crucial. Get fellow employees involved and encourage them to record their experiences. Voice recordings are very useful for this purpose.

3/ Project management
Any software project should have regular outputs and should be flexible to change. Agile software development methodologies have changed the way software projects are run, so familiarise yourself with Agile software techniques and speak about them with the developers. The Agile concept of developing in short iterations is especially powerful.

4/ Timing
This is very much project specific, but many applications with a contained and well defined objective, and a limited feature set, have been fully implemented within 3-6 months.

5/ Budget
This is largely dependent on the time taken and the type of organisation or individual you use. Assuming a single software professional working full time, a realistic estimate is between £8000 and £16000 per month of software development done.

6/ Who to work with
Software development is offered by a wide range of companies and also by individual freelancers. Skill levels and work quality can be dramatically different between developers. Reach out to your professional network for people who can make a recommendation based on an working with software developers. Ask for specific examples of things that went well or went badly.

Need software that enables social impact? ImpactReady may be able to help, contact us.

Comments(1)

  • 23rd May 2016, 1:32 pm  Reply

    A realistic approach for software development by the clients.this is really a practical thing before software development from the clients side

Leave a Comment