Follow the Formula for Agile Development
Scrum Means Teamwork
Like the game of Rugby from which it derives its name, Scrum has ground rules for creating a productive work environment. The framework relies on a cadence of iterative cycles, called sprints, where inputs, outputs and processes are well structured.
To that end, business domain experts, developers, and testers work together daily throughout the project. The customer is also an integral part of the team. Each iteration or new version builds on the results of the previous increment. What’s more, frequent stakeholder feedback helps achieve rapid delivery of working software.
Wanted: Good Team Players
A dedicated team with well-defined roles keeps the project focused on delivering value:
- The Product Owner – someone with business expertise needs to take responsibility for determining and prioritizing features. This business representative, usually a customer or Aprico consultant, clarifies the project vision, evaluates the return on investment, and is responsible for adding user stories and their acceptance criteria to the product backlog. The Product Owner is also involved in specific meetings and activities, including sprint meetings and backlog grooming.
- The Scrum Master – usually from Aprico – coaches all the stakeholders to respect the SCRUM methodology. He or she leads the development team to achieve each sprint goal. As the single point of contact for all stakeholders, the Scrum Master insulates the development team from the impact of change by helping solve problems or remove impediments that could affect the development process.
- The Development Team consists of all the people who deliver the work during each iteration. This includes developers, testers, architects, and UI designers. The optimal team usually consists of seven to nine members, and is self-organized.
A Culture of Performance
As a tightly integrated unit, the team works toward a common goal. Good communication is essential, as quick feedback loops help adapt to new requirements. Performance is achieved through discipline. Attending the following meetings, in particular, is compulsory:
- Sprint planning meeting: this meeting leads to the creation of a sprint backlog. It sets up objectives for the sprint and describes the tasks that are needed to reach these objectives.
- Daily Scrum meeting: team members gather each day for 15 minutes or so to share what they have accomplished, are working on now, and will accomplish that day. This provides a chance to expose hidden impediments and ensure that the right functionality is being built to meet the sprint goal.
- Sprint Review meeting: each sprint ends with a demo of a potentially shippable product. The objective of this meeting is to obtain acceptance from the product owners and receive theit feedback, includingchanges to the backlog.
- Retrospective meeting: this internal team meeting aims to improve and adapt the process if needed.
- Backlog grooming: this refers to the ongoing process of gathering user stories, adding them to the backlog and prioritizing It also includes removing user stories from the backlog, and breaking them into sub-stories. This activity is under the responsibility of the Product Owner who interacts with the whole team.
Deliver Faster and Better
As a collaboration framework, Scrum relies on a high level of feedback and transparency. At Aprico, we also believe that ground rules need to be observed for creating a good work environment:
Analysis kept to a minimum …
Stakeholders are not always clear on business requirements. And these requirements will often change over the course of a project.
Product owners provide on-the-fly details about the user stories during planning and grooming meetings. This information describes “what” the product should do at the end of a sprint.
From a business standpoint, the backlog of product requirements – including must-have items, should-have and could-have items – needs to be prioritized. If the Product Owners aren’t available for making decisions about these features and priorities, then they can assign a proxy.
From a technical standpoint, it’s important to stay on top of infrastructure legacy issues, such as access management, user interface, and technology standards. The Product Owner can help reduce ambiguity and risk by providing the needed details to translate the business needs into technical specifications.
… but always there when needed
If necessary, a workshop can be organized for gathering more information before starting certain sprints. These workshops are part of release planning. They can cover, for example, data model or business process issues.
Each sprint should deliver a completed working system. Aprico recommends pair programming where two engineers sit side-by-side at the same computer and work on the same piece of code together to address certain issues, such as complex tasks and code quality. In effect, this amounts to “real-time code review”. Not only does this reduce debugging and total implementation time, but it also creates a sense of shared responsibility and ownership.
Tests drive the code development process: new functionality is tested during its implementation to avoid regression, particularly when refactoring code or implementing changes.
Practice Makes Perfect
At the end of each sprint, review meetings help foster an environment of learning and adaptation. They also provide opportunities for coordinating multiple development teams.
Regular sprint retrospective meetings also provide opportunities for continuous improvement. In these sessions, team members can examine how they work together, what common issues, such as drops in quality or failing tests can arise, or how things could affect team morale or productivity.
Aprico at Your Side
Aprico is uniquely positioned to support your agile development initiatives. We base our agile development solutions on industry-recognized technologies, with a focus on scrum.
To meet today’s development challenges, we practice Agile disciplines in both on-premise and nearshore collaborations. Our industry expertise, process knowledge and technology resources help achieve on-time delivery with the high quality expected by the business.