Whenever I analyze and design, I ask the user what he does the most frequently. The process that user does most frequently is to be automated first. Then next frequently etc. And I find that it applies to every other aspects of software design. * Automate most frequently executed process. * Make efficient implementation of most frequently used code. * Make it easier for the user to use most frequently used functionality. * Provide flexibility and simplicity to the most frequently used code. * Standardize most frequently used protocol. * etc. So, put maximum efforts where it is used most frequently. -- VhIndukumar ''It's a very simple form of cost benefit analysis, but often suffices.'' Also known as OptimizeForTheCommonCase