Definition of Priority Codes ( P0, P1, P2, P3, P4 ) in Technical Development


I thought this topic is clear, but I’ve run into this again very recently. Since so much conflicting information is going around, let’s iterate once again on what the priority codes should mean. I’m drawing this originally from Jira definitions¬† – I think that’s where i saw it first, and it is the most sensible.

  • P0 – the work stops, site is down
  • P1 – unblock someone else, required to be done before other things
  • P2 – ordinary flow of work
  • P3 – nice to have, but not required
  • P4 – informational only

I recently saw another definition coming from a more “senior” individual, and it almost made sense, until it didn’t. At which time I stopped and re-evaluated the definitions for myself, once again. The faulty definition was:

  • (DO NOT USE)
  • P0 – the work stops
  • P1 – the task affects customers
  • P2 – the task affects customers, but there is a non-technical workaround solution
  • P3 – the task doesn’t affect customers
  • P4 – informational / never used
  • (DO NOT USE)

The problem with the faulty definition is that everything is P1, and nothing can really be escalated to P0. P4 is completely useless, and junior PM’s and developers would usually create P3’s (the default in Jira), positioning themselves for a need to clarify or shift priorities, etc.

Another thing to note. The priority definitions are technical. They aren’t written with customers in mind – there are multiple layers between devs and customers, and the priority codes are for developers more than anyone else.

The default code is P2. If the work doesn’t need to be done, save the resources and time and don’t do it; change the priority to P3. If there is a change that a task needs to be done sooner rather than later, bump it to P1. And the P4 is effectively never used, because informational stuff resides in wikis and other communication channels..