Priority
Priority is a value assigned to a task, process, or item that determines its relative importance or urgency. In computing, it dictates the order of access to resources like the CPU. In project management, it guides the sequence of work to maximize value delivery.
First used·1950s
Definitions·3
Synonyms·5
Category·Project Management
Also known as
Definitions
What it means.
- 01
Priority in Operating Systems
In the context of operating systems, priority refers to a numerical value assigned to a process or thread by the scheduler. This value determines the order of execution when multiple processes are ready to run. Processes with a higher priority are granted access to the CPU before processes with a lower priority.
This system is crucial for multitasking environments to ensure that critical system tasks and time-sensitive applications (like video playback) receive the necessary processing time. Schedulers may use preemptive priority scheduling, where a higher-priority process can interrupt a currently running lower-priority process. A potential issue in this system is 'priority inversion,' where a low-priority task holding a resource needed by a high-priority task can block it indefinitely.
- 02
Priority in Project Management
Within project management and agile software development, priority defines the relative importance of tasks, features, or user stories. It is a key tool for sequencing work to maximize value delivery. The product owner or project manager assigns a rank to items in a backlog based on factors like business value, customer demand, risk, cost of delay, and dependencies.
Common prioritization techniques include MoSCoW (Must have, Should have, Could have, Won't have), stack ranking, and value vs. effort matrices. Effective prioritization ensures that the most critical work is completed first, aligning development efforts with strategic goals and stakeholder expectations.
- 03
Priority in Data Structures
In computer science, priority is a core concept in the 'Priority Queue' abstract data type. A priority queue is a collection of elements where each element has an associated priority. Unlike a standard queue (First-In, First-Out), elements are dequeued based on their precedence.
An element with a high priority is served before an element with a low priority. If two elements have the same priority, their relative order is typically based on their position in the queue. Priority queues are commonly implemented using a data structure called a heap and are fundamental to many algorithms, such as Dijkstra's shortest path algorithm and Huffman coding.
Origin
Where it comes from.
Etymology
The term 'priority' originates from the Late Latin word 'prioritas', meaning 'the state of being prior or first'. This is derived from the Latin 'prior', which means 'former, first, preceding'. Its use signifies something that takes precedence over others in time, order, or importance.
Historical context
The concept of assigning importance to tasks is ancient, but its formal application in technology and management is more recent. In the mid-20th century, management theories like the Eisenhower Matrix (popularized by President Dwight D. Eisenhower) provided frameworks for categorizing tasks by urgency and importance.
With the advent of computing in the 1950s and 1960s, the concept of priority became essential for managing limited CPU resources. Early time-sharing operating systems, like the Compatible Time-Sharing System (CTSS) and Multics, implemented priority-based scheduling algorithms to ensure that critical system processes were not starved of resources by user applications.
Later, the concept was extended to computer networking in the form of Quality of Service (QoS), where network packets are assigned a priority to ensure that real-time data like voice and video streams are transmitted with minimal delay. In modern software development, the rise of Agile methodologies in the early 2000s placed a heavy emphasis on prioritization as a core practice for managing product backlogs and delivering value iteratively.
Usage
In context.
In the operating system, the scheduler increased the priority of the video rendering process to ensure smooth playback.
During sprint planning, the team agreed that fixing the login bug had the highest urgency and should be addressed first.
The network router uses Quality of Service rules to give precedence to voice traffic over file downloads.
The product manager is responsible for setting the rank of user stories in the backlog to guide the development team's focus.
FAQ
Common questions.
In software development and testing, Priority and Severity are distinct concepts.
Priority relates to business impact and scheduling. It answers the question, 'How soon should this be fixed?'. It is typically determined by the product manager or project owner.
Severity relates to the technical impact of the bug on the application. It answers the question, 'How much does this break the system?'. It is usually determined by the QA engineer or developer.
For example, a typo in the company's name on the homepage is a low-severity bug (it doesn't break functionality) but a high-priority fix (it impacts brand image). Conversely, a feature that crashes the application under very rare and obscure conditions is a high-severity bug but may be assigned a low priority to fix.
Taxonomy
Filed under.
Categories
Tags