Is quality software a luxury?
That's a bit of a puzzle, and I'll do my best to give you my perspective as both a software engineer and a business owner.
If you had asked me this a few years ago, I would have confidently said that quality software is not just a nice-to-have; it's absolutely necessary. But that's the software engineer in me talking – always aiming for the best performance and efficiency. Back then, I'd put time into refining and maintaining projects without focusing on other business aspects.
But if you were to ask me today, my response would have a different twist: yes, quality software is a luxury, but it really shouldn't be. Why? Well, software is woven into every part of our lives, and if it's done poorly, it can end up costing you a pretty penny – in terms of money, time, and sometimes even your own life.
Take the example of Boeing and their MCAS system: they decided to go with a cheaper software team ($9 per hour), and the result was two catastrophic crashes of the 737 MAX, resulting in the loss of all 346 passengers and crew members on both flights.
Now, think about it this way: would you trust a cheaper software team to create the software for a life-saving device like a pacemaker? Probably not.
In the world of software, going the cheap route can lead to a host of problems:
- Initial costs might be lower, but down the line, expenses can spiral out of control.
- Scalability becomes an issue because the foundation isn't solid.
- Security vulnerabilities and bugs become more likely.
At Pale Blue, we live by our principles, and delivering a top-notch solution to our clients is our utmost priority. However, sometimes our clients are startups working with tight budgets or established companies looking to dip their toes into the market before diving in headfirst.
So, how do we handle this challenge? We focus on building a strong foundation for the project that can be expanded upon later without needing to redo everything:
- We write testable code (which can be time-consuming) but we leave more detailed testing for a later phase.
- We use software modularity to avoid repeating the same setup steps for each project.
- We explore solutions like KMP that allow us to share features across platforms without sacrificing quality.
- We break the project into smaller phases, enabling us to quickly identify and correct any issues.
- We embrace cutting-edge technologies like Jetpack Compose and SwiftUI to speed up development.
Even if a project is small, we treat it like a skyscraper with a few initial floors. We lay down a solid foundation and design it to scale as needed.
In a nutshell, having top-notch software quality isn't just a fancy extra—it's a must-have. Just like strict rules and standards are crucial when building skyscrapers, the same idea applies to software engineering. This isn't only important in fields like healthcare and aerospace; it's something all industries should prioritize. Why? Because it's a smart way to save money and be efficient in any type of business.