Understanding Agile Software Development and Scrum Framework

Krisna Dwitama
8 min readMar 21, 2021
Source: https://savvycomsoftware.com/everything-you-need-to-know-about-agile-software-development/

Agile software development is a software development methodology that also defined as umbrella term for a set of frameworks and practices that is based on the Agile Manifesto and the 12 Principles behind it. Agile software development prioritize better collaboration in team and focus on the people doing the work and how they work together to deliver value in fast and incremental ways but also maintain great quality and is flexible against changes. The requirements and the solutions come up during collaboration in the team. In Agile, ensuring the team are always comfortable during the project and can work with stable performance is a must.

Agile software development work with the concept of collaboration and self-organizing team. Being self-organizing mean that the teams have the ability to figure out how they’re going to approach things on their own. There is still a place for manager in the teams. Manager has to make sure the team members have or obtain the right skill sets. Manager must provide the environment that allows the team to be successful. Manager mostly step back and let the team figure out how they are going to deliver the products, but will step in when the teams try but are unable to resolve issues.

Agile Manifesto

Source: https://i.pinimg.com/originals/24/94/96/249496775a11b0c6b2f300b5edf0984b.png

Above is the agile manifesto that is implemented in a lot of agile software development team. According to the image above, there is value in the items on the right, but we value the items on the left more; That is where we came with 12 principles in agile software development based on the agile manifesto:

  1. Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.
    That is in Agile, we want to make our customer satisfied, and it is done by early and continuous delivery of valuable software. In order to do that, we work on the product in incremental way by breaking the product into small part and start by making what is essential and most valuable part of the software that can be done in the increment. By doing that, we can deliver the software faster while maintain the valuable aspect.
  2. Welcome changing requirements, even late in development. Agile processes harness change for the customer’s competitive advantage.
    That is in real life, changes in software are inevitable. We want to make sure our customer get what they want, so agile team will welcome to requirements changing even late in development as long as it is good for the customer, product, and society.
  3. Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.
    That means we should deliver working software frequently to make sure the transparency of the project and all the stakeholders know what is done and what to do. That also can improve the software quality through stakeholder’s feedback on the software that we recently deliver.
  4. Business people and developers must work together daily throughout the project.
    In Agile project, we want to make sure we make the right product. Business people can help guiding the developers to the right way. The best way for business people to keep in touch with the developer is by work together with the developers, so that developers can communicate with the business people if they are confused with how the product should be.
  5. Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done.
    One of the important thing in Agile Team are the individual involved in that team. We must ensure that all of the team member are professional that is capable and independent. We also must provide the environment and support that the team need and after that, we trust on the team to get the project done and deliver the software successfully.
  6. The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.
  7. Working software is the primary measure of progress.
  8. Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely.
  9. Continuous attention to technical excellence and good design enhances agility.
  10. Simplicity–the art of maximizing the amount of work not done–is essential.
  11. The best architectures, requirements, and designs emerge from self-organizing teams.
  12. At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.

Benefits of Agile Software Development

Some benefits on using Agile Software Development:

More Productivity
During agile software development, the whole project is divided into some iterations and the workload is broken up into smaller set of tasks. The deliverables are completed and done in incremental way from small deliverable to the whole product. This will make the team more productive because they always get new tasks in every iterations. The team also can identify the problem easier and get the solution more quick.

Increased Morale of Programmers
Programmers tends to work in smaller practicable portions rather than large tasks that usually confusing. This will make the team to have a better understanding about their accomplishments which tends to boost the morale of the team and each of the member personally.

Clearer Communication
Agile encourage clear communication between all the stakeholders involved in the project with face-to-face conversation. Agile software development also focus to make a good bonding in every member of the team and persuade the stakeholder to actively collaborate with the team.

Scrum Framework

Scrum framework is a popular methodology used by many developer teams that use agile software development. Scrum is a prepared, collaborative technique that encourages everyday conversation with a clean goals and deliverables.

Source: https://savvycomsoftware.com/everything-you-need-to-know-about-agile-software-development/

Currently, I work on a project with my team that implement Scrum Framework. Now I want to share my understanding of the Scrum Framework that is supported by my experience during the project.

