From Raganwald, a great essay about writing business software - I like an essay that makes me nod by head in agreement in almost every sentence.
...software in business is a kind of documentation for business processes! Business processes are often these gnarly heaps of rules with massive omissions, contradictions, and bits where what people say they do has no relation to what actually happens. Writing a piece of software to augment or automate the process forces people to think hard about the process.I agree - the most difficult phase of a software project is the early steps where you sit down with the business people and try to figure out what's going on.In my experience, good managers know this. Quite often, the real motivation in automating a business process is as an indirect way to force this review. This is why writing business software is called consulting. This is why it rarely works well when outsourced to a firm in another time zone: the problem is not writing 50,000 lines of Java. Nor is the problem writing 7,500 lines of Ruby.
The problem is exactly the same problem as writing documentation for a feature: The problem is realizing that if the software to automate a business process is complicated and contradictory and hard to use, then the real cause is a business process that is complicated and contradictory and probably not serving the company well.
I've always found the best way to do this is to get three people together in the same room: the programmer, the boss, and the person who actually does the process in question. Most software is designed with lots of meetings between the programmer and the boss - but without that third person present you're just building castles in the sky. On the other hand if you're just meeting with the person who does the work, they might give reasons for awkward processes as "well, that's how we've been told to do it" - bringing in a boss who has power to change processes to fit in with the software can really help.
Also, it's often interesting to have bosses sharing meetings as equals with rank-and-file staff.