Agile & SCRUM



What is Agile?

  • A group of software development methods that builds software incrementally.  

  • Breaks projects down using user stories , prioritizing them, and then continuously delivering them in short cycles called sprints .

The Agile Manifesto


  • In February 2001, 17 software developers met at the Snowbird, Utah resort, to discuss lightweight development methods.

  • They published the Manifesto for Agile Software Development to define the approach now known as agile software development.

Agile purpose


  • To teach teams to be Agile. 
    • While a new process can easily improve team productivity by a fraction, enabling your team to work effectively as a cohesive unit can improve productivity by several times.
    • Agility is the ability to both create and respond to change in order to profit in a turbulent business environment.
      - Jim Highsmith, Agile Project Management



Agile values


  • Individuals and interactions   over Processes and tools
  • Working software   over Comprehensive documentation
  • Customer collaboration   over Contract negotiation
  • Responding to change   over Following a plan 
"That is, while there is value in the items on the right, we value the items on the left more"
 

Scrum Framework

  • Scrum  is an iterative and incremental Agile software development framework for managing software projects and product or application development.


Roles

  • Scrum Master
  • Business Owner
  • Development Team 


Scrum Master

  • IS:
    • A scrum facilitator:
      • Removes impediments to the ability of the team to deliver the product goals and deliverables.
      • Ensures that the Scrum process is used as intended.

  • IS NOT:
    • A Project Manager: 
      • In fact, there is no role of project manager in Scrum at all, because none is needed.
      • Responsibilities of a project manager have been divided up and reassigned among the three Scrum roles.
      • Practicing Scrum with the addition of a project manager indicates a fundamental misunderstanding of Scrum, and typically results in conflicting responsibilities, unclear authority, and sub-optimal results

Product Owner


  • Represents the stakeholders and is the voice of the customer.
  • Creates the user stories, ranks and prioritizes them, and adds them to the product backlog.
  • Is combined with the role of Project Manager as they have the best visibility regarding the scope of work.

Development Team


  • Responsible for delivering potentially shippable increments of product at the end of each Sprint.
  • A Team is made up of 3–9 individuals with cross-functional skills who do the actual work.


Artifacts 


  • Backlog
  • User Story
  • Burn-down Chart


Backlog


  • Is a prioritized features list, containing short descriptions of all functionality desired in the product.
  • There are two kinds of backlog:
    • Product backlog: Contains the required User Stories for the entire project. 
      • Can grow and change as more is learned about the product and its customers.
    • Sprint backlog: Contains the requirements for the specific iteration. CANNOT GROW OR CHANGE.

User Story


  • Are short, simple description of a feature told from the perspective of the person who desires the new capability, usually a user or customer of the system. 
  • Points and priority are assigned to them.

  • Examples:
    • "As a admin user, I can specify files or folders to backup based on file size, date created and date modified."             

Burn-down chart


  • Is a graphical representation of work left to do versus time. 
  • Is an essential part of any agile project and is a way for the team to clearly see what is happening and how progress is being made during each sprint.


Events


  • Sprints
  • Planning Meeting
  • Daily Stand Up Meeting
  • Review Meeting
  • Retrospective Meeting


Sprints


  • Is a regular, repeatable work cycle or iteration during the development process.
  • In by-the-book Scrum, a sprint is 30 days long, but many teams prefer shorter sprints, such as one-week, two-week, or three-week sprints.
    •  The important thing is that a sprint is a consistent duration.
  • A deliverable has to be defined for each sprint, at the end of the sprint the deliverable will be demoed to the stakeholders.

Planning Meeting


  • Every sprint begins with the sprint planning meeting, in which the Product Owner and the team discuss which stories will be moved from the product backlog into the sprint backlog.
  • Once the team commits to the work, the Product Owner cannot add more work or alter course mid-sprint.
  • During this meeting team will assign sizes to the picked stories, the Business Owner will let the team to assign the sizes but he/she will be in charge of priority assignation. 

