Agile software development in simple.
Tags: agile, programming, productivity
Published: 2022-10-07 12:04:43

Hi I am Arun Kumar Palani, Senior software engineer in **Luxoft**. Lets discuss agile in detail.

**What is Agile basically?**

Agile is a project management technique which is used to create software products in an iterative approach. Rather than creating a complete product in one stretch, we can breakdown that approach into smaller units, so that we can continuously deliver an item in each sprint. If any increment/story does not meet our expectations, we can only work on that increment and deliver it in the upcoming sprints by not disturbing the previously completed increments/stories. 
![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/yqxb5i2wqyc36s1d80dr.PNG)

**Advantages:**  

1. Quality products will be delivered at the end of each sprint. 

2. The product will be developed and delivered faster than the waterfall model. 

3. Regular Inspection and adaptation when there is a change in requirements. 

4. Openness and communication will be sent to all the levels in the team and can get clear visibility. We can directly talk to stakeholders and customers to get a clear picture of the exact requirement and track that in Jira or project management tool. 

5. Stakeholder engagement and client satisfaction can be reviewed at the end of each release. 

**Disadvantage:** 

1. When the requirement is dynamic it is a bit hard to achieve the exact goal at the time described. 

2. When the product is ever changing then it is a never-ending project.  

**What is Scrum?** 

Scrum is a framework for developing software products and it is one of the famous agile software development methodologies. Scrum is a lightweight framework, and it can create products in an incremental and iterative approach. It helps the organization and team to solve complex problems with adaptive resolution.  

So, what are the main concepts of scrum? 

1. Scrum theory 

2. Scrum values 

3. Scrum team 

4. Scrum artifacts 

5. Scrum events 

**Scrum theory:** 

It is basically the set of ideas which is used to create a completely working software product. They are 

 1. Transparency, 

 2. Inspection and 

 3. Adaptation.  

These three main principles are very useful for creating iterative and incremental solutions. All these three principles are interrelated.  

Transparency enables inspection and adaptation. 

Inspection without adaptation is not useful. 

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/nkf75riju3fpuj9tiyl0.PNG)

**Scrum Values:** 

“The success” in the software we created using scrum mainly depends on how we are using the main scrum value. 

**What are the main values of Scrum?** 

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/c0iew382qjqkzujz01j9.PNG)

**Commitment:** It is a goal that all the members in the team want to achieve and to create a valuable increment. The scrum master helps the development team by not adding anything in the middle of the sprint. This will help achieve the goals of the individual and sprint goal as well. 

**Focus:** It helps team members to focus on the sprint goal. This can be achieved by scrum master by not burdening the team members with additional tasks. If the team member faces an impediment, it should be immediately resolved so that focus of the sprint won't be affected. 

**Openness:** All the team members in the scrum team must be honest and transparent in their progress. The purpose of the daily scrum meetings is to share the progress of every individual in the team, and it helps to achieve openness with the help of transparency. 

**Respect:** It is the most important thing in the scrum team, all the team members should each other by their values and the work they do. There is a concept in scrum inside the team all are developers there is no seniority. One developer should equally respect other developers. 

**Courage:** The scrum team must be open and courage to take the tuff problems and try to resolve them or try to find a solution to that problem. All the team members should be given a chance to work with this kind of problem so that equality in the scrum team is maintained. 

**Scrum Team:** The scrum team is composed of the scrum master, the Product owner and the Development team. Within the scrum team there is no sub team. It is a cross functional team, which means all the members in the team must have the necessary skills to create a value. The scrum team is a self-managed team, they know what to do? When to do it? And how to do it? To create a value.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/42ib7ha3wb2kox1vvom8.PNG)
 
The scrum team is a small team typically not more than 10 people so that it helps the team to communicate with each other. The smaller the team, the better the communication is. 

**The Developer:** They are the members of the scrum team who are committed to creating an increment at each sprint. The skills of all the developers vary from domain to domain and project technical stack.  

**Responsibility of the developer:**  

1. Go through the sprint backlog and create a plan for the sprint to execute it properly. 

2. Committed to create a valuable increment each sprint. 

3. Cross functional, should adapt new technology and provide solutions 

4. Accountability and should maintain professionalism to the team members and stories they committed to finish. 

5. Must respect all the other developers in the team. 

6. Developers in the scrum team should have courage to take difficult stories and can complete them on time.  

7. They should be adaptable for the changing requirement.  

**Product owner:** The product owner is the one who is accountable for maintaining the effective product backlog for the scrum team. He is the one who is responsible for maximizing the product value from the resultant work of the scrum team.  

The product owner talks to the stakeholders and customers regularly and checks feedback for the item we delivered and for the new enhancements. The decision taken by the product owner is visible to all the stakeholders and the scrum team. 

**Responsibility of the Product owner:** 

1. Should reorder the product backlog. 

2. Should define the product goal. 

3. Responsible for clear communication for the product backlog items 

4. Creating transparent product backlog item. 

