We’ve all heard how a substantial number of software projects fail or are cancelled routinely. For years developers have said if only the requirements were right, the software would have worked right. Intuitively we all understand that the better the user community (business users in many cases) can get the product defined the more likely the software will work. Agile processes and methodologies insist that the best way to do this is to show early and show often the fruits of the development labor but hold back on writing pages and pages of specifications.
A new category of software, known as prototyping, application simulation, or application modeling tools, allow end users to create quick prototypes and workflows that can be handed to developers to do the actual coding.
A while back I recommended taking a look at Axure but recently I’ve seen another one that I like just called Balsamiq Mockups. I still like Axure a bit more because of the artifacts it generates and it’s overall much more sophisticated but Balsamiq also does a great job and has an XML format that developers can use for generating the artifacts themselves.
If you can actually get your end users or business customer helping define your custom projects using a prototyping or simulation tool almost any amount of money is worth the investment if your projects are important.