For many years we relied upon straightforward application of data mining algorithms
 to learn quality predictors
from the artifacts  generated by a software project; see  
\cite{%
chen05,%
come96,%
dekhtyar04,%
fea02a,%
hameph95,%
hame93,%
hame94,%
jiang07,%
lum06,%
me00e,%
me00p,%
me00u,%
me02c,%
me02f,%
me02g,%
me02k,%
me02l,%
me02n,%
me03c,%
me03h,%
me03i,%
me03j,%
me03k,%
me03n,%
me03q,%
me03r,%
me04a,%
me04c,%
me04g,%
me04h,%
me05a,%
me05c,%
me05d,%
me06a,%
me06d,%
me06e,%
me06f,%
me07b,%
me07e,%
me07f,%
Ramakrishnan1995,%
RamMe1996%
}.
Based on all that work we make the following assertion:
\begin{quote} 
{\em There has been 
\underline{too much} emphasis on machine learning, and 
\underline{too little} attention
on the use of specific software engineering knowledge.}
\end{quote}
Decades of AI research into data mining have resulted
in automatic and rapid methods, which can be easily applied to the learning of software 
quality predictors.  While the current generation of detectors are demonstrably 
useful and better than current
industrial best practice~\cite{me06d,me07b}, we believe that these AI methods 
have hit a {\em performance ceiling};
i.e., some inherent upper bound on the amount
of information offered by, say, static code features when identifying modules which contain faults.
Hence,  we doubt that better quality predictors can be found just by trying better machine 
learning methods.

Specifically, we propose here a major change in the interaction between humans and machine learning
as they work together to build software models for quality prediction. 
While our proposal includes numerous techniques
taken from the AI literature, we intend to {\em significantly
augment} those methods with extensive software-expert-in-the-loop
interaction. That interaction should inject software engineering business knowledge 
into the AI methods.  We anticipate that enhancing the process of modeling by, 
for example,  project-specific cost-benefit trade-offs, reliability risks, the 
availability and the cost of collecting better features in the given environment, and better
ways to combine those features, will result in significant enhancements in software quality 
prediction.

