Agile Methodology

Agile Method

Agile is a software development methodology to build a software incrementally using short iterations (called sprint) of 1 - 4 weeks so that the development process is aligned with the changing business needs. Instead of a single-pass development of 6 to 18 months where all the requirements and risks are predicted upfront, Agile adopts a process of frequent feedback where a workable product is delivered after a iteration. Compared to traditional waterfall delivery, Agile method could adjust the goal based on the circumstances and changes in last iteration, making it more flexible and adaptive to deliver the product.

Agile Methodology_第1张图片
traditional waterfall model

Agile Methodology_第2张图片
iteration model

Agile Functional Team

There are three main roles in Agile team: scrum master, product owner and development members. Every agile should have about 5 to 10 members, typically comprised of 1 product owner, 1 scrum master, 3-4 developers, 1 tester and 1 technical lead.

Agile Methodology_第3张图片
Agile functional team

A scrum master is a team leader and facilitator who helps the team members to follow agile practices so that they can meet their commitments. The responsibilities of a scrum master are as follows:

  • To enable close co-operation between all roles and functions.
  • To remove any blocks.
  • To shield the team from any disturbances.
  • To work with the organization to track the progress of the company.
  • To ensure that Agile Inspect & Adapt processes are leveraged properly which includes:
    • Daily stand-ups
    • Planned meetings
    • Demo
    • Review
    • Retrospective Meetings
    • To facilitate team meetings and decision-making process

A product owner is the one who drives the product from business perspective. A product owner’s responsibilities are as follows:

  • To define the requirements and prioritize their values.
  • To determine the release date and contents.
  • To take an active role in iteration planning and release planning meetings.
  • To ensure that the team is working on the most valued requirement.
  • To represent the voice of the customer.
  • To accept the user stories that meet the definition of done and defined acceptance criteria.

The development team consist of 3-4 developers, 1-2 testers and 1 technical lead. They make the code contributions, ensure code qualities and prepare for product release.

Agile Team Work Planning

There are a few concepts to known before understanding how an Agile team plan its work.

  • User story: A user story is a requirement which defines what is required by the user as functionality. It defines what a user needs and is validated by acceptance tests. A user story can be in two forms:
    • As a I want so that
    • In order to as a I want
  • Task: Task defines the detailed work and steps to implement the functionality. User story is implemented by tasks so it is divided into tasks when it’s planned in current iteration. Tasks are estimated in hours.
  • Story point: Story point defines how much a team can commit. A story point usually refers to 8 hours, namely one man day. Each story are estimated in story points.
  • Capacity: Capacity defines how much an individual and a team can commit.
  • Acceptance Criteria: Criteria defines the functionality, behavior and performance required by a feature so that it can be accepted by the product owner. It defines what is to be done so that the developer knows when a user story is complete.
  • Requirement: Requirements are defined as a user story with acceptance criteria and tasks to implement the story.

Agile Methodology_第4张图片
The relationship of user story and task

An Agile team works in iterations to deliver user stories where each iteration is of 10 to 15 days. A iteration is also called Sprint. At sprint 0, the Agile team should describe the road map of the product release and decide what should be deliver in each sprint in general. And also, product should give the general requirements and their priority, which could be adjusted and changed in the afterward sprints. In the same time, development team should also prepare technical knowledge, framework learning and other tools for coding. From sprint 1 on, the agile team pick up user stories from the backlog, and the product owner give a requirement refinement and clarification to the team, to ensure that the developers are clear with the stories. Product owner should also give acceptance criteria for the stories so that testers could create detailed test cases for the stories. Then the agile team should divide the user story into small tasks, which need to be estimated in hours and totally sum up as story points for the story. Poke Game is a famous tool for task estimation. In estimation phase, developers should think carefully about the implementation of the task and whether it will run into difficulties, which will be risks of the sprint and the product. Each task should not be greater than 5 man day (1 week), otherwise it should be divided into smaller tasks. If there are too many thing unknown for a task, the development team should ask for a POC (Prove of Concept) for the task. After estimation, the agile team decides how many story points they could deliver based on its capacity and task estimation. Those user stories in the backlog are yet not developed, are changeable and adjustable for the future sprints. Even the current developing stories are changeable, but there are extra hours for the related tasks.

Agile Methodology_第5张图片
Iteration plan

你可能感兴趣的:(Agile&DevOps)