With any project, you’ll start out with research, discussions with stakeholders or clients, and setting of goals and high level priorities. This will inevitably generate more questions than answers. The challenge is keeping track of them and getting closure for each, but some could take weeks or even months and depend on additional research and input from other team members.
How do you manage all of the questions and ideas? You could use email, but then you end up with a distributed thread that’s difficult to search and almost impossible to mark as “resolved.” You could use a spreadsheet or todo list, but those aren’t designed to capture conversations and thought process. Enter issue tracking.
Imagine kicking off a project by brainstorming questions, concerns, fears, ideas, and more. Now imagine assigning each of those to the best person for the job to drive the conversation and arrive at a resolution. Then, once everything is done, you now have all of the answers as well as the whole conversation captured for posterity.
The goal for planning is to reduce risks and unknowns. You may be choosing a technology stack, or you may even be debating which type of application is right for your particular challenges. At this point, issue tracking can help you log and record questions, concerns, decisions, and other relevant bits to minimize the unknowns in the later steps.
Issue tracking provides a framework for discovery and resolution. It helps teams have directed conversations about business requirements so that they can move toward an initial resolution, and ultimately, agreement by everyone involved.
Like brainstorming, the first step of issue tracking is to capture everything. If something turns out to be a duplicate or impractical, it can be closed with a short explanation and just like that it’s off the radar. So, whether it’s a question, task, fear, concern, idea, or anything, record liberally. It’s just like brainstorming. There’s no such thing as bad issues.
Once the issue tracker is populated, the project manager and client/stakeholder should go through the results to prioritize and assign the work. Related issues can be merged. Outlandish ideas can be closed, with a good explanation of course. And the remaining issues will direct the next batch of work. In some cases, the issues will also help identify additional domain experts that need to be pulled into the process.
During this process, you must be ruthless about closing issues that are not truly important and about clarifying issues in a way that enables them to be resolved. If an issue is too poorly defined, it can turn into a wild goose chase of wasted effort. Just as scope needs to be cut during development, closing issues at this point can be just as effective in trimming time and keeping scope under control.
Once everything is sorted and prioritized, the real work starts. Team members can begin researching the issues and having open discussions with other team members to work towards resolutions. Some of the conversations will drag on, go back and forth, and may even spawn new issues.
Watch out for lingering issues. If an issue seems to be dragging on, it should raise red flags that it’s either poorly defined or that someone needs to step in and make a decision. Zombie issues
Issue tracking supports focused and collaborative decision-making. Brainstorming is good, but without a framework to encourage resolutions, items can linger indefinitely or even get lost only to be brought up at an inconvenient point in the project.
While resolutions are important, the big benefit of issue tracking is the difference between resolved and closed. “Resolved” implies that a decision is made. “Closed” implies that the key people agree and approved that decision. This could be as simple as needing budget for additional research or as complex as an architectural decision. Alternatively, “Closed” for your team could mean that the resulting requirement has been captured elsewhere. Just remember, issues aren’t “done” until they’re closed.
The process is straightforward. In some cases it may feel like overkill, but by following the process, you’ll be laying the groundwork for quality. The benefits will quickly start to reveal themselves once development begins.
Like any other kind of work, issues have different priorities, and you’ll want to prioritize the initial effort to resolve issues. At the end of the process, some issues may not have been resolved. The fact that those issues are still open will help identify problem issues. If issues are hard to lock down at this phase, that should be a huge red flag. Issues that aren’t resolved either weren’t truly important or will be truly difficult to define and thus implement. And with issue tracking, you’ll have a well-defined discrete list of pending challenges.
Deliberate Decisions & Reference
All too often decisions are made in hallway or deskside discussions. These are often made in a hurry or on a whim. The thought process isn’t documented, and knowledge is lost. It’s unavoidable that ideas and opinions evolve as a project goes further along. Everyone on the team is gaining insight, wrapping their head around different pieces of the project, and starting to think about execution. The result is that you occasionally have to revisit decisions. “Why did we decide that?” “Could we do it this way instead?”
If your discussions and thoughts are all recorded in a searchable issue tracker, those questions go from reinventing the wheel to just reading up to refresh your memory. Having your original discussions available for reference can help mitigate any waffling or difficulty adapting old decisions to new constraints.
In our own process, we almost never send email directly. Instead anything that needs a response is logged as an issue so that we have a resolution and assignment-centric way of resolving the issue. Of course, most tools will automatically send notifications. You don’t lose the benefit of email. You simply gain the benefit of having a centralized list of issues that’s accessible to the entire team.
The best way to get something done is through accountability. Issue tracking gives you accountability with collaboration. It’s a way to explicitly assign the otherwise organic and disorganized tasks that are the output of a kickoff meeting or brainstorming session. Issue tracking will help you get from an organic mess of ideas to a well-defined and documented set of decisions.
The early days of a project are the least well-defined. It’s often difficult to stay focused on resolving problems and beginning to move into designing and writing code. At a kickoff meeting, items might be captured on a whiteboard and then emailed out to the attendees as a list, but that doesn’t encourage action.
By leaning on an issue tracker, it’s easier to ensure that each person can focus on their individual tasks but also pull in experts on a given topic as needed. This helps people focus on the issues within their direct control without distracting them with peripheral issues. It also helps give each issue a place for action and a clear way to determine if it’s done it or not.
Lay the Groundwork for Testing
One of the biggest challenges of bug tracking is getting your non-technical team members to use a bug tracker. Using a simpler bug tracker can help, but it’s still a new tool, and emailing bug reports is still the default behavior for non-technical folks. By using an issue tracker to kick things off, you’re getting the non-technical team members familiar with a tool outside of context of technical problems.
This way, once you start manual testing, the key team members are already familiar with both the tool and the process. They’ll be more comfortable with the bug tracker, and it will be second nature for them to use it when reporting bugs later.
Wrapping Up Planning
The line between planning and creating is rarely well-defined. There will be a point where the key issues will be resolved and the team can start moving forward, and you shouldn’t worry about resolving every issue before that happens. Some issues will linger into later phases without affecting delivery, and that’s to be expected. You should, however, stay mindful that an issue dragging on without a resolution may be a sign that it really isn’t important and should be resolved as such.
Transitioning into design and development is usually an easier and more organic transition than the others, but it's can still help to draw a line in the sand to make it clear that work is underway. This doesn't shut down capturing of issues or new ideas, but it does help shift the focus to the next step of creating.