I usually ask my customers about business priorities before a Microsoft Development Toolset presentation or discussion.  In most cases the response is something like 'must be on time', 'must come in under budget' or 'must be feature complete'.  Most vendors use the same trite phrases to promote their solutions - and the famous/infamous CHAOS report even assesses project outcomes based on these criteria.

So what is wrong with this?  There are more important criteria to consider - two in fact.

The first one is 'Quality'.  Quality is relative and sometimes difficult to measure but is more important than delivering substandard products on time or within budgets.

Even more important for the solution is 'to meet a business need'.  We often assume what we build is useful, but the statistics tell us otherwise: nearly half of the software we build is never used (45% according to the Standish Group).  Nothing matters if no one will use the product - not even quality!

So its time to reorganise our priorities and get past the platitudes.  Here is the list - in order of priorities ( you can swap around the last three bullet points :-) )

1.Must meet a business need
2.Must meet end user expectations
3.Should meet formal specifications
4.Should be feature complete
5.It would be nice to get it on time
6.It would be nice to get it within budgets