Knowledge Transfer

Ethickfox kb page with all notes


Project maintained by ethickfox Hosted on GitHub Pages — Theme by mattgraham

Agile

Agile Values


We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value:

  1. Individuals and interactions over processes and tools.
    Success is determined by the team you work with and how well you work together, regardless of how well-researched your method is or how high-tech your tools are. Your team—and their ability to communicate efficiently—is more valuable than the processes they follow or the tools they use. For example, you can allow your team to define delivery processes such as sprint duration, let them assign their own tasks, and empower them to change processes and tools as needed.

  2. Working software over comprehensive documentation.
    Before you write a single line of code, traditional software development processes often require considerable documentation. One of the values of Agile is to deliver working software—not documentation—into the customer's hands as quickly as possible. Early delivery of the working software helps get early feedback from the customer.

  3. Customer collaboration over contract negotiation.
    As business needs continue to change and increase in complexity, detailed contracts leave lots of room for misunderstandings about deliverables and overcomplicate the change-management process. In contrast, Agile emphasizes customer-centric product development in which a customer feedback loop is built into the development lifecycle. Continuous collaboration with customers helps ensure the delivery of effective and valuable solutions. For example, high-level goals are emphasized in contracts rather than detailed lists of requirements.

  4. Responding to change over following a plan.
    As business needs continue to change and increase in complexity, detailed contracts leave lots of room for misunderstandings about deliverables and overcomplicate the change-management process. In contrast, Agile emphasizes customer-centric product development in which a customer feedback loop is built into the development lifecycle. Continuous collaboration with customers helps ensure the delivery of effective and valuable solutions. For example, high-level goals are emphasized in contracts rather than detailed lists of requirements.

That is, while there is value in the items on the right, we value the items on the left more.

(Beck et al., 2001, Manifesto for Agile Software Development)

Agile Principles

  1. Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.
  2. Welcome changing requirements, even late in development. Agile processes harness change for the customer’s competitive advantage.
  3. Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.
  4. Businesspeople and developers must work together daily throughout the project.
  5. Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done.
  6. The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.
  7. Working software is the primary measure of progress.
  8. Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely.
  9. Continuous attention to technical excellence and good design enhances agility.
  10. Simplicity—the art of maximizing the amount of work not done—is essential.
  11. The best architectures, requirements, and designs emerge from self-organizing teams.
  12. At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.

(Beck et al., 2001, Principles Behind the Agile Manifesto)

106.png

With Agile development, a team takes an iterative approach to incorporating feedback on projects. Testing occurs regularly, and a team can identify errors at any stage. Iterations are usually a few weeks long and include the same phases as the Waterfall methodology. Clients see results at the end of each iteration.

Agile Focus Areas

The Agile methodology seeks to streamline project work by focusing on three key areas: adaptability, user experience, and testing. Each of these focus points can help your team create a more holistic and streamlined design and development process.

Best Practices for Agile

2.png

16.png

Before Agile, extreme programming was created, it consisted of next points:

XP contains a lot of development practices, while SCRUM doesn’t. Such as:

Lean thinking puts a lot of emphasis on “respect for people.” What's the best way to think about this in your organization?

Respect for people is about respecting the fact that people closest to the product are capable of making critical decisions. Managers and executives should focus on empowering these employees and not just issuing top-down directives.