Table of contents
1.1. Agile Software Development
1.4. Different Trends of AGILE
2.5.2. Sprint and Sprint Backlog
3.1.1. Spring Planning Meeting
1. Agile
- Agile is the ability to create and respond to change. It is a way of dealing with, and ultimately succeeding in, an uncertain and turbulent environment.
- AGILE provides a foundation for the teams to build software
1.With the highest value
2.With high quality
3.With in the shortest time
1.1. Agile Software Development
- Agile Software Development is an umbrella term for a set of methods and practices based on the values and principles expressed in the Agile Manifesto.
- Solutions evolve through collaboration between self-organizing, cross-functional teams utilizing the appropriate practices for their context
1.2. The Agile Manifesto
- The Agile Manifesto, also called the Manifesto for Agile Software Development, is a formal proclamation of four key values and 12 principles to guide an iterative and people-centric approach to software development.
1.3. Agile Principles
- Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.
- Welcome changing requirements, even late in development. Agile processes harness change for the customer’s competitive advantage.
- Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.
- Businesspeople and developers must work together daily throughout the project.
- Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done.
- The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.
- Working software is the primary measure of progress.
- Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely.
- Continuous attention to technical excellence and good design enhances agility.
- Simplicity–the art of maximizing the amount of work not done–is essential.
- The best architectures, requirements, and designs emerge from self-organizing teams.
- At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.
1.4. Different Trends of AGILE
- SCRUM
- eXtreme Programming (XP)
- Test Driven Development (TDD)
- Pair Programming
- Behavior Driven Development
- Lean Software Development
- Kanban
2. Scrum
- Scrum is a process framework used to manage product development and other knowledge work.
- Scrum is a management and control process that cuts through complexity to focus on building software that meets business needs
- Scrum is best suited in the case where a cross-functional team is working in a product development setting where there is a nontrivial amount of work that lends itself to being split into more than one 2 – 4 week iteration
2.1. Scrum Values
- Commitment
->Team members personally commit to achieving team goals
- Courage
->Team members do the right thing and work on tough problems.
- Focus
->Concentrate on the work identified for the sprint and the goals of the team.
- Openness
->Team members and stakeholders are open about all the work and the challenges the team encounters.
- Respect
->Team members and stakeholders are open about all the work and the challenges the team encounters.
2.2. Principles of Scrum
- Transparency
->The team must work in an environment where everyone is aware of what issues other team members are running into.
- Inspection
->Frequent inspection points built into the framework to allow the team an opportunity to reflect on how the process is working.
- Adaptation
->The team constantly investigates how things are going and revises those items that do not seem to make sense.
2.3. Components
- SCRUM Roles
- SCRUM Artifacts
- SCRUM Events
2.4. Roles
- Users/Stakeholders
->Those who are going to use the product or have a vested interest in how it turns out.
- Product Owner
->Client's representative
->Define the features of the product
->Decide on release date and content
->Accept or reject work results
- SCRUM Master
->Is the team role responsible for ensuring the team lives agile values and principles and follows the processes and practices that the team agreed they would use.
- Development Team
->Consists of the people who deliver the product increment inside a Sprint.
->Main responsibility of the development team is to deliver the increment that delivers value to every Sprint.
->Cross-functional
->QA, Programmers, UI Designers, etc.
->Work collaboratively and share responsibilities.
->Typically 5-10 people
2.5. Scrum Artifacts
- Product Backlog
- Sprint Backlog
- Burn down Charts
2.5.1. Product Backlog
- The product backlog is a collection of user stories which present functionality which is required/wanted by the product team.
- Usually the product owner takes responsible for this list.
2.5.2. Sprint and Sprint Backlog
- Contain a collection of stories which could be included in the current sprint.
- The team decides what gets added to the sprint
- The team decides what gets added to the sprint
2.5.3. Burn-down chart
- Is a graphical representation of work left to do versus time.
- It is a run chart of outstanding work. It is useful for predicting when all of the work will be completed.
- Can be applied to any project containing measurable progress over time.
- Outstanding work can be represented in terms of either time or story points.
3. Scrum Events
- Sprint Planning
- Daily scrum
- Sprint review
- Sprint retrospective
- Product backlog refinement
3.1. Sprint Planning
- Each Sprint may be considered a project with no more than a one-month horizon.
- Like projects, Sprints are used to accomplish something. Each Sprint has a definition of what is to be built, a design and flexible plan that will guide building it, the work, and the resultant product
3.1.1. Spring Planning Meeting
- The work to be performed in the Sprint is planned at the Sprint Planning, it’s a collaborative work of the entire Scrum Team.
- Time-boxed to a maximum of eight hours for a one-month Sprint.
- Sprint Planning answers the following:
- What can be delivered in the Increment resulting from the upcoming Sprint?
- How will the work needed to deliver the Increment be achieved?
3.2. Daily Scrum Meeting
- Short (15 min) frequent meetings, facilitated by the Scrum Master.
- One activity – Scrum Master asks each attendee 3 questions.
- What have you completed (relative to the Backlog) since the last Scrum meeting?
- What got in your way of completing this work?
- What will you do between now and the next Scrum meeting?
3.3. Sprint Review
- Sprint Review is held at the end of the Sprint to inspect the Increment and adapt the Product Backlog if needed.
- ANYTHING can be changed, work can be added, eliminated, reprioritized.
- 4-hour time boxed meeting for a 1-month sprint.
3.4. Sprint Retrospective
- Is usually the last thing done in a sprint.
- Occurs after the Sprint Review and prior to the next Sprint Planning.
- Three-hour time-boxed meeting for one-month Sprint.
- Participants
-> The entire team, including both the Scrum Master and the product owner should participate.
- The retrospective gives the team the opportunity to identify 3 key aspects:
->What should start doing?
->What did not go well (and stop doing again)?
->What went well (and should keep doing?)?