More resources are spent on maintaining software than for its development. Maintenance costs for large scale software systems can amount to somewhere between 40 and 67% of the total system life cycle cost. It is therefore important to manage maintenance costs, and to balance costs with benefits. Frequently this task is approached, at least in the literature, merely as a software cost estimation problem. Unfortunately, the creation of effort estimation models for maintenance – a primary requisite for cost calculation – has not yet been satisfactorily addressed. At the same time, project managers do not estimate costs first, but instead prioritize maintenance projects, trying to determine which projects to carry out (first) within their fixed budgets and resource capabilities. This essentially means that “cost estimation” is done qualitatively first before formal cost estimation techniques are employed. Recognizing the problems associated with standard, regression based estimation models, and focusing on the needs of software project managers, this research studied the process of project prioritization as an expert problem solving and decision making task, through concurrently taken (“think aloud”) protocols. Analysis of these protocols revealed that experts rarely make use of formal mathematical models to determine project priorities or resource needs, such as COCOMO or FPA, although project size is a key determinant of a project's priority. Instead, estimators qualitatively consider cost or value, urgency, and difficulty of a maintenance task, then prioritize projects accordingly, followed by a decision concerning further treatment of the problem. The process employs case based reasoning and the use of heuristics. While different experts may use different strategies, there exists great overlap in their overall prioritization procedure.