Make Your Software Great Again.
As controversial as Donald Trump has been during his race to the White House, his “Make America Great Again” slogan has resonated with millions of people. With that simple slogan as his springboard, he’s managed to capture the sentiment of his supporters – people who are feeling frustrated and upset with their options.
Indeed, we’ve been receiving a higher-than-usual volume of inquiries from companies that are frustrated with their current custom software “situation.” Furthermore, not only did the title of this blog seem like worthy click bait, but it captures the sentiment of eForge’s more recent prospective clients.
We’ve talked to a number of people in the past few months across a variety of industries – all experiencing similar issues with their custom-built software tools:
Recurring & Increasing Bugs
“Bugs that we fixed before are now popping up again.”
“It feels like I’m finding another bug every time I log in.”
“If our software was stable then we could have added some enhancements for a new, large account and won their business. Instead, we missed out.”
“I explain to my team what needs to happen and they implement the wrong behaviour.”
Missed Deadlines & Releases
“It’s been weeks since users have got a new feature or a bug fix.”
“Our software team never delivers on time. The release date is always being pushed back.”
During each of these calls, you could almost feel the pain and frustration through the phone. However, the unfortunate reality is that this sort of thing happens all of the time.
Luckily, we’ve got pretty good at helping people that feel like their current software project is a losing battle. We started to offer prospective clients a free end-to-end system evaluation. A few of our senior engineers take a peek under the hood and conduct a complete code and infrastructure audit.
This is a tedious and time-consuming effort, but here’s what we’re finding:
THE PROJECT HAS CHANGED HANDS MULTIPLE TIMES, LEADING TO:
- Temptation to include a developer’s favourite library or framework to solve their problems.
- Lack of code documentation.
- Lack of a “coding style” standard. This is likely caused by lots of copying and pasting of code from person to person. Consequently, this results in “un-readable” code that can be difficult to support.
THE CORE TECHNOLOGY/FRAMEWORK BEING USED IS OLD OR OUTDATED, LEADING TO:
- Inability to run on different platforms (ex: Chrome vs. Internet Explorer or Windows 10 vs. Windows 7).
- The system is “hard coded” to run in a specific development environment.
- Security vulnerabilities.
OVERUSE OF THIRD-PARTY LIBRARIES OR TECHNOLOGIES, LEADING TO:
- Increased difficulty and time to debug issues.
- Cumbersome code base that is difficult to organize and build.
- Lack of a single, cohesive architecture.
- Over-engineering to compensate for the architectural issue.
- Poor documentation.
The crazy thing is that these problems usually persist for months, sometimes years.
In most cases, we are talking about systems and tools that employees and customers rely on every single day, software that is critical to the mission of the business and to an employee’s productivity.
You need this software to just work. Not only today, but for years to come. Your employees, your customers and your bottom-line depend on it.
So far we haven’t encountered a project that isn’t salvageable. Usually a bit of code clean-up and stabilization work is required before new development can start back up. However, that is a small price to pay for reliable, long-lasting software.
If you’re experiencing a combination of the issues we outlined above, then you need to let an experienced and reputable firm evaluate your system. Someone you can trust should give you their professional opinion. It’s frustrating to even think about how many of our clients have got burned by other teams.
To really make your custom software great again, something will have to change. Most likely, you’ll need to replace your current software team. In that event, just take some advice from Donald Trump:
“Usually if I fire somebody who’s bad, I’ll tell them how great they are. Because I don’t want to hurt people’s feelings.”