{ 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

  1. Satisfy Customers Through Early & Continuous Delivery
  2. Welcome Changing Requirements Even Late in the Project
  3. Deliver Value Frequently
  4. Business people and developers must work together daily through the project
  5. Build Projects Around Motivated Individuals
  6. The Most Effective Way of Communication is Face-to-face conversation
  7. Working Software is the Primary Measure of Progress
  8. Maintain a Sustainable Working Pace; The sponsers, developers, and users should be able to maintain a constant pace indefinitely
  9. Continuous Excellence and Good Design Enhances Agility
  10. Simplicity is Essential
  11. Self-organizing Teams Generate Most Value; “the best architectures, requirements, and designs emerge from self-organizing teams”
  12. Regularly Reflect and Adjust Your Way of Work to Boost Effectiveness

Summary

  1. Agile is a set of values and principles, it is not theme work or methodology
  2. A team can be agile by making decisions based on Agile Values and Principles
  3. The decision-making process is how a team becomes Agile
  4. 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

Scrum Framework Image

  1. Product Backlog: Product features and requirements desired by the different stakeholders.

  2. Based on the product backlog, what we are going to do in this Sprint (certain cycle) from about 2 weeks - 1 month

Scrum Details

  1. Backlog Refinement Meeting
  2. Sprint Planning Meeting Backlog: backlog, and next sprint
  3. Daily Scrum Meeting 15 mins max
  4. Sprint review: demo delivered to stakeholders for approval or rejection
  5. Sprint Retrospective : consider what went well and what needs improvement

Extreme Programming (XP) Framework

Extreme Programming (XP) Image

  1. XP Planning Begin with user stories, team estimates cost, or the commitment made on delivery date.. etc
  2. 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
  3. 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
  4. XP Testing unit tests executed daily, acceptance tests defined by the customer.