Have you ever found yourself spending more than you planned only because you tried to save money? Indeed, there are cases when people can choose something that is seemingly cheaper to cut down their expenses, but end up spending even more because the cheaper option didn’t meet their expectations.
When it comes to software development, there are many ways to cut corners. It can be by hiring software developers for less, saving resources on testing, or even skipping the discovery phase. Like, who needs product discovery, anyway? Well, any project that wants to avoid extra costs, in fact. You’ll be surprised how much less you can spend once your startup implements it.
Now, this isn’t just another self-promoting post from a software development company. It is a bitter story coming from JatApp‘s personal experience that made us add another unbreakable rule into our list, which is “No product discovery – no product development”. Tune in to hear our tale about the importance of proper planning.
How “shortcuts” led to budget blowouts
When one of our clients reached out to us, they already had the ready-made solution. But the code was poorly written and the app was no longer working as planned. Besides, it was a legacy solution built using the older version of Codeignitеr. Despite this, the customer was confident that writing the code from scratch was unnecessary, so we eventually agreed to move forward without running proper discovery.
To say that it was difficult to shake dust off the old code and make it work seamlessly in 2023 is to say nothing. Our software engineers spent long hours trying to understand and fix the code they didn’t write and even build the parts of the code themselves. What’s more, they were tasked to rewrite almost all NodeJS using PHP Laravel and refactor all queries related to MySQL (some of them were six lines long, which is a big eek for any competent programmer).
The situation wasn’t all roses for our client either. They had to deal with tech issues popping out now and then, as well as unexpected bills for extra development work. Believe it or not, by the end of the project, the budget spent on constant bug fixing would suffice for building a brand new app from scratch!
Still, it would be unfair that situations like ours happen quite rarely. In fact, many businesses fall into this trap, assuming that building something brand new would always cost much more than fixing what they already have. But this is not always the case, and that’s why it’s super important to conduct product discovery, weighing up all development approaches before making any decision.
How product discovery could have saved us and our client from the sticker shock
There’s no point in crying over spilled milk, but this project became a valuable lesson that taught us not to underestimate how important product discovery is. Had we conducted the proper product discovery, we could have avoided the following challenges:
Understanding the project needs
Most clients, who want to update their legacy solutions, just want to make minor changes to their software. And this is not only because they don’t want to splash out on development, but also because it’s kind of risky, business-wise.
Imagine your legacy software is your old sports car. You’ve been driving it for years, and you love it, but over time, it becomes clear that it needs some fixing. The problem is, you’re using this car, so placing it in the garage to see what you have to fix, while your neighbors continue driving and occupying the parking lots that belonged to you is not something you’d want to happen, wouldn’t you?
Just like you wouldn’t be happy about locking your beloved car in a garage, you may not want to place your business on hold to rewrite every line of code, while your competitors continue to gain market share. But the thing is that there are cases when it’s totally worth taking the risk, especially if the code is legacy, poorly written, or doesn’t align with the current guidelines. Making small changes to the legacy app, which was created in the pre-Agile and pre-cloud era, won’t make it competitive in today’s landscape, unfortunately. Such a system is like a ticking time bomb, waiting to explode with multiple security and performance issues.
But how can you possibly tell when it’s the case to revive and when to rewrite? The answer is quite simple – through the comprehensive discovery stage. In our case, it would allow us to offer the client a detailed tech assessment with possible issues that a full rewrite only can resolve. Having all information in hand, the client would have been able to make a more informed decision about the best path forward for their project.
Predicting possible risks
There’s this saying “The less you know, the better”. As a software development company, it’s our duty to warn you not to follow this rule by any means and change the “less” to “more”.
With proper product discovery, we could identify the risk of a technical debt (the cost of opting for a quick solution to a tech issue that might work for now, but is likely to contribute to operational and maintenance problems in the future). Having this information in place, our managers would identify the risk of possible overheads and time delays and inform the client before the start of the development phase.
Discovery could help us avoid another risk, which is the app’s functional limitations. As a result, it would become possible to timely identify poorly written code that limited our team’s ability to work with the app’s functionality and integrate it with newer systems in the future. But most importantly, it would mean no extra work for our development team and unexpected expenses for the client.
Quote of the day: better prepared than sorry
Even though we’re not accountable for mistakes previous developers made while working on the project, it was our responsibility to make sure that the client chose the most efficient way to achieve business goals. This case serves as a cautionary example that prompted us to reconsider our software development strategies. Now, whenever clients reach out to us, we insist on conducting thorough discovery, whether it’s for refactoring a legacy system or building a new app. Such an approach yielded some positive results, as our customers report being satisfied from working with us 99% of the time and say many positive things about our company on Clutch.
Contact us today to share your project details.