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
  1. Customer satisfaction through continuous delivery.

  2. Accommodate changing requirements.

  3. Frequent delivery of working software.

  4. Collaboration between stakeholders and developers.

  5. Support, trust, and motivate people.

  6. Enable face-to-face interactions.

  7. Working software measures progress.

  8. Consistent development pace.

  9. Attention to technical detail enhances agility.

  10. Simplicity.

  11. Self-organizing teams encourage good design.

  12. 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
  1. Planning: Determine features for the next release quickly.

  2. Short releases: Release new versions in short cycles.

  3. Metaphor: Use a simple common vision.

  4. Simple design: Keep the system simple.

  5. Test-driven development: Continuous, automated testing.

  6. Refactoring: Restructure code for better modification.

  7. Pair Programming: Two developers, one station.

  8. Continuous Integration: Frequent code integration.

  9. Collective Code Ownership: Any team member can modify code.

  10. Sustainable Pace: Maintainable speed.

  11. Coding Standards: Consistent code standards.

  12. 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.