Scrum Value
Successful use of Scrum depends on people becoming more proficient in living five values: Commitment, Focus, Openness, Respect, and Courage

These values will define the directions of the scrum team about their work, actions, and behavior. Firstly, we need to have commitment in working on the project. We also need to focus on the teams and always grow together to be a successful Scrum Team. To grow to the better direction, the scrum team must open to each other and always supporting each other. Each of the team members must respect each other and in order to be respected, we must be a capable and independent person. Aside from being capable and independent, we also must have courage in trying to solve a problem that is new to us. By doing that, the team can make the best possible progress toward the product goals.

The Scrum Team
The fundamental unit of the scrum team consists of one Scrum Master, one Product Owner, and Developers. The team characteristic is a unit of professionals that is focused on working to the product goals, without specific jobs. For example in my team, there are 5 developers and we work together collaboratively without sub-teams or hierarchies while we communicate with Scrum Master and Product Owner, also with the stakeholders.

Scrum Artifact
Scrum Artifact is the representation of the work or value that the scrum team have. Scrum Artifacts are designed with maximum transparency so that everybody (The team and stakeholders) has the same understanding of the artifact to support clear and collaborative communication. These Scrum Artifacts are:

  1. Product Backlog
    The product backlog is an ordered list of what is needed to be on the product. Ordered list mean that the product backlog also show the priority of the feature/story that must be done by the team. It is a single source of work for the Scrum Team. Product backlog provided by Product Owner with collaboration with all of the stakeholders.
  2. Sprint Backlog
    Sprint backlog is the plan for developers during event called Sprint. Sprint Backlog consist of the sprint goal, the set of Product Backlog Items (PBI) selected for current sprint, and actionable plan for delivering the Increment. It is a real-time picture of the work that the developers plan to accomplish during the sprint in order to achieve the sprint goal. It should contain enough detail so that the developers can easily describe their progress during the Daily Standup Meeting.
  3. Increment
    An Increment is a progress toward the Product Goal. Each Increment is additive to all previous Increments. We also must ensure that all of the Increments can complement together. In order for the increment to have value, it must be usable, so that works can be considered as part of an Increment only if it meets the Definition of Done.

Scrum Event

  1. Sprint
    Sprint is a fixed time where the Scrum Team are working time to deliver Scrum Artifact. The duration of one sprint is vary depending on the team and the product, but the time usually in range between 1 week and 1 month (One sprint in my team is 2 weeks). The task that is assigned during one sprint cannot be altered and that is the duty of the Scrum Master to prevent any problem from external to have impact in the developer team.
  2. Sprint Planning
    Sprint planning is the event that initiates the sprint by determine what is current sprint goals and tasks that the developer team has to work on. During sprint planning, we pick the tasks that has to be done by look at the team capabilities. The unit of the task to measure the team capabilities is called Story Points. Each of the task will later assigned to each developer team members.
  3. Daily Standup Meeting
    Daily Standup Meeting is a meeting where the Developer Team and Scrum Master discuss about the progress of each developer, the problem they encounter, and the solution to that problem.
  4. Sprint Review
    Sprint Review is an event where all of the Scrum Team and the Stakeholders will review the outcome of the current sprint and determine future works for the team during the next sprint. The Scrum Team will presents the results of their work to the stakeholders and all of them will discuss about the progress toward the Product Goal.
  5. Sprint Retrospective
    Sprint Retrospective is where the Scrum Team has to figure a way to increase the quality and effectiveness. The Scrum Team will see how the last sprint went in some aspects, such as: individuals, interactions, processes, and tools. After that, the scrum team discusses what went well during the Sprint, what problems they encountered, and how those problems were (or were not) solved. In the end of the Sprint Retrospective, the scrum team identifies the good changes to improve their effectiveness.

Source:
https://savvycomsoftware.com/everything-you-need-to-know-about-agile-software-development/
https://ecubit.org/5-benefits-of-agile-software-development/
https://www.agilealliance.org/agile101/
https://www.agilealliance.org/agile101/12-principles-behind-the-agile-manifesto/
https://www.scrum.org/resources/what-is-scrum
https://scrumguides.org/scrum-guide.html

--

--