You are on page 1of 4

Agile Software Development What is Agility?

Effective (rapid and adaptive) response to change Effective communication among all stakeholders Drawing the customer onto the team Organizing a team so that it is in control of the work performed Yielding Rapid, incremental delivery of software Who does it? SW engineers and other project stakeholders work together What are the steps? Basic frame work activities- customer communication, planning, modeling , construction, delivery, and evaluation How does assurance? If the agile team agrees that the process works and the team produce deliverable software increment that satisfies the customer requirement. Principles of Agile 1. satisfy customer through early and continues delivery of valuable software 2. welcome change requirement, even late in development 3. deliver working software frequently 4. business people and developer working together 5. face to face conversation 6. simplicity Characteristics of agile 1. its difficult to predict in advance which software requirements will persists and which will change 2. its difficult to predict how much design is necessary before construction is used to proven the design 3. Analysis, design, construction, and testing are not as predictable 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 occur Human Factors In agile development, process molds to the needs of people and team, not the other way round. Following key traits must exist in team: Competence, skills and knowledge of process can and thought Common focus: All must concentrate on common goal Collaboration: With one another, customer, & business managers Decision-making ability: Decision-making authority for both technical and project issues Fuzzy problem-solving ability: Deal with ambiguity Mutual trust & respect: Self-organization: Team serves as its own management through Organize itself for work to be done Organize process to best accommodate Organize delivery

Extreme Programming (XP) The most widely used agile process, originally proposed by Kent Beck, the common activities are XP Planning Begins with the creation of user stories Agile team assesses each story and assigns a cost Stories are grouped to form a deliverable increment A commitment is made on delivery date After the first increment project velocity is used to help define subsequent delivery dates for other increments

XP Design Follows the KIS principle Encourage the use of CRC cards (see Chapter 8) For difficult design problems, suggests the creation of spike solutionsa design prototype Encourages refactoringan iterative refinement of the internal program design XP Coding Recommends the construction of a unit test for a story 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 functionality

Adaptive Software Development ASD distinguishing features, it focus on human collaboration and team self organization Mission-driven planning Component-based focus Uses time-boxing (See Chapter 24) Explicit consideration of risks Emphasizes collaboration for requirements gathering Emphasizes learning throughout the process ASD Life Cycle Phases Speculation: Here project is initiated and adaptive cycle planning is conducted. ACP uses initiation information; mission statement, and basic requirements to define the set of release cycles required for project Collaboration: Motivated people work together in a way that multiplies their talent and creative output beyond their absolute numbers Learning: As team members begin to develop components that are part of adaptive cycle, the emphasis is on leaning as much as its is on progress toward a completed cycle. ASD Learning Ways Focus groups: Customer and/or end-users provide feedback on software increments as they are delivered Formal technical reviews, review components that are developed[ focus group for feed back] Postmortems, addressing performance and process Dynamic Systems Development Method DSDMdistinguishing features

Similar in most respects to XP and/or ASD Nine guiding 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. All changes during development are reversible. Requirements are baselined at a high level Testing is integrated throughout the life-cycle. DSDM life Cycle Three different iterative cycles preceded by two additional life cycle activities: Feasibility study, establish basic business requirement and constraints Business study: Establishes functional & information requirements to provide business value Functional model iteration: Produces a set of incremental prototypes that demonstrate functionality for customer with the intent of gathering additional requirements through user feedback Design and build iteration: Revisits prototype built earlier to ensure it had been engineered in a manner that enables it to provide operational business value for users Implementation: Places latest SW increment into the operational environment

Scrum

Scrumdistinguishing features Development work is partitioned into packets 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

Scrum Principles Small working teams Process adaptable to both technical & business changes Process yields frequent SW increments Development work & people who perform it are partitioned into clean, low coupling partitions (packets) Constant testing & documentation is performed Scrum process provides the ability to declare a product done whenever required Scrum Process Incorporates following framework activities: Requirements Analysis Design Evolution Delivery Within each framework activity, work tasks occur within a process pattern called a sprint Work conducted within a sprint is adapted to problem and is defined & modified in real-time by Scrum team Sprint Development Activities Backlog: A prioritized list of project requirements that provide business value for customer

Sprints: Consists of work units required to achieve a requirement defined in the backlog that must be fit into a predefined time-box (typically 30 days) Scrum meetings: Short (15 minutes) daily meetings held by Scrum team Demos: Deliver SW increment to customer so that implemented functionality can be demonstrated and evaluated by customer

Crystal

Crystaldistinguishing features Actually a family of process models that allow maneuverability based on problem characteristics Face-to-face communication is emphasized Suggests the use of reflection workshops to review the work habits of the team

Feature Driven Development FDDdistinguishing features Emphasis is on defining features a feature is a client-valued function that can be implemented in two weeks or less. Uses a feature template <action> the <result> <by | for | of | to> a(n) <object> A features list is created and plan by feature is conducted Design and construction merge in FDD Agile Modeling Is a practice-based methodology for effective modeling and documentation of softwarebased systems It is a collection of values, principles, and practices for modeling SW that can be applied on a SW development project in an effective and light-weight manner Agile models are more effective than traditional models because they are just barely good, they dont have to be perfect Teams must have courage and humility Agile Modeling principles Model with a purpose, specific goal for each model Use multiple models Travel light, keep only long term value Content is more important than representation Know the models and the tools you use to create them Adapt locally

You might also like