Remember my list from last week?
- Know where you are (Current situation)
- Know where you are going (Target situation)
- How to eat an elephant
- Ownership and commitment
- Process first, then tools
Today: Process first, then toolsWe often identify tools to support the improvements we make, but the key here is that the process identifies needs for tools – not the opposite. Maybe a certain tool is given e.g. a certain test management tool is mandatory within the project. But we can still customize the tool to fit the process – not the opposite.
Involvement and ownership is again important here - involve the team and relevant stakeholders when identifying the needs for a tool; what value do we want from the tool, what requirements do we have. E.g. when evaluating a test management tool; Do we have requirements for traceability to requirements/user stories? is it easy to access (yes I know this is not a testable requirement :-)), can we make the overview we need for our testcases? I don't in any way think you should write a requirement specification, but at least write down some checkpoints which are crucial for you (I think we had about 20 things) so that we evaluate the tools based on the same questions.
Evaluate several tools against the list, don't just take the one that comes first in a google search ;-) Talk to other testers, get inspiration from them - what tools do they use. I prefer getting my recommendations from people using the tools rather than people selling them :-)
At my current assignment we evaluated 5 or 6 different lightweight test management tools and ended up with two that we presented to the test team, from that we did our final selection.
This is one of the places where I would recommend the use of pilots; don't start introducing a tool using a big bang approach "as of tomorrow the entire organization will be using tool X to ensure test case management." We had a small project we could try it out with first, setting it up for them, introducing it and of course supporting the use during the first release. We also created a sandbox project that everybody had access to, thereby giving the people a playing ground where they could learn without being scared of ruining stuff :-)
We of course did some tweaking during the first project to make it fit the project, but after that we could reuse most of the lessons learned to create a setup to the main project and thereafter new projects to come. This is not "one size fits all", we created a basic setup to start up with, so that new projects shouldn't start from a blank canvas, but of course the configurations were customized after their individual needs.
When implementing the tool as a part of introducing the part of the process it supports I think we need to focus on several things:
- Make the value of the tool visible - what will change and be easier?
- Ensure that sufficient introduction/training/information about the tool is given.
- Find ambassadors in the project, someone who can help advocate the tool if necessary, someone who is always present within the project rather than a distant support.
- Find super users in the project, again it is crucial that it is someone who is always present in the project so that help is close by.
- If possible - make your tools talk together! find tools that can do more than one thing :-) I our case we chose TestRail as a test management tool, and Jira for taskhandling and defect management - and for people it felt natural to work with the two together because of a good integration.