In the first of this 2-part series, we will look at the various inefficiencies that are faced by testers in a project team, and for the users of the software that we are helping to deliver.
No time to waste
You have probably heard of the 7 wastes (or 8 or even 9!) which focuses on reducing anything that does not add value within a system. This concept was developed at Toyota relating to manufacturing and later applied to software development practices in 2003.
When studying both principles, it is easy to see that this can also fit in very well with the tester mindset. It works for both for internal test processes within a project team, and for the external software that we are testing for our customers.
Arguably, time is the most difficult factor of the quality triangle to manage for the test team and can be a reason why deadlines are extended, or extra resources are given to a project, both of which increase the cost. Yes, it is possible to reduce the scope (or testing) of what can be delivered, but it is likely that some work will have been carried out towards this, from requirements analysis to test planning. It seems a little wasteful to throw away some work away that has been planned in, right?
To take this back down to basics, there are 3 key stages that the traditional Lean methodology evolves around:
- Eliminating Waste - Muri, Mura, Muda
- Continuous Improvement - Kaizen
- Delivering value to the customer
Testing for waste
Using the Japanese translations behind some key words employed at Toyota, we can identify what can cause waste during test activities in a team. The three types of waste, Muri, Mura and Muda have been shown to slow down production and efficiency. So, a Lean approach to Testing can be very useful to help reduce waste for testers, and therefore within the project team.
It is also possible to take a Lean approach when thinking about the product we are testing as part of a tester’s role is to think like a customer, and how they interact with the software using various personas.
In the context of testing, let us analyse some of the types of waste in terms of the Internal problems that testers face, and the External problems that customers unfortunately have to deal with.
Muri (overburden) This is unreasonable work that is imposed on people, the system and tooling.Internal Muri
- Working on processes not trained for
- Testing against unclear requirements
- Lack of necessary tools and equipment
- Pressure to work faster
- Being micro-managed
- Continuing to work around a problem
- Lack of organisation
- Working with an unreliable process
- Poor communication
- Continually fixing automation frameworks
- Over reporting
- Setting unrealistic deadlines
- Context switching
- Lack of empowerment and responsibility
- Red Tape
- Multiple clicks
- Information overload
- Cluttered screens
- Being unable to save progress
- Accessibility issues
- Usability issues
Working in an environment that pushes a team too much causes low morale, frustration and stress, which inevitably leads to mistakes, shortcuts, rework and late delivery. This lack of focus means that there is a danger that bugs will be missed, or not reported correctly. Software that is not intuitive can lead to confusion and annoyance for the customer and will get to a point where the user does not want to use the software, causing negative feedback, extra calls to the service desk and bad press.
Mura (Unevenness) This refers to the inconsistency and the irregular flow of work.Internal Mura
- Imbalance in team skills
- Disruptions due to company politics
- Inconsistent document stores
- Too many sources of truth
- Fluctuations in time to complete similar tasks
- Work items being different sizes
- People working at different paces
- People working harder than others
- Differing metrics and reporting requests from stakeholders
- Poor estimation
- Poorly designed workflows
- Inconsistent styling
- Varying functions
- Data bottlenecks
- Unstable performance issues
- Inefficient Data Processing
- Integration problems
These can be very disruptive in a team and is the reason why the pace can speed up or slow down, or there is downtime while waiting for other work to complete. Usually, a process slows down to the slowest or less experienced worker. Also, if there is a lack of developer standards or code is not reused, this causes extra effort in having to test duplicate code and functions that may have been created by different developers. Externally, customers may face data corruption and poor user experience, causing further frustrations.
This refers to waste by carrying out non-value-added activities.
These make up the wastes that were analysed at Toyota and the ones that are mostly recognised when thinking about Lean - Transport, Inventory, Motion, Waiting, Over-Processing, Overproduction and Defects. In context to testing activities, these 7 wastes can also be matched against the internal and external examples below.Internal Muda
- Leaving work partially completed
- Time spent being blocked
- Over planning tests
- Creating automation tests that add no value
- Unnecessary meetings
- Environment Setup times
- Non-effective planning
- Mismatch between skills and job
- Lengthy email chains
- Implementing multiple ways to access the same functionality
- Delivering functionality that is rarely used
- Producing documentation as a tick-box exercise
- Overcomplicated processes
- Storing unused records in database
- Lengthy loading times
- Lengthy submitting times
- Long-winded navigation
- Waiting for file or information retrieval
- Too many clicks
- Links to chunky documentation and help guides
- Delays in updates
- Re-keying duplicate information
- Unrequired functionality
- Customer found defects
These wastes contribute to the inefficiency of working in a team where a lack of leadership and collaboration causes wasted time, effort and energy on work that is not necessary or abandoned. A lack of test management and coordination means that testers are not energised and engaged on the right work. From a customer point of view, failing to meet their expectations causes yet more annoyance and a feeling that they have not been listened to.
So being wasteful does not just mean wasting time. It is also thinking about the value that testers are providing to the project team. We can do this by analysing each area of work to identify where changes can be made to increase productivity in the time that we have.
The second part of this 2-part series will provide some guidance on how a Lean approach to testing can help deal with some of the waste in a team. By focusing on key processes and Continuous Improvement, the point of demonstrating a Lean approach is to maximise value to the customer.