Using an Agile approach to software development can increase collaboration and expedite the time to market. So how exactly is agile helping us deliver the working software with priority features sooner while providing the highest possible value to our customers?
Here’s a brief summary of Agile project management and how we use it at Sunrise Integration for effective project management and customer collaboration.
Agile Project Management
Agile project management is an iterative approach to managing software development projects. It focuses on breaking down large projects into more manageable tasks, which are completed in short iterations throughout the project life cycle called “sprints.” It focuses on continuous releases and incorporating customer feedback with every iteration.
Sunrise Integration uses the Scrum framework of Agile project management.
What is Scrum?
Scrum is a framework of rules, roles, events, and artifacts used to execute projects using Agile principles. It helps teams and organizations generate value through collaborative adaptive solutions for complex problems. Let's review some of the roles needed for this process.
A scrum team comprises of Product Owner, Scrum Master & Development team
The product owner works with the customer to understand the project requirements and prioritize them as per the business value for the customer. They represent the customer’s best interest and has the ultimate authority over the final product.
This person is a facilitator and responsible for arranging the daily meetings. They protect the team from distractions allowing them the flexibility in the process and helps improve team interactions, and maximize productivity. The project manager often takes on the role of Scrum master in scrum framework.
Development teams are cross-functional, with all the skills necessary to create a product Increment. Scrum recognizes no titles for development team members, regardless of the work being performed by the person. Individual members may have specialized skills and areas of focus, but accountability belongs to the development team as a whole.
Development team size
The ideal size for a development team is between 3 and 9 people; this does not include the Scrum Master and Product Owner.
The product backlog is an ordered list of all the potential project requirements and tasks necessary to implement those project requirements. It represents all items that should be implemented in the project but it doesn’t guarantee the implementation of any of those requirements. The product owner maintains the product backlog on an ongoing basis making sure it is well defined and prioritized as per the business value.
The sprint backlog is the collection of product backlog items selected for delivery in the sprint. It includes the project requirements and subtasks necessary to implement the requirements.
The increment is the collection of the product backlog Items that meet the team’s definition of done by the end of the sprint. The product owner may decide to release the increment or build upon it in future depending on the sprint items.
Definition of Done
The definition of done is a team’s shared agreement on the criteria that a product backlog Item must meet before it is considered complete.
Sprints are generally short, running over days or weeks; they're typically one to four weeks long. We use 1-week sprints to deliver projects where each sprint's goal is to build the most important features first in order to release a potentially deliverable product. More features are built into the product in subsequent sprints and are adjusted based on stakeholder and customer feedback between sprints.
Backlog grooming is the process of refining outstanding backlog items, breaking big items into smaller tasks and prioritizing those which need to be tackled first. The team also makes sure the prioritized backlog items are clearly understood by everyone including the requirements, risks, estimation of efforts, complexity, implementation strategy/approach and the acceptance criteria.
In this meeting, the scrum team determines which backlog items will be worked on in the next sprint. This is a collaborative meeting to prepare the sprint backlog and the dev team picks the items to work on defining the sprint goal (deliverables at the end of respective sprint).
Daily Stand-up: Every day during the sprint period, the team will meet daily to discuss the progress of the sprint backlog, challenges, and what will be worked on next. This meeting should only be 15 minutes long and further discussions should be taken outside of the meeting.
In the Sprint Review meeting, the team demonstrated the functionality completed at the end of the sprint and stakeholders (including customer) provides feedback on deliverables. This frequent opportunity for inspection and adaptation ensures that customer expectations are met often and value is delivered consistently.
The goal of retrospective meetings is to allow the team to reflect on past sprints and determine which processes went well and provide suggestions on the way to improve future sprints. It serves as an opportunity for the development team to inspect and adapt its own processes, ensuring that it functions smoothly in the high-performance world of Agile development.
By focusing on responding to changes quickly, as well as collaborative and cross-functional teams, Agile helps ensure that even in turbulent environments, teams can deliver high-quality solutions faster and more efficiently. We find that this approach yields better results for our clients and our team members than traditional methods of development.