Why Is The Analysis Most Important Part Of Development Process?
23 September 2020
Regardless of the software implementation methodology, whether it is Scrum or Waterfall, it will take many actions or phases to complete it. In Waterfall methodology the analysis phase takes place after the specification of requirements and before the technical project and implementation. Let’s look at the graph below to understand the subsequent stages of the process:
I would like to emphasize that it is wrong to think that the Analyst role in Scrum is unnecessary. What is his job in Scrum methodology then? Exactly the same but more frequent and agile. In simple words the Analyst should analyze the requirements in every single sprint.
But what exactly is the analysis of the requirements?
Very often when we talk to the clients about the projects they want to implement, we ask them to specify the system requirements. However, it is not too often that the client is able to prepare the requirements list in a professional way. It is more likely that we will get a page or a few (in the best scenario) with scattered thoughts and unstructured ideas about what should be included in the application.
Regardless of the project, the first step we take is the analysis of the information received and then its understanding and interpretation in a way that will lead to implementation of a complete, safe, efficient and functional product.
The success of the project depends on the work of an Analyst or Analyst Team.
When we produce the projects in Evertop we always focus on the series of meetings and analytical workshop first. We discuss the requirements specified by the client and depending on the methodology, we create Use Cases or User Stories. Material created in this way is one of the products of the functional analysis.
The next step is to create an interactive clickable prototype, which simulates the simplified look of the implemented system. The prototype often presents the samples of data, the flow between the subsequent screens, sorting methods and error messages. It helps the client’s team to understand the user of the system and to go through the basic paths in it.
After creating the above elements we can work on Test Cases and Test Scenarios, in the cooperation with tester team – so that they know what and how they should proceed with testing after the implementation stage.
To summarize, during the analytical phase we tend to:
- Identify all functional and non-functional requirements.
- Create Use Cases or User Stories.
- Create clickable prototype.
- Optionally, create The Cases and Test Scenarios.
It often happens that during the analysis process, we discover with the client that the requirements were incorrectly specified. At this stage we can simply go back to the previous phase to correct it, change it or add new requirements.
The most relevant thing is to remove what is inconclusive, incomplete or incoherent at the stage of specification of requirements, it doesn’t cost as much as it does at the stage of product development.
Is it worth making paid analysis of requirements before signing the contract for the whole system?
The analysis of requirements is an immanent element of the software development cycle. Skipping that part is impossible or very expensive. Good analysis of the requirements, helps to estimate better the effort of the subsequent stages of the application’s development, and therefore – the costs.
We recommend using the paid analysis of requirements, before making decision of project’s realization. Especially, if the clients expect the offer on a fixed price mode.
Preparing such an analysis is the cost of a few thousands of EUR, therefore it is not too expensive considering total costs of creating IT system, and on one hand it helps to obtain all relevant requirements, and on the other hand – to understand all the business processes that the clients uses.
Having such data we can precisely estimate the costs of system implementation while the client gets all the necessary information to prepare the request for proposal and send it to other companies.
The consequences of incorrectly prepared functional analysis
Regardless of the model the analysis was prepared it is worth considering what happens when it is done incorrectly. The consequences of errors at this stage of programming are:
- incorrect time estimation of project making (and therefore-incorrect valuation),
- incoherence between clients expectations and the ready product,
- serious gaps or defects in applications’ functionality, not equivalent to business processes that clients uses,
- the huge amount of notices reported by the client at the stage of project acceptance.
The consequences of correctly performed analysis
It is more like the reversed process. With a correctly performed analysis we achieve:
- possibility of a proper set up and administration of implementation team,
- correct estimation of work effort necessary to implement all requirements,
- option of correct construction of Test Scenarios.
I often tell the clients how the IT systems are designed and I compare it to the house projects. It is much easier for them to imagine how it works.
Everyone knows that replacing the kitchen with the bathroom at the stage of draft is quite easy. It is much more challenging to make adjustments when we have already built a house.
Therefore I always highlight the importance of the analysis, when we can change the concept and our mind. Lets make a good use of it. It would be much more difficult and more expensive at a later stage.