What is Requirement Specification? What is Software Requirement? What is requirement Engineering?
- A process is a description of how to accomplish a work activity
- A procedure is a set of steps for accomplishing the work tasks of a process
- A technique is the way an individual accomplishes a procedure
This is it that we have in Software development. How can you be a brilliant Software Developer! Ah, Amit, C’mon, you must have had lost your senses! We’re good developers / Testers, and Project managers!
Do you really think so, if you do, let me know how many items out of the mentioned below you follow while doing development!
- Do you follow coding style guidelines
- Do you follow code documentation guidelines
- Do you really use debugging tools
- Have you ever done your code being peer reviewed
- Do you even know about testing strategies, procedures, and tools
- Do you even know what periodic backups are
- What isa version control system
- Do you know how to use a defect tracking system
- What isa design documentation tool
- What is with requirements traceability tool
- What do you know about project planning and tracking system
I bet most of you developing the code (and no offence here), would know at max about 2 or 3 of these. Reason, well primarily you don’t think that it is necessary OR it’s not your responsibility! Whatever is your reason, of you’re not following all the above you would surely be successful in your career BUT only in very short run!
Now here is a thing which we all should be aware of. Your project may follow the ‘Waterfall’ approach, BUT it is not necessary that during the requirement gathering phase too you have to follow the same model. You can always and in fact should always utilize various approaches for doing various activities of SDLC.
Here is how you should do Requirement Development using Iterative approach.
Now let’s talk about the Process flow for Requirement Development.
Why is it that my entire focus is on Requirement Analysis and not on other aspects of SDLC. Think about it! Majority of the time project failure is because of Improper Requirement Gathering—Yes, believe me, this is from experience!
Any available Software Projects workflow will have varied components, and requirement development is one of them.
Below mentioned is the COMPLETE detail on how Requirement should be done, following the requirement iteration flow!
Did I ever tell you what Requirement actually is?
Requirement is : The external (user) view of the system
Functional requirements (what must the system do?)
Prioritized as Essential, Desirable, Optional
and prioritized within categories, which also has
Quality attributes (how well must the system do it?)
Safety, security, reliability, performance, throughput, capacities
Can also be prioritized
– e.g., security versus performance
• Usually apply to multiple (perhaps all) elements of the system
• Each operational requirement is tagged as “valid” or “design goal”
Simple isn’t it…Cheers! We will start with Project Planning Tomorrow!