If you’re about to embark on a software developer project, you’ll no doubt be aware that you’re in for something time-consuming, challenging and, not to mention, expensive. Unfortunately, software development projects are also notoriously at risk of failure. According to a Gartner study back in 2017, only 29% of IT projects were considered successful in terms of meeting their objectives within the original time and budget estimates. 19% of projects were classified as complete failures having been cancelled before they were completed or having delivered absolutely no value.
Of the failed projects in recent decades, some high-profile cases have been subject to more public scrutiny than others. Take the infamous failure of the Queensland Health implementation project, for example. Regarded as a “text-book example of how not to implement a large-scale IT project”, this colossal IT disaster cost taxpayers $1.25 billion and resulted in 80,000 doctors, nurses and health care professionals being overpaid, underpaid or not paid at all.
Another infamous IT disaster down under was Sydney Water’s customer billing system update that blew out from $38 million to $135.1 million. MinterEllison partner and technology contracts expert Paul Kallenbach attributed this to a “<u>classic lack of planning</u>”.
There was also the time back in 2003 when a software upgrade at St Mary's Mercy Medical Centre in Michigan led to 8,500 people being falsely declared dead. Or back in 2015 when CareFusion’s ventilator had to be recalled due to a software flaw that could result in patients suffocating. This occurred just four days after CareFusion recalled a medical pump due to a software error that caused a delay in delivering medicine to patients.
Software failures are prevalent and while these are large scale examples, smaller projects remain equally at risk. Fortunately, there are things you can do to avoid being on the wrong side of the statistics and ensure your project is a success from the get-go. One of the most important things you can do is to choose the right development partner and be sure to avoid the cowboys.
What is a cowboy software developer?
Like many of the cowboys you see in popular culture, a software development cowboy is a developer who likes to ride alone. They’re not great at working in a team and have free reign over a project, whether they’re in a team or not. They don’t follow the rules, and work without following a specific process or standard procedures including testing and quality checking. Generally, a cowboy coder will jump straight into a project without any pre-planning or organising.
The problem with cowboy software developers
Unfortunately, cowboy developers are fairly common, largely because many companies favour fast work over quality work. Whilst their free-form style of working could cultivate experimentation and outside-the-box thinking and might also mean work is completed much faster, there are many problems working with cowboy coders.
The biggest problem with a cowboy is the quality of their work. Because cowboys work quickly and appear to be getting stuff done, the poor quality of their work isn’t often apparent until the project is completed, and the developer has moved on. That’s when things start to fall apart and you realise that what they’ve built is a complete and utter mess. Things may be incomplete or not working at all. You’ll also realise that your developer didn’t document their work, which means fixing the issues is difficult and costly.
If you prefer a collaborative approach and want to be involved in the decision-making of your project, then a cowboy developer definitely isn’t for you. Cowboy coders work in a silo, and many are unreachable for days or weeks at a time. They’re also not open for collaboration and aren’t great when it comes to communication.
Another huge trap is a cowboy developer who uses low-cost offshore programmers. There’s nothing wrong with using offshore talent as long as they’re capable. The issues begin if your Cowboy isn’t vetting the coding as it’s being delivered, but rather simply passes the link over to you, putting the responsibility for identifying problems squarely in your corner. Clearly this is not good enough – you need to hold your project leader responsible for checking the work of their team before it comes to you – no matter where in the world they’re situated.
How do you avoid hiring a cowboy?
To avoid hiring a cowboy, one key thing you can do is ask a series of questions to determine how the developer works. For example, check that the developer follows industry best practices, standards and processes including testing, quality checks and how they document their work. If the developer doesn’t do any of these things – or isn’t open to doing any of these things – that’s a huge red flag. By following coding rules and guidelines, a developer ensures that code is written, formatted and documented in a way that is consistent, readable and easy to maintain.
Additionally, before engaging a software partner, work out how they communicate and ascertain if they are open to meaningful collaboration.
Other things you can do to ensure you’re choosing the right developer for your project:
Create a list of criteria that you want your software development team to meet. Be clear on what you want your software partner to provide. By presenting potential partners with a list that clearly lays out all your criteria, you’ll both be able to determine whether you’re a good fit.
Choose a team. That is, don’t just choose one individual. A software development project requires different skills and disciplines for success, so by choosing a team that can offer a great balance of skills, experience and expertise, you’re more likely to be choosing someone that can meet all your criteria. Additionally, choosing a one-man show runs the risk of working with someone who prefers working on their own and therefore might not be willing to work collaboratively with you.
Take a good look at their portfolio and check their references. Make sure that the team you’re choosing has a good track record in similar projects. Look closely at what they’ve done before and see if their work aligns with your goals. Also be sure to check their reviews and speak with previous clients to get feedback on what they are like to work with as well as the quality of their work.
Ascertain how the team communicates. While it may sound simple, learning how your software development team communicates will go a long way to ensuring the success of your project. This includes things like the mediums they communicate through – are they available on the phone or do they communicate only via email? – and the hours they are available. It also means finding a developer who listens to what you have to say, is willing to collaborate, and can effectively communicate with you.
Choose experience. The more experienced your team, the better results will be. Of course, this shouldn’t be your only consideration – it’s important to also consider things like their technical abilities, reliability, reputation, work ethic and the ways they think and approach projects. You want to work with a software developer who can think outside the box to create tailored solutions that best suit you, your project and what you are trying to achieve.
For more tips and insider insight on how to choose the right software development team, check out our eBook.