Agile Methodologies

Course Index:

Introduction: Software Development (SDLC)
 Different Methodologies - Software Development
 Predictive Vs Adaptive Methodologies
 Why Agile?
 Agile Principles
 Comparison between Different Agile Methods
 Introduction to Scrum
 Scrum Roles and Tasks
 PM Vs Scrum Master
 Scrum Events
 Scrum Artifacts
 Estimation in Scrum
 Scrum Metrics
 Scrum of Scrum
 Responsibilities of PO and SM
 Agile Disadvantages
 Scrum Management Tools - Comparison
 JIRA Board
 Scrum Revision

Introduction: Software Development (SDLC)


Different Methodologies - Software Development


Predictive Vs Adaptive Methodologies


Why Agile?
          Change is Embraced
          End-goal can be Unknown
          Faster, high-Quality Delivery
          Strong Team Interaction
          Customers are Heard
          Continuous Improvement


Agile Manifesto and Principles

- Manifesto
       Individuals and interactions over processes and tools
       Working software over comprehensive documentation
       Working software is more useful and welcome than just presenting documents to clients in meetings
       Customer collaboration over contract negotiation
       Requirements cannot be fully collected at the beginning of the software development cycle, therefore continuous customer or stakeholder involvement is very important.
       Responding to change over following a plan
       Agile methods are focused on quick responses to change and continuous development.

- Principles
       Customer satisfaction by early and continuous delivery of valuable software
       Welcome changing requirements, even in late development
       Working software is delivered frequently (weeks rather than months)
       Close, daily cooperation between business people and developers
       Projects are built around motivated individuals, who should be trusted
       Face-to-face conversation is the best form of communication (co-location)
       Working software is the principal measure of progress
       Sustainable development, able to maintain a constant pace
       Continuous attention to technical excellence and good design
       Simplicity—the art of maximizing the amount of work not done—is essential
       Best architectures, requirements, and designs emerge from self-organizing teams
Regularly, the team reflects on how to become more effective, and adjusts accordingly


Comparison between different Agile methods

Characteristic
XP
Scrum
FDD
Crystal
Development Style
Iterative Increments
Iterative Increments
Iterative Increments
Iterative Increments
Project Team Size
Fewer than twenty people (small team)
All size
Large Team
All size
Team Distribution
Co-located
Co-located and Distributed team
Co-located and Distributed team
Co-located
Customer Involvement
Involved
Customer involvement through the role of product owner
Customer involved through reports
Customer involved through releases
Level of Documentation
Basic and as little as possible
Basic and anything of value
Vital
Basic documentation
Iteration Time Period
One to six weeks
Two to four weeks
Two days to two weeks
Depending on Crystal method

Introduction to Scrum



Scrum Roles and Tasks

ROLE – Scrum Master
Ensures the project team is working on the correct tasks and has everything needed to complete their work
TASKS
       Interacts daily with the project team to ensure progress is made
       Ensures that the team’s established software development processes are followed
       Ensures each team member is assigned tasks
       Removes blocking issues so team members can accomplish their tasks
       Coordinates with the product owner to ensure requirements are available and prioritized
       Coordinates with the project manager to ensure the team’s progress is accurately communicated

ROLE – Product Owner
Owns the vision and requirements for the project, thus controlling what the team works on.
TASKS
       Works with external stakeholders to define overall project requirements
       Documents requirements and their priorities
       Communicates with the scrum master on the list of requirements and their priorities
       Clarifies requirement questions and expectations

ROLE - Analyst
Serves as the conduit between the product owner and the project team so that everyone understands each other
TASKS
       Works with the product owner to define requirements within the product’s environment, budget and scope
       Documents business and system requirements
       Translates technical issues for product owner and external stakeholders
       Provides clarification on requirements for the project team

ROLE – QA Lead
Leads and provides direction to the QA team.
TASKS
       Provides direction on the activities of the team.
       Establishes the testing processes for the entire team
       Coordinates with the scrum master to ensure the team is working on the correct items
       Coordinates with the product owner, analyst or design team to determine deviation from requirements or as-designed feature


ROLE – QA Team
Tests the product to ensure quality specifications are met.
TASKS
       Creates test cases
       Tests the product (manual or automated)
       Logs defects

ROLE – Design Lead
Leads and provides direction to the design team
TASKS
       Provides design direction and vision for the project
       Coordinates with the scrum master to ensure the team is working on the correct items

ROLE – Design Team
Provides visual design assets for the product.
TASKS
       Creates visuals that can be used to apply the proper design for the product
       Creates assets that will be used within the product
       Provides support to the dev / QA teams to ensure designs are followed

ROLE – Project manager
Keeps track of the budget, schedule and scope
of the project and communicates status to all
Stakeholders
TASKS
       Works with stakeholders to define budget, schedule and scope of the project
       Ensures the team is working toward its goals and remains on track for project delivery
       Collects status and communicates it with the entire team and stakeholders
       Organizes and drives meetings with the team and third parties to ensure all dependencies are understood and met
       Mitigates issues that will impact the budget, schedule or scope of the project

ROLE – Dev Lead
Leads and provides direction to the dev team
TASKS
       Provides direction on the architecture of the project (or works with the architecture team), coding standards and what tasks each developer works on
       Establishes the development processes for the entire team
       Coordinates with the scrum master to ensure the team is on the right track.


ROLE – Dev Team
Develops the product according to desired specifications.
TASKS
       Implement requirements and change requests
       Fix defects
Coordinate with the product owner, analyst or design team for clarification on requirements


Project Manager vs Scrum Master


Scrum Events


Scrum Artifacts

Estimation in Scrum

Scrum Metrics


Scrum of Scrum

      What has your team accomplished since our last meeting?
      What problems occurred, if any, that negatively affected your team?
      What does your team want to accomplish before we meet again?
      What output from your team in future sprints, do you see as possibly interfering with the work of other teams?
      Does your team see any interference problems coming from the work of other teams?

Responsibilities of PO and SM
Product Owner's Responsibilities
  • Voice of the Stakeholders, represents the business
  • Manages stakeholder relationships, communications & expectations
  • Accountable for the vision, scope and scale of the product
  • Defines key features of the product & success criteria
  • Continuously refines requirements
  • Sets delivery schedule by managing the backlog – creates and updates the release plan, including prioritization
  • Accountable for the project success
  • Decides on release date, content and budget
  • Accepts and rejects work in the sprint reviews
  • Takes advice from the team on Backlog Dependencies
  • Single point of contact for the product (including New requirements Prioritizing backlog items)

Scrum Master's Responsibilities
  • Responsible for helping the team deliver work to the Product Owner
  • Makes sure the team can meet its commitments by removing any impediments they face, including Managing dependencies, escalating blockers that they cannot remove themselves
  • Facilitates process & meetings (e.g. Reviews, Stand Ups, Planning, Estimation, Scheduling, Prioritization)
  • Makes sure the team is fully functional, productive and improving quality
  • Shields the team from distractions and interferences (including the Product Owner)
  • Enables close co-operation across all roles and functions, removes barriers
  • Responsible for reporting progress, including producing standard outward-facing artefacts

Agile Disadvantages
          Disadvantages
          Relatively New
          People are afraid of what they do not know
          People tend to know what they are getting upfront before they commit budget
          Difficult to scale for large projects where Documentation  is essential
          Needs experience and skill if not to degenerate into
          code-and-fix
          If not managed well, the execution can be too Agile


Scrum Management Tools – Comparison




Scrum Revision





No comments:

Post a Comment