Requirement Prioritization Techniques and Need
Being a requirement engineer, It is a tough job to take decision what is important for the client, what is most important for the client and what can be ignore for sometime in the system. off course clients involvement is an important part so the client should remain involve in the overall decisions, No matter how much a client is involve some time the condition arises when it becomes difficult to prioritize the requirements because some time the client want the working software with most important features with in no time and you have to full fill this requirements under the constraints provided by client e.g. Budget, time, reliability level and etc.
So how you can do this?
Software engineering is a growing field new methods and approaches are getting add into it day by day, But the good news is we already have some approaches to solve this problem.
When we go to buy a Smartphone, there are lots of smartphones available in the market with tones of features some smartphones have good camera but do not have good battery timing some time a smartphone provide you good battery timing but may be there is lack of a good camera so you have to compromise your beautiful selfie. Now this is the point you will take a prioritization based decision either the camera is important for you or the battery timings matters for you because you are a working guy and don’t have enough time to plug the phone for 3 hours. So if you are a working guy you will compromise the camera and go for long lasting battery you take the decision and prioritize the battery on the basis of your need. Same kinda approaches can be used in Software requirement engineering to give the client a comfort of requirement prioritization.
Things to Note first when prioritizing the requirements :
- May be the most important functionality will not be the first prioritization because it is expensive and the lack of budget is the client side problem.
- Possibly there will be more than one Software Stake holders and different stakeholders have different priorities sometime.
- Keep in mind the simple rule, As a requirement engineer you have to prioritize the requirement under the constraints by the feedback of stakeholders
- The most important point to note is the requirement prioritization process is iterative development approach may be the thing which is 1st priority in one iteration will be the 2nd priority in next iteration so it is important to keep checking.
Techniques of Requirement Prioritization:
- Negotiation Technique : In this technique requirement engineer will work with the stakeholder, clients and all other who will be the user of the software collect the requirements, get feedback on the requirements negotiate with customer e.g. what you want to provide the first, or agree them what is better for them to get in start of the software.
- Quantitative Technique : In this technique Requirement Engineer should perform an analysis on the basis of quantities e.g.
- What is the budget of client for first feature needed in software?
- In how much time the client want the working software?
- What are the financial benefits?
- What are the risks?
- How much level of risk we can bear on the current level?
After getting answers of those all questions the wining requirement should be the first priority and all stakeholders will also satisfy on that.
The Requirement Prioritization approach is applicable the in the agile development methodology, it is beneficial for the client to get working software as soon as possible and it is good as well for the developing organization.
the methods discuss above can be beneficial to the requirement engineer in the efficient requirements prioritization process.