1- Basic introduction of Agile Software Development Methodology
When it comes to Software (SW) development, there are many frameworks and methodologies for smart management. Some of these frameworks are scrum, kanban, XP, TDD, FDD DDD etc.
Each of these frameworks and methodologies have their own pros and cons based on the nature of project they are applied to. Agile project management however is a relatively new methodology focusing on transparency, prioritization short feedback loop Inspect and adapt. The other known methodologies are the waterfall, prototyping, iterative and incremental development, spiral development, extreme programming etc.
2- Introduction to Agile
The common meaning of Agile is “able to move quickly and easily”. It is a programming methodology to do work in easy and convenient way. It is very useful to complete wider scope projects. It is a serialized process of delivering product to owner rather than to delivering it after completion.
2.1 What Agile Really is ?
Agile can be considered as SW development methodology, set of processes, principles or model to promote better planning, development evaluation, ontime delivery, continuous improvement and early response to change. Agile just provide a framework originally never set methods to achive this, but over the time many framework or change agents develop in the form on Scrum, XP, Kanban, Scrumban , etc.
Agile is a repetitive and additional method of managing the design and develop. Its aim is to offer the new services or products development in a highly flexible and common way.
2.2 Orgin of Agile and its Manifesto
Origin of Agile goes back to Agile Manifesto while Agile started as SW development process. However, now it is embraced in other industries like marketing, sales, support, banking and production. The known frameworks of the agile methodology are Scrum, Kanban, XP etc.
Agile manifesto describes 4 important values that are relevant in all the projects of any size and kind.Check our agile manifesto infographics on its 15th anniversary, which was on February 11th 2016.
- Individuals and interactions over processes and tools.
- Working software over comprehensive documentation.
- Customer collaboration over contract negotiation.
- Responding to change over following a plan.
2.3 Why Agile ?
- Identify difficulties, makes them visible
- Embrace the change
- Plan, but always keep in mind that detailed plans are always wrong
- Improve feedback loops
- In case of any failure, the impact will be very slight i.e. impact will be only on that specific bit of the project.
2.4 Agile History
- 1993: First Scrum team created by Jeff Sutherland
- 1995: Scrum formalized by Jeff Sutherland & Ken Schwaber
- 2001: First Scrum book by Ken Schwaber and Mike Beedle (Agile Software Development with SCRUM)
- Agile manifesto was Introduced by 17 software developers meeting at snowbird resort in Utah in Feb – 2001.
3. Detailed insight of Agile
3.1 What is scrum?
Scrum is an iterative and incremental process for developing any product or managing any work. It produces a potentially shippable set of functionality at the end of every iteration.
Scrum is one of the frameworks to implement Agile. In the scrum, all development team work as rugby players “play with mutual understanding”. Software development team make mutual decisions to solve bugs and other issues in development.
3.2 Scrum is based on the following principles
- Strict prioritization
- Short feedback loop
- Frequent and regular releases
- Continuous improvement
- Self-organizing team
- Face-to-face communication
4. Scrum framework in 15 points
- 4.1 Product or project is divided into small use cases called user stories.
- 4.2 The Product backlog is a collection of user stories. Product Owner owns the backlog and responsible to prioritize the user story based on business value or customer request.
- 4.3 Scrum master is responsible for sprint planning meetings.
- 4.4 During sprint planning product owner explains the user story along with the acceptance criteria to the team, once understood and estimaed by team, it moves to the sprint backog. Product owner keep on proposing user story to sprint, during the sprint planning, until team run-out of its capacity.
- 4.5 When the user stories move to sprint, it is called sprint backlog.
- 4.6 Three are four major roles in scrum team. Team ideally is cross functional
- 4.7 Scrum team starts sprints in time-box, Which last for weeks to a month, depending on the sprint duration. Scrum team commit to user stories to be done during sprint, which is based on team’s average velocity
- 4.8 The team starts working on user stories which they commited by dividing it further into tasks.
- 4.9 Product owner roles is to interacts with the customer and decides which work need to be done first.
- 4.10 Scrum master is responsible for running the sprint and deliver a quality product.
- 4.11 Scrum master is responsible for daily standup meeting, which last 5-15 minutes every day stand up (scrum meeting).
- 4.12 At end of Sprint, demo is arranged, to show what has beed achieved during the sprint, product owner and or customer are invited in this ceremonies
- 4.13 The retrospective meeting is held at the end of the sprint to evaluate performance of completed sprint to identify gaps. The team discuss what went well, what practice to continue and what to improve.
- 4.14 Scrum focus on collaboration but doesn’t necessarily means more meetings, meetings or ceremonies in scrum are kept to its minimal. There are following meetings in scrum which are Sprint planning, Daily scrum, sprint demo and retrospective.
- 4.15 Then all this starts over again from backlog: Prioritization => Sprint Planning => Running Sprint in Time-box => Daily Scrum => Sprint Demo => Retrospective.
5. Agile Scrum terminology and its definitions
5.1 User story
User story is a simple, descriptive requirement from customer. user story is the most important artifact this is the artifact which your team spent most of the time with, this also something your team will analyze for effort estimation. So try to be as detailed as possible. Two-three liner of user stories doesn’t make much sense.
A user story has three parts, describe your functional requirement along those lines.
5.1.1 Characteristics of a good user story in agile
A good user story in Agile is a Well-defined, detailed and comprehensive. Sometimes a good user story also has examples and attachments like audio, video, images, docs and slides etc. If a user story is well-defined then the team can execute it in a better way.
5.4 Roles in Agile Scrum
5.4.1 Product Owner
The Product owner is responsible for the product backlog and maximizing the product ROI(Return on Investment). He makes sure that the right features make it into the product backlog and to the sprint. He represents the customer, describes backlog items clearly, keep backlog in good priority order, and sets the direction of the product.
5.4.2 Scrum Master roles
The Scrum master is responsible for monitoring the scrum processes and scrum meetings. His job is to make sure that sprint is delivering quality deliverables on time and all the impediments are getting resolved .
5.4.3 Scrum Team
Scrum team is responsible for a better and affordable working software output. It is a self-organized, cross-functional, team of 5-7 persons. Scrum team has developers, programmers, Scrum master, UI/UX designer, Analyst, DBA and Quality assurance engineers.
Developers develop the program, scrum master monitors the program, UI/UX designer designs user interference, Analyst analyzes program and testers test the program to make sure that the output product is working right.
The Stakeholder is either a customer or a project sponsor.
5.5 Sprint Planning Meeting
Participants of Sprint Planning Meeting are Scrum master, product owner and scrum team. Scrum master run the meeting, the average duration of sprint planning meeting is 2-4 hours.
5.6 Product Backlog
The Product backlog is a wishlist of things that project owner wants to be included. It is a simple list of all things that are needed to complete a project.
5.7 Backlog Prioritization
User stories arranged in a special sequence which is called backlog prioritization. The most important work is at the top of the list, and less important work is placed at the end of the list. Product owner adds the new work at the appropriate position. Using this method team knows which work needs immediate attention.
5.9 Story Points
Story points represented by the fibonacci number. It tells the relative complexity of a user story. Its not a effort estimate in hours. The number in story point represents the complexity.
5.12 Average Velocity
Average team velocity in scrum, tells how much user story can be completed by a scrum during sprint. Average velocity is the amount of done during a sprint, team needs to complete at least three sprints and taking the average of story points done in those sprints, that will give the average team’s velocity.
5.15 Burndown Chart
Burndown chart is the most important thing in scrum. It provides day by day measure to the amount of work that remains in a given sprint or release. It’s a day by day graph to check the team performance.
5.16 Daily Stand Up
Daily stand up is a 15-minute time-boxed event. This meeting is held every morning and all team members join this meeting every day strictly. The purpose of this only 15-minute meeting is to make team active but it is necessarily relevant with the topic. In this daily meeting every person is responsible for giving three following answers.
What I did yesterday?
What will I do today?
What is slowing me down, impediments?
5.17 Sprint Demo
At the end of each sprint completion, sprint review meeting is held. In this meeting team demonstrates, what they have accomplished during this sprint.
An Agile retrospective is a meeting which is held at the end of sprint. In this meeting team discusses, what went well and what to be improved.