U-M CIS 375 - Agile Software Processes
Course Cis 375-
Pages 29

Unformatted text preview:

Agile Software ProcessesAgile Software DevelopmentSlide 3Manifesto for Agile Software DevelopmentAgility - 1Agility - 2Agile Processes - 1Agile Processes - 2Agility Principles - 1Agility Principles - 2Agility Principles - 3Traits of Agile Team MembersAgile Process ModelsExtreme Programming - 1Extreme Programming - 2Adaptive Software Development FeaturesAdaptive Software Development - 1Adaptive Software Development - 2Dynamic Systems Development MethodDynamic Systems Development Method Life Cycle - 1Dynamic Systems Development Method Life Cycle - 2Scrum PrinciplesScrum - 1Scrum - 2Feature Driven PhilosophyFeature Driven Design - 1Feature Driven Design - 2Agile Modeling - 1Agile Modeling - 201/14/19 1Agile Software ProcessesCIS 375Bruce R. MaximUM-Dearborn01/14/19 2Agile Software Development•Agile software engineering represents a reasonable alternative to conventional software engineering for certain classes of software and certain types of software projects•Agile development processes can deliver successful systems quickly•Agile development stresses continuous communication and collaboration among developers and customers01/14/19 3Agile Software Development•Agile software engineering embraces a philosophy that encourages customer satisfaction, incremental software delivery, small project teams (composed of software engineers and stakeholders), informal methods, and minimal software engineering work products •Agile software engineering development guidelines stress on-time delivery of an operational software increment over analysis and design01/14/19 4Manifesto for Agile Software DevelopmentProposes that it may be better 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 plan01/14/19 5Agility - 1•An agile team is able to respond to changes during project development•Agile development recognizes that project plans must be flexible•Agility encourages team structures and attitudes that make communication among developers and customers more facile•Eliminates the separation between customers and developers01/14/19 6Agility - 2•Agility emphasizes the importance of rapid delivery of operational software and de-emphasizes importance of intermediate work products•Agility can be applied to any software process as long as the project team is allowed to streamline tasks and conduct planning in way that eliminate non-essential work products01/14/19 7Agile Processes - 1Based on three key assumptions1. It is difficult to predict in advance which requirements or customer priorities will change and which will not2. For many types of software design and construction activities are interleaved (construction is used to prove the design)3. Analysis, design, and testing are not as predictable from a planning perspective as one might like them to be01/14/19 8Agile Processes - 2•Agile processes must be adapt incrementally to manage unpredictability•Incremental adaptation requires customer feedback based on evaluation of delivered software increments (executable prototypes) over short time periods01/14/19 9Agility Principles - 1•Highest priority is to satisfy customer through early and continuous delivery of valuable software•Welcome changing requirements even late in development, accommodating change is viewed as increasing the customer’s competitive advantage•Delivering working software frequently with a preference for shorter delivery schedules (e.g. every 2 or 3 weeks)•Business people and developers must work together daily during the project01/14/19 10Agility Principles - 2•Build projects around motivated individuals, given them the environment and support they need, trust them to get the job done•Face-to-face communication is the most effective method of conveying information within the development team•Working software is the primary measure of progress•Agile processes support sustainable development, developers and customers should be able to continue development indefinitely01/14/19 11Agility Principles - 3•Continuous attention to technical excellence and good design enhances agility•Simplicity (defined as maximizing the work not done) is essential•The best architectures, requirements, and design emerge from self-organizing teams •At regular intervals teams reflects how to become more effective and adjusts its behavior accordingly01/14/19 12Traits of Agile Team Members•Competence•Common focus•Collaboration•Decision-making ability•Fuzzy-problem solving ability•Mutual trust and respect•Self-organization01/14/19 13Agile Process Models•Extreme Programming (XP)•Adaptive Software Development (ASD)•Dynamic Systems Development Method (DSDM)•Scrum•Feature Driven Development (FDD)•Agile Modeling (AM)01/14/19 14Extreme Programming - 1•Planning–user stories created and ordered by customer value•Design–simple OO designs preferred–CRC cards and design prototypes are only work products–encourages use of refactoring•Coding–emphasizes use of pairs programming to create story code–continuous integration and smoke testing is utilized01/14/19 15Extreme Programming - 2•Testing –focuses on unit tests to exercise stories–unit tests created before coding are implemented using an automated testing framework to encourage use of regression testing–integration and validation testing done on daily basis–acceptance tests focus on system features and functions viewable by the customer01/14/19 16Adaptive Software DevelopmentFeatures•Self-organization arises when independent agents cooperate to create a solution to a problem that is beyond the capability of any individual agent•Adaptive cycle characteristics–Mission-driven–Component-based–Iterative–Time-boxed–Risk driven and change-tolerant01/14/19 17Adaptive Software Development - 1•Speculation–project initiated–risk driven adaptive cycle planning takes place•Collaboration–requires teamwork from a jelled team–joint application development is preferred requirements gathering approach–minispecs created01/14/19 18Adaptive Software Development - 2•Learning–components implemented and tested–focus groups provide feedback–formal technical reviews–postmortems01/14/19 19Dynamic Systems Development Method•Provides a framework for building and


View Full Document

U-M CIS 375 - Agile Software Processes

Course: Cis 375-
Pages: 29
Download Agile Software Processes
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 Agile Software Processes 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 Agile Software Processes 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?