Project management is continually challenged with delivering the “right” solution, on-time and on-budget, with high quality.
In the face of typical project constraints and changing priorities, quality is sometimes sacrificed towards the end of the project for the sake of releasing on-time or to give the impression of conserving schedule and/or costs.
But more frequently, and often unintentionally, quality is sacrificed at the beginning of the project by not planning how to integrate testing throughout. This leads to the project realizing downstream costs that are far greater than necessary.
How can we avoid this?
“Shift-Left Testing”
The best time to catch bugs in the product is to do so before the code is even written. This leads to a staple recommendation when consulting with companies on how to improve their quality practices: involve testing earlier in your development processes.
“By combining development and quality assurance earlier and more deeply in your project plan, you can expand your testing program and reduce manpower and equipment needs.” – Larry Smith, Shift-Left Testing, 2001.
Successful project managers know you cannot leave testing as an afterthought when planning, or simply allocate a couple weeks for testing at the end of the project. That is a sure way to get an unhappy customer.
“Shift-Left” is an action-oriented watchword used in the software industry to remind us to involve testing in our upstream activities. Some typical examples include:
- Testing the requirements for “what-if’s”
- Testing the design for usability
- Designing and automating test cases in advance of the code
- Embedding automated testing into the continuous integration process
- Scaling up security and performance testing as integration progresses
As each project will likely pass through a set of common phases multiple times, we have the repeated opportunity to remove bugs early and more cheaply through these sorts of Verification and Validation (V&V) activities.
“Development, test and operations work together to plan, manage and execute automated and continuous testing to accelerate feedback to developers” – Paul Bahrs, Shift Left – Approach and Practices with IBM, 2014.
By requiring V&V participation from testing and downstream stakeholders during the current focus of activity, questions and issues can be raised and resolved quickly and relatively cheaply compared to if they were caught later in the project, or after release.
Shift-Left Again!
Requirements testing and other formal/informal static testing activities are great for eliminating errors and ambiguities, thereby reducing related problems later in the project. And, starting dynamic testing earlier reduces the traditional pressures at the end of the project. But, testing can go even further to aid project managers in running a successful project by getting actively involved in the actual project planning activities.
Fig 1: Common Test Activities for Each Release
Testing can aid project management in addressing complexity and dependency risks, scheduling resources so as to minimize the critical path, identifying and capitalizing on “dead time” in the project schedule, and defining testability requirements for under-the-hood functionality.
Furthermore, testing can present options for the test strategy based on quality criteria, risks, and project constraints such that stakeholders can make quality choices while being conscious of the trade-offs or opportunity costs.
3rd Time’s the Charm: If we “Shift-Left” one more time, we will find ourselves at the end of the previous release cycle. By considering what information would be useful or needed for the next release, testing can alter how it undertakes its activities – making contributing to the next release cycle that much more impactful.
Fig 2: Inputs for Planning the Next Release
And now, we are involving testing throughout each release and the overall software development lifecycle.
Manage Projects –with– Testing
It is rarely easy to complete your project on time, on budget, and with high quality. You can increase your likelihood of success by managing your project with testing.
“Testing helps managers manage their products…how much is actually there, how well is it working, what course corrections are needed and how much it will cost if they are not made.” – Cem Kaner, Testing is Critical in Development Process, 2013.
For each project, you must find the optimal mix of investment in upfront activities versus potential costs of inefficiency or failures later on. And, starting testing activities early is an effective way to catch small quality problems before they become big, more expensive, quality problems.
Aspire to a partnership relationship with testing as your trusted advisor.
The resulting collaboration will allow you to proactively manage the project, balance business needs and project constraints with quality goals, and leverage a powerful monitoring/reporting mechanism for informed decision making.
Delivering more truly successful projects to your customers.