Capturing software specifications

Consider the HR department of a small organization. At some point they will need to organize their employees' records, and at that point they will face the traditional dilemma of purchasing an existing HR application or commissioning the creation of a custom-made one. If they choose the first approach, they will have to do extensive product comparison before settling on a system. If they choose the second one, they will have to go through a lengthy cycle of requirements gathering before the system can be built.

Thinking about it, the HR data model and processes don't really change from one company to the other. But somehow, each HR system has its own way of representing the same functionality. And no product implements every piece of functionality. So choosing an existing HR system or specifying requirements for a new one is more a complex activity today than the problem it is addressing.

The proposed solution is to create a collaborative environment where software systems are described in terms of their specifications. Sort of reverse-engineering the business and software requirements documents. A standard format should be used to encourage cross-referencing.

Is it legal? Dunno. Is it useful? Definitely: defining software specs will become much cheaper. Is it ethical? There is a lot of intellectual property vested in software specs - but in my opinion we should move on to more important things ;-)