Transparent Defect Tracking
Defects are a fact of life, and working on them can take up a large portion of your day. One way to become more efficient is to automate the routing of defects from one person to another.
If you work for a medium-to large development organization, you probably have guidelines for defect turn time. You also have policy documents that define different severity levels and what constitutes a bug versus an enhancement. If you have multiple customers, the turn time and the review process might vary from project to project.
If you work on several projects, you can waste lots of time reviewing procedures and prioritizing your work instead of working on code. Face it, if you wanted to route action items and manage timelines, you would have become a project manager, not a programmer.
To spend less time organizing and routing items, you can create an auto-assignment rule to route new defects to the appropriate development lead based on client. You can take this a step further and automate the workflow so that defects are escalated to right person based on the severity, open date, and other criteria. You are automatically notified when you need to take action on a defect so you can keep working rather than mulling over your to-do list.
Another way to reduce manual defect tracking tasks is to link defects together to create contingencies. Several defects may add up to fix a larger problem or to constitute a block of functionality. You can save yourself headaches and rework by creating links between items to prevent you or someone else from fixing defects in the wrong order.
You can also create separate workflows for individual clients. This is especially helpful if a customer must review your changes before they are implemented. You can define a customer review state in the workflow that automatically assigns the defect to the appropriate person. The defect moves through that review process without your involvement while you work on issues for other clients. If the customer contact changes, you update the name in one place and all the defects are directed to the new person.
True Transparency: Automating Across Processes
Automating one function or area is great, but true transparency and improved efficiency comes from fully integrating the different areas of your development process. Defect tracking and source code management are perfect candidates for integration.
When you fix a defect with a code change, you make a note in the defect about what files changed. You also enter a comment when checking the files in. Making these types of notes in two systems is a waste of time. If the two systems are integrated, you speed things up while improving your audit trail.
If defects drive your daily activities, you want to do as much work in the defect tracking system as possible. Being able to check out and attach source code files from within the defect tracking system can make a huge difference. It is also easier to see exactly what code changed to fix the defect. From the defect system, anyone can see a description of the problem, the different workflow events, and the files that were affected by the change. Because the code and defect are linked, you can see the defect activity just as easily from the source code system.
Conclusion
Without a doubt, an ALM process is essential, but none of us would get much done if we had to spend our days concentrating on the next step in the process. When your process is transparent, you're not aware that it's there. The right things happen at the right time. Instead of managing action items, you are free to focus on designing and coding.