An agile methodology is an iterative approach to software development. Each iteration of agile methodology takes a short time interval of 1 to 4 weeks. The agile development process is aligned to deliver the changing business requirement. It distributes the software with faster and fewer changes.
The single-phase software development takes 6 to 18 months. In single-phase development, all the requirement gathering and risks management factors are predicted initially.
The agile software development process frequently takes the feedback of workable product. The workable product is delivered within 1 to 4 weeks of iteration.
Roles in Agile
There are two different roles in a Agile methodology. These are the Scrum Master and Product Owner.
1. Scrum Master
The Scrum Master is a team leader and facility provider who helps the team member to follow agile practices, so that the team member meets their commitments and customers requirements. The scrum master plays the following responsibilities:
They enable the close co-operation between all the roles and functions.
They remove all the blocks which occur.
They safeguard the team from any disturbances.
They work with the organization to track the progress and processes of the company.
They ensure that Agile Inspect & Adapt processes are leveraged correctly which includes
Retrospective meetings, and
Facilitate team meetings and decision-making process.
2. Product Owner
The Product Owner is one who runs the product from a business perspective. The Product Owner plays the following responsibilities:
He defines the requirements and prioritizes their values.
He sets the release date and contents.
He takes an active role in iteration and releasing planning meetings.
He ensures that the team is working on the most valued requirement.
He represents the voice of the customer.
He accepts the user stories that meet the definition of done and defined acceptance criteria.
Every agile team contains self-sufficient team with 5 to 9 team members. The average experience of each member ranges from 6 to 10 years. The agile team contains 3 to 4 developers, 1 tester, 1 technical lead, 1 scrum master and 1 product owner.
The Scrum master and Product owner are considered as a part of Team Interface, on the other hand remaining members are the part of Technical Interface.
How an Agile Team plan their work?
An Agile methodology is not a specific set of ceremonies or specific development techniques. Rather, it is a group of methodologies that demonstrate a commitment to tight feedback cycles and continuous improvement. An Agile team works in iterations to deliver the customer requirement, and each iteration takes 10 to 15 days. However, the original Agile Manifesto didn't set the time period of two-week iterations or an ideal team size.
Each user requirement is a planned based and their backlog prioritization and size. The team decides, how much scope they have and how many hours available with each team to perform their planed task.
What is a user requirement?
The user requirement defines the requirements of the user in terms of functionalities. There may be of two type of functionality.
As a <User Role> I want <Functionality> so that <Business Value>
In order to <Business value> as a <User Role> I want <Functionality>.
During software release planning, a rough estimate is given to a user requirement using relative scale points. During iteration planning, the requirement is broken down into tasks.
Relation between User requirement and Task
User requirement talks about what is to be done. It defines the needs of users.
Task talks about how it is to be done. It defines how functionality is implemented.
User requirements are implemented by tasks. Every requirement is gathering as the task.
User requirement is divided into different tasks when it is planned in current iteration.
User tasks are estimated in hours based, generally it is between 2 to 12 hours.
Requirements are validated using acceptance test.
When the requirement is completed
The Agile team decides the meaning of task done. There may be different criteria for it:
When the entire task (development, testing) are completed.
When all the acceptance tests are running and are passed.
When no defects found.
Product owner has accepted the requirement.
When the software product is delivered to the end user.
What is Software Acceptance Criteria?
Acceptance Criteria is defined as the functionality, behavior, and performance required by a product owner. It defines what is to be done so that the developer knows when a user requirement is complete.