blog
Software Delivery – Invest Your Time Wisely
Time is one of our most valuable currencies. Unfortunately, sometimes it is not well spent in the world of software delivery. But there are ways that we can use our time more effectively to gain better results.
By Stephen Johnson, CEO - Roq
Software applications are used for a multitude of purposes, all with varying levels of dependency and risk for the businesses. Mission-critical applications such as banking applications, emergency health services, transport, and so on, carry great risk, with wider-reaching consequences if something fails – even the risk of human life in some cases.
Additionally, as organisations become even more dependent on technology platforms and complex infrastructure to help streamline business processes and provide an outstanding customer experience, they will need reliable and experientially rich software. In retail, for example, the ability to understand customer buying habits, make informed purchase suggestions, create loyalty and of course, make it seamless to pay for items correctly, is absolutely essential. In a world where every penny counts, businesses can’t afford any loss of income and need to maximise their sales opportunities. Being able to deliver new and high-quality features, that outsmart your competitors, is crucial to staying the course.
However, with all this mounting pressure on quality, organisations are having to deliver this at breakneck speed. There are lots of ways to deliver quality at speed, but this article, highlights three areas that can be achieved by everyone.
Use a risk-based approach
If you have a list in front of you, of things that you need to do for the day, it would be pretty silly to just start from the top. The smart thing to do would be to prioritise and do the things that are most important. It is the same with risk-based testing. Where there is limited time and resources, there is no other choice but to execute the tests which focus on the areas of most importance and risk to your business. This should apply across your manual, security, operational, performance, and test automation strategies.
It is important to work in collaboration with the business to carry out rigorous risk analysis early, to ensure they buy into this approach. You can then start to plan your time effectively, knowing also, that you can adapt quickly if other factors start to influence the looming delivery date. This enables on-time delivery, but mitigates as much risk as possible.
Top Tip: Look to see if your core regression packs are risk-based. They typically evolve over time, have loose ownership, and very seldom will you have assessed the business value they are offering. You are likely to find a regression pack that is costly to maintain and execute and serves little value in mitigating business risk.
Test earlier
The earlier in the lifecycle you test, the better. The later in the lifecycle that you find defects, the more costly they are to fix in time and therefore, money (we’ll be talking about this in some more detail in a follow-on opinion piece – watch out for it).
There are many things that we can do from the outset to save time later down the line. One thing that can make a real difference is focusing on the test automation pyramid. Firstly, start by performing tests at the unit layer, which is often done by developers whilst they code. The most important part, which is often overlooked, is testing at the API level, whether that be functional, performance, security or integration. This part is crucial because these tests can be performed earlier in the lifecycle, as soon as the logic is designed and prevents issues before they become a bigger problem. The final part of the pyramid is testing at the UI layer which can only be completed once the front end is complete. Testing each of these layers is a vital part of development, particularly API Testing, as this can streamline the whole process.
Top Tip: There are many API testing tools on the market which can help you, take a look at some great open-source ones which could also help keep costs to a minimum, such as REST-Assured, Postman and SOAP-UI.
Be smart with your execution time
As we mentioned earlier, time is precious so we must ensure that we make the most of it. There are many things that we can do to further increase the speed of delivery throughout testing, which ultimately drive quality. A few to consider are:
Parallel Execution – where appropriate, you can run several automated regression packs at the same time to gain feedback on changes even quicker
Exploratory Testing – by automating tests, this frees up time to explore the software as a user would, which will likely improve quality and create a better user experience.
Top Tip: Crowdsourcing – we have seen organisation leverage the use of crowdsourcing to cover real high volumes across a global scale over a short time-period. It is an option to consider for wide scale exploratory / user testing
A common theme…
There are many more ways that we can help to preserve time and be more efficient with our efforts when it comes to delivering software. These are just some ideas we believe will be useful. But there is a common theme here. A lot of the things which save time in the long run, require an investment upfront. Unfortunately, many organisations are keen on cutting corners, to try to get places faster. Nine times out of ten, that can often end up hurting you. Invest your time wisely upfront and you will see the benefits.
If you would like to share any tips on improving software delivery, and quality as a whole then please get in touch.