Building custom business software is difficult. In my two-and-a-half decades of experience in the industry, I’ve seen many different mistakes that contributed to custom software development projects being late or even failing. As I’ve worked with hundreds of different teams in nearly every industry–from small companies to large enterprises–I’ve noticed that the same handful of mistakes happen in all those teams.
For that reason, I’ve documented a few of the most common mistakes in the hope that you can learn from these experiences and avoid making the same mistakes on your own custom development projects.
1. Rushing the Requirements Phase
Just as a marathoner should not sprint at the beginning of the race, custom business software teams should pace themselves at the beginning of a project–slowing down to make sure they know where they’re going. Software development teams need to take the time to consider what is actually needed and how they plan to meet those needs, all well before coding ever begins.
This might sound obvious, but it’s actually a very common mistake–especially under the tyranny of customer software deadlines. Many software development teams end up feeling the pressure to start writing some code before they truly know what they’re building or how it aligns with the business needs, but this almost always leads to disaster.
Instead, you can do what we do at Trailhead and treat the requirements gathering and design steps as a separate phase of the project that needs to be completed before the custom software implementation phase can begin.
2. Skipping Visual User Interface Designs or Wireframes
It’s often said that “a picture is worth a thousand words” and we’ve found this to be true for communicating software requirements. We have not found a faster way to get everyone on the same page about a software system than to create visual UI designs, prototypes, or wireframes that show what the user interface for the software will look like and how it will work. Those visuals can take many different forms–wireframes, high-fidelity mockups, or even interactive prototypes. No matter what you choose, it’s critical not to skip this step.
Time and time again, we’ve found that creating these high-fidelity mockups as part of our proven process at Trailhead has helped us prevent misunderstandings, scope creep, change requests, defects, and code rework. Even though it might seem like an “extra step,” we find that it costs much less time and money to do the designs upfront and avoid the fallout that can occur otherwise when not everyone has the same understanding of what’s being built.
3. Hiring or Fostering Hero Software Developers
A “hero developer” may sound like a good thing, but it is most definitely not. Hero development is actually a pejorative term used to describe the expenditure of huge amounts of effort by a talented individual to overcome shortcomings in processes, project management, communication, scheduling, architecture, or overall technical skills.
These types of heroes on a custom software development project may hide major deficiencies from project managers or upper management for a time, but they always come out in the end. If you want to know if you have a hero developer on your team, you might have projects that seem difficult to manage or applications that are very fragile. You might sense tension in the team, especially around one person. You may also notice quality issues or frequently missed deadlines. All of these are indicators of a hero making this work just well enough.
My advice to managers of hero developers is to start by showing them the ways in which their heroic efforts, while appreciated, actually prevent things from improving. Their efforts to “muscle through” each time is probably burning them out, and many times they will be eager for opportunities to collaborate and delegate more with teammates if you show them how.
The best results can be accomplished with a whole team that works together efficiently and where each team member has a voice for making the development process better.
4. A Weak Quality Assurance Process for Customized Software
It’s not unusual to encounter a company that wants to skimp on testing. For some, this seems like a way to save money, but it ends up costing more in the end for custom software solutions.
There is a term that testers use called “shift left.” If you imagine the development process flowing from left to right, then shifting testing to the left means shifting it to earlier in the process. Studies have shown that software defects are the cheapest to fix the earlier they are fixed in the software process. It is ideal to fix a bug while it’s still on the developer’s local environment, but if that is missed, it’s best to fix it before it gets to production. Once a defect has made it live, that is the costliest time to fix it.
By skipping a formal testing process, you’re unintentionally maximizing the percent of bugs you will find in production. Not a good idea! That’s why every Trailhead project has quality assurance built right into our process. We may have unusually good developers, but we still know that software is complicated, and there’s no way to produce an excellent software product without some robust testing.
5. A Software Development Team That Lacks the Needed Expertise
When you’re looking to build a new software solution, it’s important to consider the expertise of your team. Will they be able to build or customize whatever features are needed using the best technologies for the job? Do they have the time with their workloads?
If you’re managing the team, but you aren’t quite technical yourself, it can be hard to tell if they have what it takes. The best way to know is to have a history of projects to look back on. Has there been a history of producing low-quality results, missing deadlines, or delivering features or a product that wasn’t wanted? If so, those are all pretty good indicators that something (or someone) is missing from your software development team, and it’s preventing the team from being successful.
At Trailhead, we often help clients analyze their existing teams to see if anything is missing. Sometimes we find that some processes are lacking, or perhaps a key leadership position that needs to be filled. Sometimes there is a specific technical skill that is missing. In any of those cases, Trailhead can help you come up with a plan to fill the gaps.
Sometimes those plans involve hiring new team members. Other times, especially when the needs are temporary, it can mean hiring Trailhead to fill those gaps temporarily with one of our highly experienced teams of software developers. If that’s the route that you’re interested in exploring, just reach out and we’ll be happy to talk with you.
Learn From the Mistakes Custom Software Development Companies Make
If any of these mistakes sound familiar, don’t worry. The first step to change is recognizing the problem. I hope that reading about some of these common mistakes made by custom software development teams helped spark some ideas for you, and that you’re now better equipped to avoid these mistakes on your projects.
Developing custom software is difficult, and there are many ways to make the development process more difficult unintentionally. This is my list of the big ones. What other pitfalls have you noticed as a pattern on the projects you’ve been a part of?
Want to learn more about Trailhead Technology Partners? Check out our About Us page and see what drives us as we create custom software products that make your life easier.