When developing software there are many things that need to be done: features, bugs, testing, etc. and not all of them have the same priority. So how does one know what to do next? I would like to proposed a simple system of prioritizing development work.
Classification
There are 2 main types of tasks assigned to developers:
A bug
A feature
Sometimes a bug is a feature, but that is another story. So all tasks should be assigned or related to fixing a bug or developing a feature. If you working on something that is not linked to a bug or an official feature you are probably working on something that no one cares about and should think again about what need to do.
Bug Types
Showstopper
A problem that directly prevents or seriously hinders your client/clients from using the software
Urgent/Critical
A problem that seriously diminish the client's experience and abilities when using the software compared to a version without the problem
High
A problem that prevents your client/clients from using a feature/features but can still receive value from other of the software's functionality
Medium
A problem that "annoys" your client/clients when using the software
Low
A minor issue that is noticeable by a small number of users but overall does not reduce the software's value to your client/clients
Feature importance should be determined by product owners and client/clients
Priorities
1) Showstopper
Bugs/Issues of this type should be addressed immediately as in "drop everything and handle it"
2) Urgent/Critical
Bugs/Issues of this type should be inserted to the current development cycle and the fixes should be released in the next update (hopefully you are working in an Agile environment, continuous delivery, so it should be a matter of days/hours to the next update)
3) High
Bugs/Issues of this type must be part of the work plan for the next version release
4) Medium
Bugs/Issues of this type should be "fix at the first opportunity". When you are planning your development tasks and activities you should consider including some of the medium bugs. If you find that you are unable to include medium bugs in your plans for multiple cycles, it could be an indicator of: low quality (there are always higher priority bugs that need attention), lack of resources (all resources are tied up in the development of important features), nobody cares about these issues (a low priority bug/issue that was miss labeled) or a mix of these reasons.
5) Low
Issues that are not important enough to waste resources on fixing them. they are tracked as "known issues" that someday will be addressed (probably in the "2.0" version of the software)
Feature importance should be determined by product owners and client/clients. It is up to the product and the development managements to discuss all bugs and features and classify them to clarify the goals of each development cycle.
This system of classification and priorities provides clarity and transparency throughout an R&D organization and helps focus the efforts on the important stuff.
Commentaires