Building Software is a tedious process, building quality software is even harder.
Often times, the lack of a strong foundation results in immense frustration for Software Developers and stakeholders. To add to that, many Software vendors do not pick the right approach in building software. Many companies also rush through the process of developing a product in order to meet some ill-conceived timelines often dictated by stakeholders. All of these are recipes for disaster when building quality software.
Building quality software is an art that shouldn’t be rushed because it will only cause pain down the line.
Here at HT, we have build some amazing, high quality software for our customers in San Diego and the general Southern California region. Be it REST Based APIs, Web Applications, Mobile App or Desktop/Kiosk Applications, we’ve been there and done it all. Over time we’ve learned from our successes and some failures in what it is that allows us to build Quality Software.
Here are some proven strategies for Business owners, Entrepreneurs and Software Development Agencies to abide by if they want to see success in building software.
Quality Software Mantra 1 – What gets measured, gets improved
The first step in building Quality software involves identifying key metrics/performance indicators (KPIs) for your software even before you start the development process. Many startups have OKRs that they establish and religiously track in order to build a higher quality software.
The earlier you establish and measure your metrics, the better the chances are of your products being successful. Every app, software you build, is designed to solve a problem. Establishing key metrics around the problems you’re trying to solve is an effective way of building high quality software that people will love to use.
Quality Software Mantra 2 – SCRUM it all the way
SCRUM is a great way to develop quality software at a rapid pace as it allows building something that everyone can use from the beginning. Early feedback is the best form of feedback. This process lends itself into developing what is most important and eliminating everything that is not important.
Sticking to 2-week schedules to develop everything while continuously monitoring feedback and adapting your strategy accordingly is the only way to build something that sticks to the market’s existing needs. Throw away the 5-yr project plans, throw away your mindset of planning for more than 3-months in advance because if you don’t, competition will curb you to the corner. To learn more about Agile Development using SCRUM, read this book.
Quality Software Mantra 3 – VDD It
Wait what? VDD (or Value Driven Development) is a moniker we’ve created (or use a lot) to identify how our software should create value with each iteration. Each and every module we release to the masses should bring more value and hence allow it to market itself. Spending too much money on Marketing Dollars? You’re probably not building what creates value. Don’t know what creates value? Read No. 1 and No. 2 above.
Value Driven Development involves asking one and only one question: “Is what we are building adding value to our customers and improving our bottom line?” If the answer is no, try to stay away from building it. We have seen numerous customers build things that are not needed only to realize that they overlooked what was important and ran out of money to build it and hence, got stuck with a poor product.
Quality Software Mantra 4 – TDD It
This applies more towards engineering, but is so important. Agencies that don’t TDD, scare us. There is no way to quantify the quality of the software if we’re not measuring the quality of the software. One way to measure quality of software is to write tests first and then develop software. Test-Driven-Development, or TDD as it is so called, allows both developers and business owners to have a fail-safe effective way to check for bugs, avoid regressions, measure code coverage and therefore simplify the process of software development.
Sure it will cost you a little bit more, but it will save you the embarrassment of releasing software that constantly breaks. At HyperTrends, we do not take any new customers that want to rush with their products. Replacing Urgency with Importance is a surefire way to fail before you even start.
Quality Software Mantra 5 – Reuse. Reuse. Reuse
So many agencies and Software developers you come across want to build things from scratch. This not only adds bugs, but also hinders growth because you’re not using established and crowd-sourced Software Development aka Open Source.
Great software is a perfect amalgamation of borrowed/reusable components and stellar integration into existing product needs. Don’t build what is already out there. Reduce your risk by leveraging code and components that are available in the marketplace. For Ruby developers, maximize the use of Ruby GEMS, for .NET Developers, think Nuget and other open source software. Heck reuse open source sub-systems as much as possible, if you can’t reuse the entire stack, re-purpose.
There you have it, 5 things that we think are the most important when building software. Obviously, great software demands a great team and stellar execution, but we are assuming that you’ve already found that team that can help you. If not, reach out to us 🙂 and we’ll guide you.
Hope you enjoyed reading this post. If you’d like to read more, please subscribe!!