One thing which programmers know all to well is that those who will be using the software that the design will in fact always want more. Usually this occurs at the first face-to-face meeting with the end user or company providing such solutions to that end user. Those who are working closely with these programmers need to stay within bounds to prevent the cost over runs that often occur, yet also discuss possible futures and uses of the decision making software.
Scalability is very important, as there will always be future needs. One question, which often needs to be asked is: How many criteria can your system take? This is because more systems maybe developed along the way and further criteria, due to "Feature Creep" and thus will need to be added to serve the users "wants, needs and desires."
Users and programmers who fail to ask such questions will find themselves with implementation delays, unworkable systems and software, which becomes obsolete rather quickly. This serves neither the programmers deigning the system or the user, company or agency, which intends to have a bullet proof system, one which is truly able to render good decisions based on the most important of data. We see all too often millions of dollars spent on artificial intelligent software systems, which serves no real purpose for the user and actually complicates the process and is more often then not, completely ignored. Think on this.
"Lance Winslow" - Online Think Tank forum board. If you have innovative thoughts and unique perspectives, come think with Lance; http://www.WorldThinkTank.net/wttbbs/