Category
Best Practices ALM
0
When embarking on a new project, whether it be a new application or a significant modification to an existing application, it is very easy to neglect a formal requirements phase for that project. This is especially true when working with technologies that emphasize fast development and deployment of applications (read “RAD”). It is easy to neglect formal requirements when you are working with the end user directly. What is more fool proof than working directly with the user?
Whether you know it or not, there are many types of requirements feeding most of your application development projects and these come from your business objectives. So first, you have to know what the business objectives are. What is the end user trying to accomplish? Grow sales, expand markets, decrease costs, etc.
What Types of Requirements Should I be Care About?
Business Requirements – These are general requirements from all stakeholders. Requirements of this class tend to include business process needs and constraints, such as costs, resources and timing. Frequently, these requirements come from the managers.
Stakeholder Requirements – Anyone with a vested interest in the project is a stakeholder. Stakeholders can be internal or external to the company and may not be obvious at the beginning of a project.
End-User Requirements – You are probably very familiar with this group. These are the people who are going to interact with the system. The type of requirements that come from this group include documentation needs, workflow requirements and user interface.
System Requirements – These come from analyzing the business and stakeholder requirements to come up with a formal technical set of requirements. These requirements tend to be the overall high level requirements, hardware requirements, operating system, integration with other applications or software and network requirements.
Software Requirements – These might include the functionality necessary in the application or the graphical user interface needed to support the user.
What is the Importance of Requirements?
I don’t think it’s a exaggeration to say that the success, or lack of success for your project is dependent upon your ability to define good requirements. Even if you don’t believe that defining requirements is the most important part of any project, you would probably agree that good requirements will likely reduce the risk and costs associated with the project.
It is difficult to align the resources needed for a particular project if it has not been properly defined. Staffing a project inappropriately can determine the ultimate success or failure of your project. Too few resources can result in missed deadlines while too many resources can add up to significant cost overruns.
Another area crucial to good requirements is governance. There are a number of requirements across all industries regarding compliance requirements. Financial compliance and privacy laws affect most companies. But there are a number of others that may be critical to your business. The costs of non-compliance can be huge, both in financial terms and possible jail time for your company’s executives.
It is hard enough to get approval to begin working on new projects. Having to re-work them because of poorly defined requirements can be very painful. Not only do they increase costs of developing the applications, but delays in completing projects can cause your company to miss a key opportunity. The costs in these terms can be huge.
You probably already know that the earlier errors are found, the less expensive they are to fix. In fact, I found the chart below in an
article recently posted on
sticky minds
Clearly there is a lot more to requirements. Hopefully this post will have whetted your appetite enough to have you think a bit more about formal requirements. For more on this topic, you can also go to our Web site to view policy guides addressing the
requirements phase of the application development lifecycle.