Presentation is loading. Please wait.

Presentation is loading. Please wait.

CS 3610: Software Engineering – Fall 2009 Dr. Hisham Haddad – CSIS Dept. Chapter 4 Agile Development Discussion of Agile Development and Agile Process.

Similar presentations


Presentation on theme: "CS 3610: Software Engineering – Fall 2009 Dr. Hisham Haddad – CSIS Dept. Chapter 4 Agile Development Discussion of Agile Development and Agile Process."— Presentation transcript:

1 CS 3610: Software Engineering – Fall 2009 Dr. Hisham Haddad – CSIS Dept. Chapter 4 Agile Development Discussion of Agile Development and Agile Process Models

2 CS 3610: Software Engineering – Fall 2009 Dr. Hisham Haddad – CSIS Dept. The Agile Movement (1) Prescriptive process models are high on discipline and structure, but with less consideration to the “inequalities” among teams members (human factor). “Light” or “Lean” development methods have been around for many years. Light methods evolved into Agile movement: “an effort to define new development methods to overcome the weakness and stiffness of conventional SE methods” Key change: Agile methods should be responsive to changing business requirements, end-user needs, and technology. But, should also be based on good SE principles, concepts, and methods.

3 CS 3610: Software Engineering – Fall 2009 Dr. Hisham Haddad – CSIS Dept. The Agile Movement (2) Agile development places more emphasis on the “human factor” and difference among people, the interactions among the team and team self-organization, the interactions with the customer and frequent feedback, and the response to changes throughout the development process. The values of Agile development: (Manifesto) Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan “That is, while there is value in the items on the right, we value the items on the left more.”

4 CS 3610: Software Engineering – Fall 2009 Dr. Hisham Haddad – CSIS Dept. What is Agility? Agility calls for: Effective (rapid and adaptive) response to change Effective communication and collaboration among all stakeholders at all levels Organizing a team so that it is in control of the work performed Recognition that planning is uncertain and planning must be flexible More customer involvement in the development process Yielding … Rapid delivery of working increments of software See the 12 principles defined by the Agile Alliance, page 73.

5 CS 3610: Software Engineering – Fall 2009 Dr. Hisham Haddad – CSIS Dept. What is an Agile Process? An Agility process: Is driven by customer descriptions of what is required of the software (scenarios) Recognizes that plans are short-lived Develops software iteratively with a heavy emphasis on construction activities Delivers multiple ‘working software increments’ Adapts as changes occur Seeks constant customer feedback Key characteristics: Must be adaptable Must be incremental

6 CS 3610: Software Engineering – Fall 2009 Dr. Hisham Haddad – CSIS Dept. Concerns with an Agile Process May not be applicable to large and complex projects May not be suitable to all people Resulting products may not be scalable into “enterprise-wide systems” Resulting products may not be scalable to meet future business needs Others?

7 CS 3610: Software Engineering – Fall 2009 Dr. Hisham Haddad – CSIS Dept. The Human Factor The “People Factor” is the center of an Agile process. The process “molds” to the team needs, rather than the reverse. An effective team should have these characteristics: –Competence –Common goal –Collaboration –Decision-making ability –Fuzzy problem-solving ability (ambiguity) –Mutual trust and respect (jelled team) –Self-organization (work tasks, process, work schedule) Note that most characteristics are derived from conventional SE processes.

8 CS 3610: Software Engineering – Fall 2009 Dr. Hisham Haddad – CSIS Dept. Agile Process Models All Agile process models conform to the Agile Development Manifesto and Principles. Extreme Programming (XP) Adaptive Software Development (ASD) Dynamic System Development Method (DSDM) Scrum Method Crystal (family of processes for different types of projects) Feature Driven Development

9 CS 3610: Software Engineering – Fall 2009 Dr. Hisham Haddad – CSIS Dept. Extreme Programming (XP) (1) The most widely used agile process, originally started in 1980s, and documented by Kent Beck in 1999 It uses OO approach. XP is based on Planning, Design, Coding, and Testing activities XP Planning (similar to use-case approach) –Begins by creating “user stories” with customer values –Agile team assesses each story and assigns a cost –Stories are grouped to for a deliverable increment –Agile team prioritizes grouped stories –A commitment is made on delivery date –After the first increment, “project velocity” is used to help define subsequent delivery dates for other increments

