9 Bespoke software development mistakes to avoid
February 10, 2021
If making custom software was easy, everybody would build their own apps and there wouldn’t be a shortage of programmers. Unfortunately, the only thing that’s easy about software development is making mistakes.
And I don’t mean code errors, because it’s not the only soft spot where projects can fail. With an experienced team of programmers, this can often be the smoothest part of the process.
Some of the biggest pitfalls lurk before and after the coding part. Defining the scope of the software, designing the right architecture, choosing technologies, or long-term maintenance.
In this article, we’ll explore common mistakes that you should look out for when you’re involved in a custom software development project.
These mistakes are easy to make, and can cost you a huge chunk of your budget, a lot of unproductive time spent on a project, or weeks of mind-wrecking stress, so try your best to avoid them.
Just because you could mount armor and a cannon on your car, doesn’t mean you should. Software is the same. You could add ten more features than you need, but most likely you shouldn’t.
In general, you should aim to remove complexity from your bespoke software, not add to it. The 80/20 rule definitely applies here. Try to find the 20% of features that will satisfy 80% of customer needs.
If your project is too complex, time-to-market becomes longer, and the costs grow larger. Complex software is harder to test and debug.
So make sure that you’re not adding complexity simply because you can. You should have a strong business case for all the elements, features and functionalities of your software.
There is so much new tech released all the time that it’s easy to forget about the good old familiar technologies.
If you want an easier life at work, be careful about choosing overhyped technologies in your projects. Sometimes this will mean talking to developers (or your outsourcing partner), and making sure you’re using reliable technologies. Other times the decision will be yours to make, and you’ll be making an effort to make sure your tech is reliable.
Boring tech is often a better choice than new, overhyped tech. As IT expert Dan McKinley put it, boring tech is good, because “it’s boring in the sense that it’s well understood. It’s bad, but you know why it’s bad. You can list all of the main ways it will let you down.”
If the reason for using a piece of technology is something along the lines of “because FAANGs are using it”, perhaps it’s better to choose something else.
You want to beat the competition to market, or just release your software as soon as possible. Understandable, you need to be fast in IT .
But it doesn’t mean you have to rush your decisions. The technology choices you make in the beginning will either save your time in the future, or create new problems for you.
There is a lot to consider, so take the time to work out the details by yourself and with your development partner, or work with a reputable software vendor that will guide you through choosing the right tech stack. In a lot of projects, DevOps specialists come in after the project is built to optimize software and business operations.
A good example of this would be going serverless, when in fact your custom software could benefit from being hosted on-premise at your organization. If you involve DevOps specialists from the start, you won’t have to wonder about these things, and you’ll avoid a lot of mishaps.
Maybe you don’t. But you probably do. Whether you’re building a market-facing product, or an in-house piece of software, a lot of optimization happens during the MVP stage. It’s a standard phase of the bespoke software development process.
Deciding on what the software solutions should do is one, but actually trying it out is a completely different thing. With a MVP development, you give yourself an opportunity to rethink things, and make changes before you commit to building the final product.
You might spend a while reworking the MVP. It’s far from time wasted, rather than a time well spent. You can validate if your product is worth pursuing before you spend too much on it, and make changes that will speed up the adoption of your software.
Oh brother, this is a good one - and a popular one! Like with dentists, software developers need to learn somewhere.
But when it comes to dentists, there’s a whole process in place that makes sure they don’t harm (too many) people. They go through years of arduous studies, followed by interning under the eye of a seasoned doctor, and then constant training in order to keep up with new standards.
Software development is a bit different. With all the coding boot camps and courses available online, you might find yourself between choosing a self-taught developer with 2 years of experience, and a college-educated senior developer with 10 years of experience.
Should you save money and go with the junior? That depends. Do you prefer to go to young, inexperienced dentists when your teeth hurt?
It’s not that you should only ever work with senior programmers. It’s more about being careful where you cut costs on your software solution. You don’t want to be cheap when it comes to software development team.
Expert developers have spent enough time, and worked on enough projects to code quickly and with better quality. The initially higher cost of seniors might as well turn out to be cheaper long-term. Your developers won’t have to learn on-the-go, and their choices might lead to many efficiencies you’ll benefit from later on.
Do you want beautiful software, or software that works beautifully?
We all want both.
All great software has just the right mix of both of these qualities.
It’s hard to appreciate the design if the software is buggy. And even the best products and business solutions in the world are designed against the laws of design. Take Facebook for example:
Experts say that it’s not designed properly. But it’s not designed to be beautiful at all costs, rather than for a specific function - to keep you scrolling. Some parts of it are even designed to be unpleasant to use, because Facebook doesn’t want you to use those parts too much.
Design is a set of rules that can be limiting, and some rules are meant to be broken - if you know why you’re breaking them. The design should be beautiful, but at the same time utilitarian, with great software underneath to complete the perfect user experience. Design and functionality need to work together, not against each other.
You can accomplish a lot with off-the-shelf solutions these days. Build web apps with no-code solutions like Bubble, connect different services with automation suites like Zapier, there are a lot of options.
Read more about: bespoke vs off-the-shelf software in part two of our bespoke software development guide
So there’s a chance that you don’t need custom software for your software projects, but a combination of off-the-shelf solutions.
Before you move on to bespoke software development, do some research to see if there’s a SaaS that fits your business needs.
This can be a great step towards building optimized, business-ready custom software, because it’s kind of like building an MVP. Use off-the-shelf solutions to create a prototype of the functionalities you need, and then it will be easier to define exactly what your custom software should do.
Shortage of programmers is still an issue, and it’s manageable as long as you’re open to working with people and companies from around the world.
In this industry, pretty much everyone knows English. There are a lot of ways to verify whether a development partner, or a freelancer is trustworthy or not. Time-zones are not an issue if you have decent management skills.
There is no reason at all to hire only locally. Software developers are masters of remote work. Plus, you can save a pretty penny by choosing high quality vendors from countries with lower costs of living.
Read the case study about custom software development for our client - Willard.
You’ve probably heard of the problems that CD Projekt Red had when releasing their flagship title, Cyberpunk 2077.
Allegedly, developers knew that the game wasn’t 100% ready. But the management team pushed them to release it anyway.
What followed was an ugly storm of bashing from the media and the people who were unhappy with the game.
For a company with so much money and industry experience, how could they make such a newbie mistake?
They didn’t test the game enough, and released it in order to capitalize on the marketing hype. In the process, managers stressed out a lot of developers, and forced them to work overtime in order to fix their rookie management mistakes.
Even though a lot of people were happy with Cyberpunk, and over time the game will get better, the company still lost big. Trust is built over years and lost in minutes, and CD Projekt Red’s reputation was seriously hurt due to this situation. Plus, their stock price plummeted. All of this could’ve been easily avoided with extensive testing and extending the launch until the game was finished.
So, if you’re launching a new product, or an internal tool in your company, you best make sure that it’s properly tested before it reaches end users.
If software is buggy and complicated, users won’t bother trying to use it, and the project might become a failure.
As you can see, IT projects often fail because of management mistakes - and these are not mistakes that a software developer makes while coding.
Stress, tight deadlines, responsibility to stakeholders, all these things might cloud your judgement when you’re managing a project.
Custom software development may be time consuming. You might be tempted to rush things, to make decisions without researching your options, to do things the easy way, to save costs in the wrong places.
Take your time to make the right decisions, and don’t rush it. Slow & steady wins the game.
You can always use the expertise of a renowned software development company, where development team has been through countless situations. Doing every part of the project on your own might lead to inefficiencies you don’t want to deal with, at all stages.
Need help with bespoke software development? Get in touch!