Skip to content

Agile Scrum Note 02

Popular Agile methodologies

Crystal

lightweight approach

  • Learn (Shu), Collect (Ha), Invent/Blend (Ri) techniques
  • Seven principle
    • Frequent Delivery
    • Reflective Improvement
    • Close(Osmotic) Communication
    • Personal Safety
    • Focus
    • Easy access to expert users
    • Technical environment

Extreme Programming (XP)

lightweight approach

  • A system of practices that a community of software developers is evolving to address the problem of quickly delivering quality software, and then evolving it to meet business problems
  • Take proven practices to the extreme
    • If testing is good, let everybody test all the time
    • If code reviews are good, review all the time
    • If design is good, re-factor all the time
    • If integration is good, integrate all the time
    • If simplicity is good, do the simplest thing that could possibly work
    • If short iterations are good, make them as short as possible
  • Values
    • Communication
      • Among the team
      • Between the team and customer
    • Simplicity
      • Avoid over-engineering
      • Focus on unlocking the value fast
    • Feedback
      • Helps the team steer in the right direction
    • Re-assures the customer about what the team is building
    • Courage
      • To follow the right practices, standards
      • Arises out of the confidence that basic hygiene is in place
  • Practices
    • The Planning Game
    • Small releases
    • Metaphor
    • Simple design
    • Testing
    • Refactoring
    • Pair programming
    • Collective code ownership
    • Continuous integration
    • 40 hour week
    • Onsite customer
    • Coding standards
    • Open workspace
    • Daily schema migration
  • Benefits
    • Team
      • gets clear requirements
      • makes technical decisions and follows best practices
      • not over-worked
    • Customer
      • gets business value fast
      • gets accurate feedback
      • can make business decisions and implement changes faster

DSDM (revised version, Atern)

heavy approach

  • Basic concept
    • User involvement ensures the right business solution
    • Requirements evolve, but timescale is fixed
    • Early delivery enables early pay-back
    • Implement the 80/20 rule
    • Nothing is built perfectly first time
  • Principles
    • Focus on the business need
    • Delivery on time
    • Collaborate
    • Never compromise on quality
    • Build incrementally from firm foundations
    • Develop iteratively
    • Communicate continuously and clearly
    • Demonstrate control
  • Five core techniques
    • Iterative development
    • Time-boxing
    • MoSCoW prioritization
      • Must
      • Should
      • Could
      • Would
    • Facilitated workshops
    • Modeling

Feature-Driven Development (FDD)

heavy approach

  • Core Values
    • A system for building systems is essential
    • Simple is better
    • Process steps should be obviously valuable to team members
    • Good processes move to the background
  • Six Roles
    • Project Manager
    • Chief Architect
    • Development Manager
    • Chief Programmers
    • Class Owners (aka Developers)
    • Domain experts
  • Five Processes
    • Per project
      • Develop an overall model
      • Build a features list
      • Plan by feature
    • Per feature
      • Design by feature
      • Build by feature
  • Best for team with 10-250 developers, handy pool of talented workers, focus on good object model

Agile Unified Process

heavy approach

  • Based on the Rational Unified Process (RUP), a method of managing Object Oriented Software Development
    • Develop iteratively – risk being the primary driver
    • Manage requirements
    • Employ component-based architecture
    • Model software visually
    • Continuously verify quality
    • Control changes
  • Four Life-cycle phases
    • Inception
    • Elaboration
    • Construction
    • Transition
  • Six Engineering disciplines
    • Business modeling
    • Requirements
    • Analysis and Design
    • Implementation
    • Test
    • Deployment
  • Three Supporting disciplines
    • Environment management
    • Configuration and Change management
    • Project Management

Scrum

lightweight approach

  • Lifecycle
    • Inputs from stakeholders
    • Product backlog
    • Sprint planning meeting
    • Sprint backlog
    • 1-4 week sprint w. daily standup meeting
    • Sprint review
    • Sprint retrospective