Agile and the 12 Principles - tugosera/tralalero-tralala GitHub Wiki
Agile is a flexible, customer-focused approach to software development that promotes rapid value delivery and adaptability. Originating from the Agile Manifesto (2001), its 12 core principles guide teams in dynamic environments.
-
Customer satisfaction through early and continuous delivery.
-
Welcome changing requirements, even late in development.
-
Deliver working software frequently, in short cycles.
-
Close collaboration between business and developers.
-
Build around motivated individuals and trust them.
-
Face-to-face conversation is the best communication.
-
Working software is the main progress measure.
-
Maintain a sustainable pace of development.
-
Focus on technical excellence and good design.
-
Simplicity is essential – maximize work not done.
-
Self-organizing teams produce the best results.
-
Regularly reflect and adjust behavior for effectiveness.
VUCA describes today’s unpredictable project environments:
-
Volatility: Rapid and unexpected changes (e.g., price swings).
-
Uncertainty: Future is unclear (e.g., unclear client needs).
-
Complexity: Many interconnected factors (e.g., global teams).
-
Ambiguity: Lack of clarity in decision-making (e.g., tech choices).
Agile methods (like Scrum) help teams thrive in VUCA by embracing change and continuous improvement.
Agile | Traditional |
---|---|
Adaptive and iterative | Rigid and sequential |
Frequent customer feedback | Feedback mainly at the start |
Self-organizing teams | Hierarchical team structure |
Embraces change | Resists late-stage changes |
Focus on simplicity in design and code to avoid unnecessary complexity. Agile values simplicity for faster, safer iterations.
CI/CD ensures rapid, automated integration, testing, and deployment of code. Supports Agile by enabling frequent, reliable delivery of working software.
-
Concept: A console-based simulation where resources flow down hierarchical levels.
-
Phases:
-
Requirements and planning (levels, resource flow).
-
Iterative development (classes, logic, testing).
-
Player decision-making and survival mechanics.
-
-
Agile Focus: Frequent testing, iteration, and feedback integration.