Looking for an app to be developed and hopeful that any software developer will meet your demands? Odds are, your project will provide you with more headaches than you bargained for if you didn’t do your research. Difficulties in developing quality software may be more prominent than you think. To be exact, out of 50,000 software projects looked at in 2015, only 29% of them were deemed successful — while 52% of these projects had major challenges and 19% failed completely¹. While there are many factors to consider when looking at these numbers, it’s important to remember that root of these problems stem from inadequacies in the software development process.
Whether the clients in this study were unsure of what exactly they were looking for, or the software developers were cutting corners to meet time and/or cost constraints, one thing is for certain: Choosing the wrong software development team can be a detrimental mistake for your company. Below we will list a few reasons why this has become such an issue in the software development industry, how to decipher a between a good and bad software developer, and what project model your software development team should be following to ensure your project is a success.
Only One-Third of Projects Are Successful
Why is this? Out of the 50,000 projects that were looked at, almost a third saw cost overruns, and over two-thirds saw time overruns. In simple terms, these overruns can be due to choosing the wrong development team — one who follows the wrong project model (Waterfall v. Agile), clients having a poor understanding of software development by setting unrealistic risks and goals, and skewed expectations presented by the developer.
It takes a joint effort between the client and the developer for a successful build-out, and it’s imperative that you two are on the same page with clear communication efforts. Understand the software development process before even setting the requirements for your project. Developing software from the ground up is a hefty task. Look at it like building a custom house with very specific dimensions, rather than purchasing a car right off the lot.
Items to Discuss with a Potential Software Developer
What determines a good software developer, and how do you decipher between one that can tackle your project efficiently, and one just trying to land a contract? Aside from doing the basic research on your end, there are a few ways to figure out the intentions of a software developer, and whether or not they’re capable of understanding your requirements for completing your project.
- Past projects – What kind of projects have they done before, and what type of clients have they serviced? Pick your developer’s brain in terms of what made their projects innovative and what type of model they implemented to ensure their projects were successful.
- Timeframe – One way to understand the software development industry’s best practices is by understanding the average timeframe it takes to complete a project. How long does it take your developer to implement each phase? Although there’s no concrete answer, a project should be broken down into three phases.
- Requirements and design – List out your requirements for app functionality and design. This usually takes anywhere from two to four weeks.
- Architecture and app development – This phase determines which technologies will be used, and a majority of the time will be spent coding. This can take anywhere from three to six months, and is usually the most flexible part of the development process.
- Testing – Does your developer implement a rigorous testing phase? If they don’t, your final product can be susceptible to buggy software. This usually takes anywhere from three to six weeks, but can take even longer depending on the developer.
- Flexibility – Going off of the timeframe of a project, it is important for you and your developer to understand the “iron triangle” in case a project needs to be expedited. Pick two: Scope (what must be built), Time (when it must be built), and Resources (how much it will take to build), and make sure your developer can be flexible with the third. This is part of setting a realistic goal for both you and your developer.
Clients who were dissatisfied with their final products, amongst the 50,000, also reported that they were hit with hidden development costs and lured into a fixed scope contract. These contracts are usually rigid in that they don’t allow for much adjustment after signed. Understand that most software development cannot be predicted upfront. Choose a developer that doesn’t try to hide this from you.
Project Models: Waterfall v. Agile
When it comes to software development, there are two approaches. The Waterfall approach, also known as the traditional approach, prioritizes downward movement through the phases of inception, analysis, design, construction, testing, and maintenance. However, this approach can be very slow — and as we already know, slow movement equals less innovativeness. In the world of constantly-changing startups, this approach is very risky and statistically yields worse results.
An Agile approach is where more developers are shifting their focus to because Agile projects are not only three times more likely to succeed than Waterfall projects, but they are fast-flowing, allow for the most change and flexibility, and invite customer collaboration through feedback rather than following a set plan. If your developer doesn’t prioritize an Agile approach, you might want to consider a new one.
In terms of team size, an Agile approach also allows for more work to be done by much leaner teams. It’s a no-brainer that the smaller a team you have working on a project, the more cost-effective it will be.
Other Things to Consider
Not all software developers are created equal. You can have a team of, what you consider, adequate software developers — but this doesn’t necessarily mean they’ll be more effective than one very good developer. Don’t place too much value in quantity over quality.
How valuable does your developer consider UI/UX? Although app functionality is key to maintaining an app’s longevity, just know that 94% of user’s first impressions are design-related. Also, 50% of users abandon an app on the first day — and this is directly related to an app’s UI/UX. It’s important not to base success simply off the amount of total users, but user-retention.
Taking the time to build a great functioning product and a great looking product makes it easy on your marketing team. Be patient with your developer, and be open to discussion when it comes to design and function — after all, you are hiring an expert. Set realistic goals and risks so you don’t have to revisit problems towards to end of development. Also remember that the best developers come at cost; but as Stephen M. Meade, CEO of Magic Moments says, “a professional is expensive, but an amateur costs a fortune.”