Daily Stand up


  • Each day during the sprint, a project team communication meeting occurs.
    • All members of the development team come prepared with the updates for the meeting.
    • The meeting starts precisely on time even if some development team members are missing.
    • The meeting should happen at the same location and same time every day.
    • The meeting length is set  to 15 minutes.

  • During the meeting, each team member answers three questions:
    • What have you done?
    • What are you planning to do today?
    • Any blockers? 


Review Meeting


  • At the end of each sprint, a sprint review meeting is held. 
  • During this meeting, the Scrum team shows what they accomplished during the sprint (DEMO).


Retrospective meeting

  • Is the last thing done in a sprint. 
  • During this meeting two main questions are asked: 
    • What went well during the sprint? 
    • What could be improved in the next sprint?
  • At the end of the sprint, the next retrospective is often begun by reviewing the list of things selected for attention in the prior sprint retrospective.

Scrum Software


  • GreenHopper
    • https://confluence.atlassian.com/display/AGILE/GreenHopper+6.2+Release+Notes
  • Rally: 
    • http://www.rallydev.com/ 

Agile Risk Management



What is Risk Management (RM) ?


  • Risk management  is the identification, assessment, and prioritization of  risks (whe ther positive or negative) followed by an application to minimize, monitor, and control the probability and/or impact of unfortunate events  or to maximize the realization of opportunities.


Regular RM Process


  • Identify, characterize threads.
  • Assess the vulnerability of critical assets to specific threats.
  • Determine the risk.
  • Identify ways to reduce those risks.
  • Prioritize risk reduction measures based on a strategy.



Some disadvantages


  • A list is created to track all the identified risks.
    • It basically is an ordered list, each risk will be ordered based on their impact on the project and the probability of that risk coming true.
    • A mitigation plan is created for the risks at the top of the list.

  • The problem with this approach is that it is not agile. 
    • This risk management is overwhelming and bureaucratic and experience tells us that teams has not the discipline to do this regularly by the book .
    • Only focus on the importnat risks only, which are common to all projects and even more they rarely manifest .

RM Process in Agile?



Risk Identification in Agile

  • Agile replaces explicit risk management with a continuous risk management.
    • The whole team does this exercise on an iterative basis. The results are recorded on white boards or flip charts.
  • Due to its iterative nature, it implicitly makes risk management a part of the project life cycle. 


Risk Identification in Agile

  • Risk gets addressed all the time as a part of daily stand-ups, iteration planning meetings, release planning meetings, retrospective and review meetings.

    • Daily Stand up meetings: team members need to answer this: Are there any blockers in your way?
    • Sprint Retrospective: allows catching all the risks associated with customer communication and requirements.

Risk Analysis


  • Qualitative analysis using judgment, intuition, and experience in determining risks and potential losses. 
  • Short development cycles and constant reviews in Agile, make this feasible and effective.
  • This is different from traditional projects where quantitative analysis is done and numbers are assigned to the damage which can occur.

Risk Mitigation in Agile


  • Scrum Master main function is to eliminate or mitigate any blocker.
  • Risks are not blocked items, instead they are on the Scrum master's watch list, as a note for things which could go wrong.
  • Agile stresses the importance of the continuous communication of the problems.
    • States that detect and talk about a risk is more than enough to mitigate it.
  • A Scrum team could sort stories by value and risk and work on the risky stories long enough to correctly identify and mitigate the risk. 

Disadvantages


  • Agile can help with risks related to change in requirement, lack of communication and under performance by team members.
  • However, risks which are external to the project need more than Agile to be resolved.
    • Lack of understanding of Scrum at the customer
    • Third party products don’t work as expected
    • External factors which the project depends on won’t happen in time
    • Data loss or corruption in team systems
  • For this risks is recommended to manage them using a regular risk process to monitor and handle those.

Questions?

deck

By jlopez17

deck

  • 1,997