5. Should help the development team when there is a doubt about the product backlog item. 

6. Regularly in touch with customers and get feedback and new enhancements they want. 

7. Should take proper decision. Because the PO decision on the product is the final and the organization should respect it. 

**Scrum master:** The Scrum master is the one who establishes scrum in the team as well as the organizational level. They are helping the team to adapt scrum and coach them by understanding scrum values. 

The role of the scrum master is not only coaching scrum across team and organization. If they wish to develop some piece of code or if they wish to test some functionality, it is always allowed. The scrum master can perform dual roles if they wish to do it.  

The scrum master must be in touch with the product owner and should help him find a technique to align product backlog items. 

**Responsibility of the Scrum master:**

1. To remove the impediments faced by the scrum team members. 

2. Help people to coach scrum when it is required. 

3. Helping the team members to create high valued increments and it should match the definition of done for that story. 

4. Provide training and coaching scrum for the organization to adapt to it. 

5. Make sure that all meetings are happening at the same time so that consistency reduces the complexity. 

6. Should create meetings properly with stakeholders at proper time so that the scrum team can ask their doubts and create a valuable increment. 

7. It’s the responsibility of the scrum master to timebox all events like sprint planning, daily scrum, sprint review and sprint retrospective. 

8. All the meetings are positive and productive, it’s again the responsibility of the scrum master. 

**Scrum artifacts:** Artifacts in the scrum describing the product goals/vision and how we are going to create a successful product. It is a roadmap for the product's success.  

The three main artifacts of scrum methodology are  

1. Product backlog 

2. Sprint backlog 

3. An increment 

**What is Product backlog?**

Product backlog describes the complete project, and it is a living document. Inside the product backlog the high valued items of the product are placed in an ordered way so that it can be picked up in the sprint refinement process and create a valuable increment. 

**Who can do all these things?**

The product owner is the one who maintains the product backlog and orders the highly valued stories at the top of the list. It's the duty of the product owner to contact the customers regularly and stakeholders to get feedback and new enhancements can be written in a priority-based stories in the product backlog. 

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/08a7lnm1drlry0o83ncs.PNG)

**Sprint backlog:** It is the place where we keep track of all the work we are doing inside the sprint. The sprint backlog contains the stories or features which have high priority in the product backlog. When a feature or story is assigned to the sprint backlog it needs to be refined before starting the work. 

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8106hn9d0c45sij7ygou.PNG)

**An Increment:** At the end of each sprint an increment will be born. An increment is a valuable thing that adds value to the product and makes the product developed. This increment is reviewed by the stakeholders, product owners and customers before releasing that to the actual product. 

**When will the Increment be successful?**  

Once it meets all the points of the acceptance criteria, thoroughly reviewed by the product owner, giving enough time for the customer and stakeholders to review the changes. Once it meets all the definition of done the story will be considered as a successful increment. 

**Who will mark the definition of done?** 

1. The developer in the scrum team will mark all the definition of done. 

2. But the product owner will cross verify the DOD. 

So, the increment is a new addition to the product and meets the goal of the product backlog in an iterative manner. If the story which fails to be a part of the increment it will be re-estimated and added again to the next sprint based on the priority. 

**Scrum events:** All the events in the scrum process are timeboxed. We should keep track of the time for all the scrum meetings.  

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/lliaywc7cvjcatk3acud.PNG)

**The Sprint:** It is a time boxed event with the maximum time for the sprint 1 month and we can decrease the time period based on our work culture.  

**Sprint planning:** Sprint planning is 8 hours and for a shorter sprint the time will decrease. In the sprint planning event, we will discuss with the entire team regarding the stories that we are going to pick and work on in the sprint. 

**Sprint review:** 4 hours and for shorter sprint the time will decrease. In this event we will show case our active increment to the stakeholders and customers and will get review and feedback. 

**Sprint retrospective:** 3 hours and for shorter sprint the time will decrease. In this event we will check what went wrong/good and how to improve the weaker areas all things will be discussed, and the checklist will be actively revisited at the next retro meeting. 

**Daily scrum:** 15 minutes. In this event we will check the below three points. 

1. What are we going to do today? 

2. What did we do yesterday? 

3. Are there any impediments we are facing? 

**What is Velocity?**  

Velocity is a term used to describe the scrum team’s completed work. Basically, it is calculated by the number of stories we estimated to take in to the sprint, before sprint starts and the number of stories we completed at the end of the sprint. 

The velocity chart looks like this, vertical axis – Total story points, horizontal axis – no of sprints. 

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/dx3mjxgzhzxdpt3zhl0c.PNG)

**Average velocity of the team - 46:** It is calculated by  

Total story delivered towards all the sprint/ number of sprints = 464/10 = 46.4 This team can complete 46 story points on average each sprint. 

**Burnt down chart:** It shows the actual progress of the team in a sprint. How effectively the time is used. 

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/kux7apyn5sbed0eb7x7a.PNG)