IT Systems Development: Preparation, Analysis, Design and Problem-solving - Agile Methodologies
Agile Methodologies
Methodology Selection
Heavy Weight Methods (Traditional):
Large teams, structured processes, comprehensive documentation.
Solutions at the final stage, slower, less customer satisfaction, limited interaction, process priority.
Light Weight Methods (Agile):
Smaller teams, flexibility, collaboration, incremental value.
Incremental releases, speedy, high customer satisfaction, improved interaction, quality products.
Agile Method
Agile processes use short iterations and allow design changes.
Derived from Iterative and Incremental processes.
Agile Manifesto
Values:
Individuals/interactions over processes/tools.
Working software over documentation.
Customer collaboration over contract negotiation.
Responding to change over following a plan.
12 Principles Behind the Agile Manifesto
Customer satisfaction through continuous delivery.
Accommodate changing requirements.
Frequent delivery of working software.
Collaboration between stakeholders and developers.
Support, trust, and motivate people.
Enable face-to-face interactions.
Working software measures progress.
Consistent development pace.
Attention to technical detail enhances agility.
Simplicity.
Self-organizing teams encourage good design.
Regular reflections for improvement.
Agile Methodologies
Extreme Programming (XP)
Scrum
Extreme Programming (XP)
Core Values:
Frequent communication.
Simplicity.
Feedback.
Courage.
XP Principles
Pair programming, unit testing, integration, short iterations.
Rapid feedback.
Simplest approach.
Small changes.
Preserve options, delay decisions.
Quality work.
XP Key Practices
Whole Team, Customer Tests, Collective Ownership, Test-Driven Coding, Standard Development, Pair Programming, Refactoring, Continuous Integration, Simple Design, Sustainable Pace, Metaphor, Small Releases, Planning Game.
XP Key Practices Explained
Planning: Determine features for the next release quickly.
Short releases: Release new versions in short cycles.
Metaphor: Use a simple common vision.
Simple design: Keep the system simple.
Test-driven development: Continuous, automated testing.
Refactoring: Restructure code for better modification.
Pair Programming: Two developers, one station.
Continuous Integration: Frequent code integration.
Collective Code Ownership: Any team member can modify code.
Sustainable Pace: Maintainable speed.
Coding Standards: Consistent code standards.
On-Site Customer: Real-time feedback.
Scrum
Lightweight framework for adaptive solutions.
Requires a Scrum Master to foster:
Ordered Product Backlog.
Value Increment during a Sprint.
Inspection and adjustment.
Scrum Theory
Based on empiricism and lean thinking.
Iterative, incremental approach to optimize predictability and control risk.
Engages skilled and expert groups.
Scrum Values
Commitment, Focus, Respect, Openness, Courage.
Scrum Pillars
Transparency, Inspection, Adaptation.
Scrum Team
Cohesive, cross-functional, self-managing unit (Product Owner, Developers, Scrum Master).
Scrum Team - Developers tasks
Sprint plan, Definition of Done, adapt plan, accountability.
Scrum Team - Product Owner tasks
Product Goal, Product Backlog items, order backlog, ensure transparency.
Scrum Team - Scrum Master tasks
Scrum Team
Coach team, high-value increments, remove impediments, ensure Scrum events.
Product Owner
Effective Product Goal definition, clear backlog, empirical product planning, facilitate collaboration.
The organization
Lead Scrum adoption, plan implementations, empirical approach, remove barriers.
Scrum Events
Regularity, minimize meetings, fixed length, consistency.
Sprints are the heartbeat of Scrum.
Scrum Events - The Sprint
No endangering changes, quality maintained, backlog refined, scope clarified.
Scrum Events - Sprint Planning
Plan work for the Sprint (WHY, WHAT, HOW, SPRINT BACKLOG).
Scrum Events - Daily Scrum
Increase likelihood of a Done increment, plan work for 24 hours.
Scrum Events - Sprint Review
Discuss completed work, collaborate on next steps.
Scrum Events - Sprint Retrospective
Improve team effectiveness, discuss sprint (individuals, interactions, processes, tools).
Scrum Events - Time Boxes for the 5 Scrum Events
EVENT | PURPOSE | TIMEBOX | FREQUENCY | HOW THIS REDUCES MEETINGS |
|---|---|---|---|---|
SPRINT | DELIVER A DONE, USABLE INCREMENT | 1 MONTH OR LESS | N/A | LIMITS THE TIME HORIZON FOR DELIVERY TO ONE MONTH |
SPRINT PLANNING | PLAN THE WORK FOR THE SPRINT | EIGHT HOURS | ONCE AT SPRINT START | PLANNING TOGETHER SAVES TIME |
DAILY SCRUM | INCREASE LIKELIHOOD OF A DONE INCREMENT | 15 MINUTES | DAILY | IMPROVED COMMUNICATION, QUICK DECISIONS, EARLY IMPEDIMENT IDENTIFICATION |
SPRINT REVIEW | DISCUSS COMPLETED WORK, COLLABORATE NEXT | 4 HOURS | ONCE AT SPRINT END | FREQUENT FEEDBACK ALLOWS EARLY ADJUSTMENTS |
SPRINT RETROSPECTIVE | IMPROVE TEAM EFFECTIVENESS | 3 HOURS | ONCE AT SPRINT END | BRAINSTORM PROCESSES AND IMPROVE INTERACTIONS |
Scrum Artifacts
Represent work or value, maximize transparency.
Product Backlog, Sprint Backlog, Increment.