DOC PREVIEW
DREXEL CS 451 - _L3 -- Agile Development

This preview shows page 1-2-23-24 out of 24 pages.

Save
View full document
View full document
Premium Document
Do you want full access? Go Premium and unlock all 24 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 24 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 24 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 24 pages.
Access to all documents
Download any document
Ad free experience
Premium Document
Do you want full access? Go Premium and unlock all 24 pages.
Access to all documents
Download any document
Ad free experience

Unformatted text preview:

CS 451 Software Engineering Agile DevelopmentAgile DevelopmentAgile ProcessesThe Manifesto for Agile SW DevelopmentWhat is “Agility”?An Agile ProcessAgility PrinciplesAgility Principles (cont’d)Agility Principles (cont’d)Human FactorsThe Domain for Agile ProcessesExtreme Programming (XP)Extreme Programming (XP)Extreme Programming (XP)ScrumScrumScrumScrumSlide 19ScrumDynamic Systems Development MethodDynamic Systems Development MethodAgile ModelingAgile Unified ProcessCS 451Software EngineeringAgile Development1Adapted from Pressman: Software Engineering - A Practitioner’s Approach2Agile DevelopmentMethodologies and practices to embrace, rather than reject, higher rates of change.3Agile Processes•XP (Extreme Programming)•Crystal•ASD•Scrum•DSDM (Dynamic Systems Development Method)•FDD (Feature-Driven Development)4The Manifesto for Agile SW Development“We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value: •Individuals and interactions over processes and tools •Working software over comprehensive documentation •Customer collaboration over contract negotiation •Responding to change over following a plan.” Kent Beck et al5What is “Agility”?•Drawing the customer onto the team•Organizing a team so that it is in control of the work performed•Effective communication among all stakeholders•Effective (rapid and adaptive) response to changeYielding …•Rapid, incremental delivery of softwareAgility IS NOT Hacking6An Agile Process•Is driven by customer descriptions of what is required (scenarios)•Recognizes that plans are short-lived•Develops software iteratively with a heavy emphasis on construction activities•Delivers multiple ‘software increments’•Adapts as changes occur7Agility Principles•Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.•Welcome changing requirements, even late in development. Agile processes harness change for the customer's competitive advantage. •Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale. •Business people and developers must work together daily throughout the project.8Agility Principles (cont’d)•Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done. •The most efficient and effective method of conveying information to and within a development team is face–to–face conversation.•Working software is the primary measure of progress.•Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely.9Agility Principles (cont’d)•Continuous attention to technical excellence and good design enhances agility. •Simplicity – the art of maximizing the amount of work not done – is essential. •The best architectures, requirements, and designs emerge from self–organizing teams. •At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.10Human Factors•the process molds to the needs of the people and team, not the other way around•key traits must exist among the people on an agile team and the team itself:–Competence.–Common focus.–Collaboration.–Decision-making ability.–Fuzzy problem-solving ability.–Mutual trust and respect.–Self-organization.11The Domain for Agile Processes•Projects with less than 50 people.•Access to user and business experts.•Developing software that are not life-critical.•Somewhat “at odds” with CMMI expectations, but not enemies…12Extreme Programming (XP)•The most widely used agile process (originally proposed by Kent Beck)•XP Planning–Begins with the creation of “user stories” (~ use-cases).–Agile team assesses each story and assigns a cost.–Stories are grouped to form a deliverable increment.–A commitment is made on delivery date.–New stories can be written at any time.–After the first increment “project velocity” is used to help define subsequent delivery dates for other increments.13Extreme Programming (XP)•XP Design–Follows the KIS principle–Encourage the use of CRC (Class-Responsibility-Collaborator) cards –For difficult design problems, suggests the creation of “spike solutions”—a design prototype–Encourages “refactoring”—an iterative refinement of the internal program design•XP Coding–Recommends the construction of a unit test for a store before coding commences–Encourages “pair programming”•XP Testing–All unit tests are executed daily–“Acceptance tests” are defined by the customer and executed to assess customer visible functionality14Extreme Programming (XP)unit test continuous integration acceptance testingpair programmingReleaseuser stories values acceptance test criteria iteration plansimple design CRC cardsspike solutions prototypesrefactoringsoftware incrementproject velocity computed15Scrum•Scrum: a team of 8 individuals in Rugby.•An incremental, time-boxed development with an added twist: frequent, very short, status-report meetings.16Scrum•Originally proposed by Schwaber and Beedle•Scrum—distinguishing features–Development work is partitioned into “packets”–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 allocated17Scrum•Marketing group sets the release date.•Development and marketing identify the most valuable features for the 1st release.•A small team (< 10) is identified to work on a given feature / capability.•Planning proceeds quickly because initial assumptions are expected to change.18Scrum•At the initial planning phase a chief architect is identified and an architecture is developed.•A sprint is a short (1-4 weeks) development phase that delivers some valuable functionality.•A sprint is time-boxed: the functionality may be reduced, but the delivery date cannot change.•The backlog identifies all tasks, and drives team activity.•Testing and documentation are on-going as the product is constructed1920ScrumScrum Process Flow (used with permission)21Dynamic Systems Development Method•Promoted by the DSDM


View Full Document

DREXEL CS 451 - _L3 -- Agile Development

Download _L3 -- Agile Development
Our administrator received your request to download this document. We will send you the file to your email shortly.
Loading Unlocking...
Login

Join to view _L3 -- Agile Development and access 3M+ class-specific study document.

or
We will never post anything without your permission.
Don't have an account?
Sign Up

Join to view _L3 -- Agile Development 2 2 and access 3M+ class-specific study document.

or

By creating an account you agree to our Privacy Policy and Terms Of Use

Already a member?