Software development model: Agile

Tram Ho

1. What is Agile?

Agile is a method that drives the continual iteration of development and testing throughout a project’s software development lifecycle. In the Agile model, both development and testing are happening concurrently, unlike Waterfall model which takes place in sequence.

2. Develop software according to Agile

Software development according to Agile is one of the simple and effective processes for turning your vision of business needs into software solutions. Agile is a term used to describe software development approaches that will continually plan, learn, improve, team collaborate, evolve, and deliver early. It encourages flexible responses to change.

Software development according to Agile emphasizes four core values:

  • Interaction individually and in groups rather than processes and tools
  • Software can be worked rather than fully documented
  • Client cooperation rather than contract negotiation
  • Respond to change rather than adhere to an existing plan

3. Compare Agile and Waterfall model

The Agile and Waterfall model are two different approaches to the software development process. Although they differ in approach, both methods are useful at some point, it all depends on the requirements and the type of project to be deployed.

Below is a comparison table of these two models:

Agile modelWaterfall model
Proposing an incremental and iterative approach to software designThe software development is sequentially from start to finish
Divided into individual models that the designers will work on on these partsThe design process is not divided into individual models
Customers see products early and often to make decisions and make changes to the projectCustomers can only view products at the end of the project
Agile model is considered unstructured in comparison with Waterfall modelWaterfall models are more secure because they are planned oriented
Small projects can be done very quickly. However with large projects, it is difficult to estimate the development time.All project types can be estimated and completed.
Errors can be corrected at any stage during project developmentOnly at the end, the entire product is checked. If the required error is found or any changes have to be made, the project must start over
The development process is iterative and the project is done in short repetition intervals, usually 2-4 weeks. Planning is very little with each processThe development process is done in phases, and the stage is much larger than repeating. Each phase ends with a detailed description of the next stage
Documentation takes precedence over software developmentDocumentation is a top priority and can even be used to train employees and upgrade software with other teams
Each sprint / iteration has its own test phase. It allows to perform regression test every time new functions or logic are releasedIt is only after the development phase that the test phase is executed because the individual parts are not fully functional
At the end of a sprint , the product’s changeable features will be handed over to the customer. The new features are available immediately. It is very helpful when you are in good contact with your customers.All developed features will be distributed at once after a long rollout period.
Testers and developers work togetherTester works separately from Dev
At the end of each sprint , UAT (User Acceptance Testing) is executedThe UAT is executed at the end of the project.
Requires close communication with developers and requirements analysis and planning togetherDeveloper is not involved in the planning and asking process. Usually there is a time lag between tests and coding

4. Agile Process

There are many Agile- based software development processes, below I will list and explain in detail the Scrum model:

4.1 Scrum

4.1.1 Concepts

SCRUM is an Agile software development method that focuses specifically on how to manage tasks in a team-based development environment. Basically, Scrum is derived from the activity that happens during a football match. Scrum believes in empowering the development team and advocating working in small teams (7 to 9 members). We have 3 main roles as follows:

  • Scrum Master : responsible for setting up the team, organizing sprint meetings and removing obstacles to help the team progress.
  • Product Owner : creates product backlog , prioritizes those backlog and is responsible for providing functionality at each sprint .
  • Development Team : self-manage the work of themselves and the team, and organize the work to complete the sprint

4.1.2 Product Backlog

This is a repository where requests tracked with details about user stories need to be fulfilled for each release . It should be maintained and prioritized by the Product Owner , and it should be distributed to the Development Team . The group can also request to add new requests, modify or delete requests.

4.1.3 Scrum practice

The exercises are described in the table below

Inside:

  • Sprint Planning : The meeting is aimed at transforming business and user requirements into a Product Backlog table that details the work to be completed towards the end product.
  • Sprint : The main process for each development loop, usually 2 to 4 weeks
  • Daily Meeting : takes place every day (about 15 minutes), the whole group will meet and discuss the work done of the previous day, plan for today and problems encountered.
  • Review Meeting : takes place when required to showcase and present completed features
  • Retrospective Meeting : This takes place at the end of a sprint , often as a learning session as well as giving ideas to help the team progress.

Scrum process :

  • Each iteration of Scrum is called a sprint
  • The product backlog is a list that contains all the details about the request
  • In each sprint, the user stories of the product backlog are selected and converted to the sprint backlog
  • The team works based on the specified sprint backlog.
  • Team checks daily works
  • At the end of the sprint will hand over the product.

5. Conclusion

Above, I have introduced about Agile software development method as well as a number of operating models based on its principles. Thank you everyone for reading.

6. References

Share the news now

Source : Viblo