The software development process defines the steps we take to plan, build and control software solutions.
Take a look at how we get things done
The software development process and methodologies
We treat each project individually and always find the best approach. Depending on the client’s requests and particularities, we choose the proper methodology for each project.
Waterfall methodology and detailed project planning
When the project’s purpose is known and detailed from the beginning, a cost offer can be made. Also, the duration of the development can be established based on a planning process. In this case, the project can be planned in detail from the beginning.
Once the specifications are ready, the planning stage is necessary. It is a mandatory step to determine the cost and duration of the project, as well as how the people and the resources will be allocated.
This process is conducted by the project manager, together with the team. It implies the following:
- Identification of the main deliverables; Breaking down the deliverables into smaller tasks, easier to manage and estimate;
- Establishing dependencies between tasks (e.g. task X should only start after task Y has been completed but can start at the same time as task Z);
- Allocation of resources per task (determines who is working on which task);
- Estimating the duration of development;
- Identifying negative risks and opportunities, as well as implementing mitigation solutions in the project plan.
The advantage of this approach is that the development company can plan the allocation of appropriate resources. The client knows the cost of the project, as well as the date for going live.
Consulting costs. Given that the project specifications must be detailed, clear and final, this implies, in some cases, an investment in consulting. This way, it will take longer to start the execution;
The waterfall methodology isn’t very change-friendly. Thus, any change must be estimated and approved. Any change to the initial plan implies extra costs as they are implemented later in the project.
SCRUM methodology - an AGILE approach
Not all projects are so clearly defined from the beginning. Sometimes, the customer begins with an overview of the final deliverable and wants to establish the details on the go. In this case, detailed project development planning is not possible.
The solution is to set up a plan for a short period of time, and then set the details for the next period.
There are several Agile approaches. The most popular is SCRUM, where a Product Owner continuously creates specifications as user stories for the development team. He plans the activity and works in periods of 2-4 weeks, called sprints.
Common elements in the web development process
Regardless of the chosen approach, software development goes through several well-established stages.
Any feature needs a description that reflects the customer’s expectations for the final deliverable. In waterfall, the project is described as a whole in the specification document. In agile, the project is divided into user stories, specified and treated separately.
Once the tasks have been developed, they go through a quality verification stage. It means compliance with the specifications. Any difference, extra or minus, is a deviation from the original purpose and is reported as a bug by the tester.
The delivery of the code to the customer depends on the methodology chosen. In waterfall projects, the code is delivered at the end of the project. In SCRUM, acceptance is made at the end of every sprint.
Although all projects have a beginning and an end, the collaboration can continue based on a maintenance contract.