The famous Requirements Gathering stage
Requirements gathering is part of an IT System development life cycle.
We believe that the requirements gathering stage is the most important part of the system development life cycle. It is the stage that has most effect on the outcome of any IT project. In this stage customer expectations are set, project deliverables are identified and most importantly at the end of the stage an agreement is defined between the supplier and the customer that implants the direction of the rest of the work within the other stages.
The development life-cycle, in a nutshell, consists of the following stages that can be repeated until all requirements are delivered:
- requirements gathering stage
- analysis and design stage
- implementation stage
- testing and fixing stage
- support and maintenance stage
Each cycle can be lengthy (a year or more) or short (a week or a month) depending on the type of project and the type of development strategy used, but these strategies will all roughly follow the same stages.
Since each stage builds on the stages before, a mistake in one stage will lead to problems in the later stage, that in turn require problem resolutions to keep the life-cycle on track. Logically the earlier a mistake is made in the life cycle the more potential there is for issues that will be more expensive in terms of time and resources to fix. A mistake can be a misunderstanding of the customer requirements, or an incorrect appreciation of whether a requirement can be delivered or how much it will cost to deliver.
With risk management in mind a project planner should take the potential for mistakes and the mitigation of such risk into consideration when determining the development strategy and therefore the length of each development life-cycle and the number of life-cycles that are required. A life-cycle is intended to deliver a set of functionality and its success is directly related to meeting the goals in terms of functionality. Any risk to meeting those goals is a risk to the development life-cycle, and the requirements gathering stage has most potential for risk and most potential for risk management. To better manage the life cycle risks one should take note of the following while determining the development strategy and therefore the quantity and quality of requirements gathering stages required:
The size of the project.
If the project is expected to consume a considerable amount of man months, one should opt for a number of cycles/iterations on the development cycle, such that at each cycle a new set of requirements that build upon the ones before are identified for implementation. Such strategy will lower the risk of an error at the requirement gathering stage becoming too expensive to fix at a later stage.
The requirements gathering process.
If the requirements gathering process is standard and straightforward, for example customisations on a product that is already accepted as it is, then normally there is less risk of a mistake in this stage that will become expensive to solve later. If the requirements gathering process is undefined or unstructured than increasing the cycles and shortening the length of each cycle should be more desirable.
We would all like a customer that knows exactly what he wants and understands the technology too! Many times it is not the case. When the customer is specific in his needs, wants and wishes then a lengthy life cycle is less risky. If the customer shows any of the following symptoms:
- more than one single point of reference,
- needs, wants and wishes are not clear,
- aptitude for change is low,
- sense of project direction is low
And similar indicators of a customer who has no clarity on the project then the chances are you’d be better off shortening each life cycle as much as possible to ensure that there will be a requirements gathering stage after each deliverable. Which in turn should ensure that there is an acceptance and understanding of what has been achieved in the cycle before prior to submitting new requirements for the new cycle.
The skill level of human resources.
The distribution of the resources based upon their skill level that one should utilise for each stage is many times confused. Some managers mistakenly think that their best resources should be used on development and bug fixing. In reality the most efficient use of resources is to allocate the more experienced personnel to the early stages namely the requirements gathering and analysis stages, leaving the implementation, testing and fixing for the less experienced personnel. Most expensive decisions are made at the initial stages and therefore the most experienced should be taking those decisions. While gathering a set of requirements the experienced analyst will be able to figure out what each requirement entails and therefore will be in a position to direct the customer’s expectations very early through the life cycle in order to minimise project costs, reduce risk of mistakes and risk of misunderstanding of what will be achieved.
An inexperienced person might on the other hand: accept requirements that are difficult to deliver, fail to identify potential for misunderstandings and embed mistakes that will be costlier to fix at a later stage. The better the skills of the analyst/s assigned to the requirements gathering task the less risk a lengthy cycle will prove to be.
The flexibility of the Solution
A solution that is specifically written to meet specific requirements will be relatively harder to change should a mistake be identified in those requirements. The more flexible a solution is, the easier it is to adapt to different requirements, so logically a flexible solution is more adapt and less risky for a development life-cycle that needs to cater for shaky requirements, difficult customers and customer expectations issues.
… we believe that the requirements gathering stages are the most important stages in any of our projects. We use our own inhouse tools that we created specifically to facilitate this process to minimise risks from the early stages and maximise efficiency and speed of delivery. We dedicate our best resources to understand the requirements of our customers namely small businesses and we also cater for scenarios where the requirements are expected to change during the project life-cycle. We always aim for short life-cycles that deliver value even in the short term. We do it because we can. Our system proves itself everytime …
We provide IT Solutions to small and medium businesses: Solutions that are tried and tested, customisable to meet the specific requirements of each and every customer. Our solutions are internet based.