Mitigating Risk in Custom Software Development
As our company name might give away, we are strong proponents of the benefits of developing custom software. That’s because they give a business owner or manager more control over their operations and provides flexibility to respond to changing market needs. While software packages can be appropriate in highly standardised areas of business (accounting for example), they’re still someone else’s idea of how to run your business.
That said, there are some key considerations to keep in mind to ensure any risks are mitigated when you’re undertaking a custom-built software project.
1. CHOOSE THE RIGHT DEVELOPMENT PARTNER
There are some key considerations to keep in mind when choosing a partner for a custom-built solution. It can be tempting to think one geeky developer is the same as the next, and that something like price is reasonable criteria for selection, but this isn’t the case.
While there are many excellent developers out there, the most critical factor for choosing yours should be chemistry. They should also have some good success stories to tell about having delivered similar projects.
Do they get you, your business, your objectives? Is communication easy?
Custom software projects are often of long duration. Think of it like a marriage – you want to be able to see a long-term future for your relationship, because divorce can be expensive and ugly.
2. MINIMUM VIABLE PRODUCT (MVP)
One of the premium advantages of choosing custom over off-the-shelf is the flexibility it offers. And to get the most out of this benefit, start with prototypes, and start small.
Big picture thinking is necessary, and a road map is an excellent means of guiding your way. However, building everything all at once can be a costly mistake. When building something from scratch you want to have the ability to adapt to feedback once you get your software in front of real-world users.
For a low-cost effective way to generate feedback, use functional prototypes. They’re invaluable for those with no ‘vision’ of your vision. They’ll also provide enormous value in establishing and iterating on workflows; something that’s a lot more expensive and time consuming if done during development.
You might think a fully-featured product is a pre-requisite to offering real value - but this is rarely the case. And even if you do produce something out of the box with all the bells and whistles, without the input of your users early in the piece – there’s a very real risk the features may miss the mark or worse, not be features users want. The Pareto principle (80/20 rule) is that you get most of the benefit from a small portion of the software, so focus on building that part first.
3. TEST, TEST, TEST
Taking the time to thoroughly test the solution with as many different types of users as possible, internal and external, will pay enormous dividends in the robustness of your solution. Things to consider when testing:
- Test across different popular modern web browsers
- Test using mobile devices (does it respond smartly to a smaller screen size?)
- Test usability - how easy or difficult is it to complete common tasks?
- Test functionality using a variety of real data
4. BE ENGAGED
No one will care more about the ultimate outcome of your project more than you. So roll your sleeves up and be prepared to get your hands dirty. Although software development with all its jargon might be intimidating, a good development partner should be able translate it into plain language you can understand – or at least the bits you need to know about it.
The most successful projects are always ones where there is real commitment from the primary stakeholder. Good developers will keep you updated throughout the build and it’s important that you’re engaged throughout every step of the development.
Think of it like building a house; you need to check on progress along the way to make sure everything is to your specification. It can be too late or costly to amend things once they’re built.
5. CONSIDER OPEN SOURCE
‘Open-source software’ is a pretty techie term and gets bandied about a fair bit. What it really means is that you’re choosing a platform that’s free of onerous licensing restrictions, if not always licensing costs – more information about the licensing can be found here.
Open source platforms attract a community of contributing developers whose work is moderated by a core group of project curators. The more popular the platform, the bigger the community, the faster the platform evolves and develops in sophistication. Wordpress, Silverstripe, PHP, React and Linux are a few examples of open source software that may be familiar.
Along with the joy of saving on licensing fees, there’s added security in choosing an open source platform with a large community. You’ll have more options if you find yourself in need of a new development partner.
In a recent survey of New Zealand businesses, cyber security was cited as one of the highest areas of risk. And few feel well equipped to manage it, should they find themselves on the wrong end of some sort of attack.
Sources of data, particularly personal data is the modern age goldmine... and there are lots of baddies out there trying to get a piece of the action.
Your development partner should have policies and practices in place to safeguard your website/web app from almost all possible threats. Look for a high level of professionalism around security. The playing field is changing all the time as attackers increase their level of sophistication and find work-arounds to security measures in place.
7. AUTOMATED TESTING
Yes, this can sound irrelevant or dull, but it’s a winner for future-proofing your project. It has an upfront cost that will pay for itself many times over in the lifetime of your system.
In essence, automated testing improves reliability and increases efficiency, particularly when iterating and updating a system. Tests can be configured to run automatically during development and before deployment to ensure the most critical systems and processes are functioning correctly.
Along with the leaving more time for robust manual testing of edge cases in the system, the big savings will come in the reduction in development time.
What it comes down to is choosing your partner carefully, and not based on price alone. They need to be able to deliver complex solutions and have a range of skills and experience available. It’s important that they agree to deliver a solution in stages, allowing flexibility for a tailored solution, and don’t do too much too soon.
It’s important to be able to modify things as you go. There’s a tendency within most businesses to feel like they need a complete solution, but the best way forward is in incremental steps that allow you to build as you go, adjusting when necessary.
Remember, the chemistry factor is essential. You need to consider relationship dynamics, experience, interest in your project and its outcomes, as they’re all equally as important as economic factors.
The projects we tackle at Custom D are centered around customer engagement, matching sophisticated back-end technology with a simple end-user experience. However when we step back and review what we're most proud of, it's how we've helped our clients grow and transform their business by leveraging all that technology has to offer. We’d love to talk to you about the benefits and costs of tailoring a solution.