Скачать книгу

four Agile Manifesto values set the basis for 12 principles as follows (Agile Alliance 2001):

      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 for the shorter timescale.

      4 Business people 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‐managing teams.

      12 At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.

      The values and principles discussed earlier in this chapter are essential ingredients of the Agile mindset and set the foundation of Agile frameworks.

      Source:Illustration by Carmen Catlin.

       Scrum (1986, Takeuchi and Nonaka [concept]; 1995, Schwaber and Sutherland)

       Extreme Programing (XP) (1996, Beck)

       Kanban (1953, Toyota)

       Rational Unified Process (RUP) (1987, Jacobson [concept]; 1996, Kruchten/IBM)

       Crystal (1996, Cockburn)

       Dynamic Systems Development Methodology (1995, DSDM Consortium)

       Feature Driven Development (FDD) (1997, De Luca)

       Rapid application development (1991, Martin)

       Adaptive software development (1974, Edmonds [concept]; 1995, Highsmith and Bayer)

       Scrum is a timebound Agile method where each task or activity is limited by a specified duration. Scrum is the most popular framework; we discuss it in more detail later in this chapter.

       XP focuses on developing high‐quality software in a short period of time based on customer participation, rapid feedback, and subsequent planning and testing. It leverages four values: courage, simplicity, feedback, and communication.

       Kanban focuses on productivity and flow when there are no “features” released to a customer. It works well for small teams and is typically used in manufacturing processes. Kanban is not time‐sensitive.

       Crystal is a collection of Agile methodologies and recognizes that any project may need a unique set of practices. It focuses on early and regular product delivery by increasing user participation and eliminating bureaucracy, while reinforcing the need for communication, teamwork, and simplicity.

       DSDM emphasizes business needs, active user participants, team empowerment, and constant delivery. Requirements are determined early in the project and refined as the project progresses.

      In many projects, including those using Agile methods, effective communication often determines the success of the project. Each Agile method reinforces the importance of communication and most include more frequent meetings, such as daily meetings for Agile teams to coordinate activities. The daily meeting is a unique element of Agile project management for delivering results faster, correcting errors sooner, inspecting the project often, and overcoming obstacles before the obstacles become bottlenecks.