10 CS 3610: Software Engineering – Fall 2009 Dr. Hisham Haddad – CSIS Dept. Extreme Programming (XP) (2) XP Design (there is no true design!) –Follows the KIS principle –It is guidance for implementation –Encourages the use of CRC cards (see Chapter 8) –For difficult design problems, suggests the creation of “spike solution” - a partial design prototyping –Encourages “refactoring” - an iterative refinement of the “internal” program design after the code is written XP Coding –Recommends building unit tests for a store before coding commences –Encourages “pair programming” - better problem solving and quality assurance –Requires continuous code integration (daily)

11 CS 3610: Software Engineering – Fall 2009 Dr. Hisham Haddad – CSIS Dept. Extreme Programming (XP) (3) XP Testing –Unit tests are developed before coding! –All unit tests are executed daily (smoke/integration testing) –Unit test evolve to test suits –“Acceptance tests” are defined by the customer (derived from user stories) and executed to assess customer visible functionality

12 CS 3610: Software Engineering – Fall 2009 Dr. Hisham Haddad – CSIS Dept. Extreme Programming (XP) (4)

13 CS 3610: Software Engineering – Fall 2009 Dr. Hisham Haddad – CSIS Dept. Adaptive Software Development (1) ASD is originally proposed by Jim Highsmith for developing complex software systems Its focus is human collaboration and team self-organization Life cycle is Speculation, Collaboration, and Learning ASD distinguishing features: –Mission-driven planning –Component-based focus –Joint Application Development/Design/Requirements (JAD/JAR) –Explicit consideration of risks –Emphasizes collaboration for requirements gathering –Emphasizes “learning” throughout the process –Formal technical reviews

14 CS 3610: Software Engineering – Fall 2009 Dr. Hisham Haddad – CSIS Dept. Adaptive Software Development (2)

15 CS 3610: Software Engineering – Fall 2009 Dr. Hisham Haddad – CSIS Dept. Dynamic System Development Method Promoted by the DSDM Consortium (www.dsdm.org) Developed for projects that have tight time constraints Utilizes incremental prototyping (similar to RAD) The process is called DSDM Life Cycle DSDM distinguishing features (principles): –Active user involvement is imperative –DSDM teams must be empowered to make decisions –The focus is on frequent delivery of products –Fitness for business purpose is the essential criterion for acceptance of deliverables –Iterative and incremental development is necessary to converge on an accurate business solution –Requirements are baselined at a high level –Testing is integrated throughout the life-cycle

16 CS 3610: Software Engineering – Fall 2009 Dr. Hisham Haddad – CSIS Dept. SCRUM Agile process that focuses on “process patterns”, small working teams, and well-defined work increments. Distinguishing features: –Development work is partitioned into “packets” –Short-term work (30 days time-box) in stable environment –Testing and documentation are on-going as the product is constructed –Work occurs in “sprints” and is derived from a “backlog” of existing requirements –Meetings are very short and sometimes conducted without chairs –“Demos” are delivered to the customer with the time-box allocated –Frequent customer feedback –Heavy on communication

17 CS 3610: Software Engineering – Fall 2009 Dr. Hisham Haddad – CSIS Dept. Other Agile Process Models Crystal is a family of process models that allow “maneuverability” based on problem characteristics, face-to-face communication, and “reflection workshops” to review the work habits of the team. Feature Driven Development (FDD) emphasizes “features” as a client-valued function that can be implemented in two weeks or less. A features list is created and “plan by feature” is conducted. Agile Modeling (AM) emphasizes modeling and suggests a set of agile modeling principles to guide the developer during analysis an design tasks. Please read the chapter for more details.

18 CS 3610: Software Engineering – Fall 2009 Dr. Hisham Haddad – CSIS Dept. Suggested Problems Try to work problems 1, 2, 3, 4, 5, 8, 9, 11, and 12 from Chapter 4, page 93. No submission is required for practice assignments. Work it for yourself!

19 CS 3610: Software Engineering – Fall 2009 Dr. Hisham Haddad – CSIS Dept. Last Slide End of chapter 4


Download ppt "CS 3610: Software Engineering – Fall 2009 Dr. Hisham Haddad – CSIS Dept. Chapter 4 Agile Development Discussion of Agile Development and Agile Process."

Similar presentations


Ads by Google