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
- Communication
- 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
- Team
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
- Per project
- 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