Monday, March 4, 2013

Software project- explicit and implicit requirement and there relationship

Software is an interesting piece (set of instructions to complete tasks) as an outcome of human efforts to build it. It's really a virtual thing which can do wonders to improve the human life and makes the work routine more interesting and joyful. End user of the software is "generally" interested in the perfection of the job the software can do and achieve its objectives whereas it's hard to understand and explain the background activities involved in building a software which passes the following characteristics. Each of these characteristics have their own list of implied needs.

1. User Friendly
2. Accurate
3. High Performing
4. Scalable
5. Reliable
6. Follows Industry Standards (global
7. Security
8. Robust (Fault tolerance

Clients/Prospects who are mostly the business owners and provide the set of requirements in various forms to try and explain the core requirements of the software to be developed and leave the minute details of the technology to the subject experts (programmers). The customers try to provide as much details as possible but purely from the end user of the product and not as "programmer". That's the major challenge programmers face when they deal with customers, because the programmers are so much dependent on the explicit requirements that they forget about the implied needs of any software. Most of the times customers will only specify the core business requirements of the software which "explicit requirements" and achieving those requirements is must but at the same time programmers have to use experience and knowledge of global standards which are expected out of any software and more specifically the unsaid/implied needs of software in that specific business domain.

As an analogy when we buy Microwave Owen for our kitchen, we talk about it's capacity, heating features, conviction enabled, etc. But do we ever ask "explicitly" that the said device (Microwave) shouldn't give electric shock when operated? Answer is "NO" because we take it for granted as implied specifications of that machine.

Similarly there are lots of such implied needs of software which needs to be integrated "by default" and doesn't have to be mentioned anywhere in the requirements or documents but they are part of deliverables and doesn't account for unnecessary arguments or extension of scope with customers.

No comments:

Post a Comment