{ Software Engineering } Agile
Agile
What is Agility?
- Adaptive and flexible for the environment
- Effective response to change
- Rapid and adaptive
- Effective communication between all stakeholders
See Youtube video What is Agile?
Video Note
- Agile is a set of values and principles
- Agile gives a foundation for the teams to make decisions that result in software development
Values
- Individuals and Interactions VS Processes and tools
- Working software VS Comprehensive documentation
- Customer collaboration VS Contract negotiation
- Responding to change VS Following a plan
12 Principles
They are giving you the ability to make a good decision
- Satisfy Customers Through Early & Continuous Delivery
- Welcome Changing Requirements Even Late in the Project
- Deliver Value Frequently
- Business people and developers must work together daily through the project
- Build Projects Around Motivated Individuals
- The Most Effective Way of Communication is Face-to-face conversation
- Working Software is the Primary Measure of Progress
- Maintain a Sustainable Working Pace; The sponsers, developers, and users should be able to maintain a constant pace indefinitely
- Continuous Excellence and Good Design Enhances Agility
- Simplicity is Essential
- Self-organizing Teams Generate Most Value; “the best architectures, requirements, and designs emerge from self-organizing teams”
- Regularly Reflect and Adjust Your Way of Work to Boost Effectiveness
Summary
- Agile is a set of values and principles, it is not theme work or methodology
- A team can be agile by making decisions based on Agile Values and Principles
- The decision-making process is how a team becomes Agile
- The values and principles have enough flexibility to allow teams in a wide variety of organizations to develop software in the ways that work best for their particular situation → It provides enough direction to help a team continually move toward their full potential
Scrum Framework
![]()
-
Product Backlog: Product features and requirements desired by the different stakeholders.
-
Based on the product backlog, what we are going to do in this Sprint (certain cycle) from about 2 weeks - 1 month
Scrum Details
- Backlog Refinement Meeting
- Sprint Planning Meeting Backlog: backlog, and next sprint
- Daily Scrum Meeting 15 mins max
- Sprint review: demo delivered to stakeholders for approval or rejection
- Sprint Retrospective : consider what went well and what needs improvement
Extreme Programming (XP) Framework

- XP Planning Begin with user stories, team estimates cost, or the commitment made on delivery date.. etc
- XP Design Follows KIS(“Keep it small and simple.”, “Keep it short and simple.”) principle, encourages the use of CRC cards, designs prototypes and refactoring
- XP Coding pair programming: work in pairs, sharing one screen and keyboard (which also improves communication) so that all code is reviewed as it is written
- XP Testing unit tests executed daily, acceptance tests defined by the customer.