Software Development: When Slow and Steady Doesn’t Win the Race
Growing up, it’s likely you heard the well-known folktale about the race between the tortoise and the hare. The hare, moving so quickly, decides to take a nap during the race, which it turns out allows the tortoise to catch up and, ultimately, defeat the hare by crossing the finish line first. In theory, this sounds about right, and is a good practice in life. In software development, however, where the speed at which a market-ready product is delivered to end users matters, Aesop’s classic fable doesn’t necessarily apply.
In an industry where time really does equate to money, the amount of time it takes your product to make it into release is absolutely crucial. This also means, however, that you don’t want to speed up the software development life cycle just for the sake of it – you need to be intelligent about it. One of the ways in which to do this is through the QA and testing process. Unfortunately, without a better foundation in place, test execution can take a lot of time.
To keep up with today’s vigorous pace of software development, you need an approach that you can easily pick up and run with – one that will increase the speed of development, while ensuring a quality product at release. Here are four ways to achieve this:
1. People
It starts with people. Do an assessment of those you have chosen to put on your software development project. You want to make sure that the team you have put together will speed up the software development life cycle, not slow it down. Here are some factors to consider when evaluating your team:
• Do they have experience in the right kind of software for your project?
• Do they communicate well together?
• Are they not afraid to ask for help or the opinion of another?
• Will they self-teach when needed and remain open-minded to new ideas?
• Are they a “details person”?
2. Requirements
Poorly understood requirements can be a big hold up in the software development life cycle if they’re not clearly articulated. After all, how can you write an effective test plan or test case without fully comprehending the requirements? Be sure to leave out any contradictions and ambiguities. Additionally, see to it that nothing is omitted and that what is provided is written in an understandable and concise manner.
3. Testing Process
It is essential to have a very thorough and clear-cut outline of roles and processes when it comes to testing. Without this, there is an increased risk in miscommunication, design flaws and potential defects. With a defined plan of how to proceed throughout the software development life cycle, you can help reduce any chances of wasted energy and time amongst the team.
4. Testing Techniques
There are many testing techniques to consider, but one of them to focus on is parallelization. When we talk about speeding up the software development life cycle, increasing test coverage and execution time is a necessity. However, a single test can take a while to run. Take into account that you have many tests, and now you have a time killer on your hands. By running tests in parallel, you can speed up the feedback loop, increase productivity and test on more than one browser.