We hear this question sometimes, and it’s a fair assumption. After all, when we invest significant money in new products, from appliances to new to cars, we’re accustomed to receiving a warranty along with the purchase. So when we invest in a custom software application, why shouldn’t we receive a warranty then, too?
Unfortunately, building software isn’t like building a car.
When Ford releases a new vehicle, it’s only after millions of dollars and several years of research, development, and testing, and it manufactures hundreds or even thousands of cars at a time. They are designed and built identically (give or take a few add-on features), and they should all function identically. If one car turns out to have a faulty transmission or malfunctioning engine, it’s relatively easy for the manufacturer to swap out the bum part with any of the hundreds that are already made, waiting to be used.
Custom software is a different beast. While there may be similar concepts or components from one to another, every application is built from scratch according to each client’s unique specifications. While we may be able to use components from existing libraries or prior projects, there’s no assembly line to follow and no model to replicate. There’s nothing plug-and-play about it.
Because these are one-of-a-kind projects designed to solve specific business needs, the investment in R&D and testing required to credibly provide warranties for individual projects would make those projects prohibitively expensive — not to mention time consuming. No organization wants to wait three years to release its custom application while the developers are conducting research. The business world is too fast-paced for that.
Imagine a customer asking a mechanic to build a Mercedes from scratch. He can use other cars for reference, and he may even be able to use parts, like carburetors or windshield wipers, from other cars. But there are no readymade blueprints or assembly instructions. He’s got to design the product from the ground up. And the customer wants the car in eight weeks. Even the most qualified mechanic would hesitate to warrant that vehicle. The risk is just too great, and the product too untested.
So How Can We Guarantee High-Quality Software?
Software developers’ “warranties” may not work like car warranties, but vendors are still obligated to deliver software that functions properly and meets the client’s goals. Any software developers worth their salt have a wide range of quality controls in place. Three of the most important are qualified engineers, quality assurance, and user testing.
- Qualified Engineers: The best developers are detail-oriented, creative problem solvers who are experts in multiple coding languages. At Algothic, we hire engineers with computer science degrees from world-class universities, but a prestigious degree isn’t enough. We make sure our team keeps learning and stays up-to-date on the latest trends and innovations in software development.
- Quality Assurance: I cannot stress enough how important it is to separate quality assurance from development. While the developer is focused on creating a software project, a separate QA engineer should be looking for deficiencies or errors. That way, multiple experts check each line of code.
- User Acceptance Testing: After an application has been fully vetted and tested in-house, the customer tests it thoroughly, himself, making sure it works as envisioned, meets requirements, and achieves the desired goals.
Is There Room for Error?
Yes, but you’re not on your own.
Where there is human labor, there is almost always human error. There will be glitches and deficiencies in the code. We can catch most of them during development, but bugs will inevitably reveal themselves here and there once the software is fully in use, in rare, untested scenarios or as the results of other changes made within the application.
Of course, we could create even more rigorous testing processes — and in some cases, such as financial services applications that require extra layers of security or client-facing apps that drive a company’s reputation, that makes sense — but at a certain point the law of diminishing returns kicks in, and the miniscule improvements aren’t worth the extra cost to the customer.
We know that a custom software project is a significant investment, and we understand why customers want some sort of assurance that the final product will function perfectly 100 percent of the time. The good news is that, even though our mechanisms for ensuring quality are different from the traditional product warranties you might expect, we won’t just hand over your new app and walk away. A good vendor is a business partner that will work with customers on an ongoing basis to monitor the software, preventing foreseeable glitches and fixing any that appear.
If you’re interested in learning more about how Algothic partners with customers to develop and maintain high quality, custom software to help them reach their unique business goals, e-mail us at contact@algothic.com.