Agile Software Development

Ace your homework & exams now with Quizwiz!

Scrum Framework

-Roles: Product Owner, Scrum Master, Team -Activities: Sprint Planning, Sprint Review, Sprint Retrospective, Daily Scrum meeting, Sprint execution -Artifacts: Product Backlog, Sprint Backlog, Burndown Charts

Maintain simplicity (Principles of agile methods)

Focus on simplicity in both the software being developed and in the development process. Wherever possible, actively work to eliminate complexity from the system.

Customer Involvement (Principles of agile methods)

Customers should be closely involved throughout the development process. Their role is provide and prioritize new system requirements and to evaluate the iterations of the system.

Why the agile methods

Dissatisfaction with the overheads involved in software design methods of the 1980s and 1990s led to the creation of agile methods. •Focus on the code rather than the design • Are based on an iterative approach to software development • Are intended to deliver working software quickly and evolve this quickly to meet changing requirements.

Embrace change (Principles of agile methods)

Expect the system requirements to change, and so design the system to accommodate these changes.

Test-first development / Test-driven development

Testing is central to XP and XP has developed an approach where the program is tested after every change has been made • Writing tests before code clarifies the requirements to be implemented. • Tests are written as programs rather than data so that they can be executed automatically. The test includes a check that it has executed correctly. • Usually relies on a testing framework such as Junit. • All previous and new tests are run automatically when new functionality is added, thus checking that the new functionality has not introduced errors.

People not process (Principles of agile methods)

The skills of the development team should be recognized and exploited. Team members should be left to develop their own ways of working without prescriptive processes.

Incremental delivery (Principles of agile methods)

The software is developed in increments with the customer specifying the requirements to be included in each increment.

Scrum

agile method that focuses on managing iterative development rather than specific agile practices.

Extreme programming practices

see charts

Refactoring

• Constant code improvement to make changes easier when they have to be implemented. • When team members see code that can be improved, they make these improvements even in situations where there is no immediate need for them. • improves the software structure and readability and so avoids the structural deterioration that naturally occurs when software is changed • Changes are easier to make as the code is well-structured and clear. • some changes requires architecture refactoring and this is much more expensive.

Principles of agile methods.

• Customer Involvement • Embrace change • Incremental Delivery • Maintain simplicity • People not process

Characteristics of Extreme Programming

• Extreme Programming is a very influential agile method created by Kent Beck and Ward Cunningham around 1995. XP is a lightweight, efficient, low-risk, flexible, predictable, scientific, and fun way to develop software. New versions may be built several times per day; • Increments are delivered to customers every 2 weeks; • All tests must be run for every build and the build is only accepted if tests run successfully.

what makes a good story

• INVEST: • Independent to simplify estimation • Negotiable - stories are not contracts; there is space for negotiation • Valuable to the customer • Estimatable- they are the base for planning • Sized Appropriately - if necessary, break them into smaller ones. • Testable

Scrum meetings

• Once these are agreed, the team organize themselves to develop the software. • During this stage the team is isolated from the customer and the organization, with all communications channelled through the socalled 'Scrum master'. • The role of the Scrum master is to protect the development team from external distractions. • At the end of the sprint, the work done is reviewed and presented to stakeholders. The next sprint cycle then begins.

Scrum Roles

• Product owner • Scrum Master • Development team

Characteristics of agile software development

• Program specification, design and implementation are inter-leaved • Frequent delivery of new versions for evaluation (every two to three weeks) • reduce the delivery time for working software systems • The system is developed as a series of versions or increments with stakeholders involved in version specification and evaluation • Extensive tool support (e.g. automated testing tools) used to support development. • Minimal documentation - focus on working coders • rapid feedback on changing requirements

Examples of refactoring

• Re-organization of a class hierarchy to remove duplicate code. • Tidying up and renaming attributes and methods to make them easier to understand. • The replacement of inline code with calls to methods that have been included in a program library.

Scrum Sprint

• Sprints are fixed length, normally 2-4 weeks. • The starting point for planning is the product backlog, which is the list of work to be done on the project. • The selection phase involves all of the project team who work with the customer to select the features and functionality from the product backlog to be developed during the sprint.

XP testing features

• Test-first development. • Incremental test development from scenarios. • User involvement in test development and validation. • Automated test harnesses are used to run all component tests each time that a new release is built.

Scrum benefits

• The product is broken down into a set of manageable and understandable chunks. • Unstable requirements do not hold up progress. • The whole team have visibility of everything and consequently team communication is improved. • Customers see on-time delivery of increments and gain feedback on how the product works. • Trust between customers and developers is established and a positive culture is created in which everyone expects the project to succeed.

User Stories

•Short descriptions written by customers of what they need a system to do for them • scenario of use that might be experienced by a system user. • the system customer works closely with the development team and discusses these scenarios with other team members •they develop a "story card" that briefly describes a story that encapsulates the customer needs. •convenient format for expressing a desired business value for an item in the backlog. •The product owner writes the user story once they understand the value they are trying to deliver in the product. • It must also have an acceptance criteria (AC), which details what the user story must successfully do to marked as completed.

Agile Method Characteristics

•aim is top reduce overheads in the software process (by limiting documentation) and to be able to respond quickly to changing requirements without excessive rework. •allow the development team to focus on the software itself rather than on its design and documentation. •Plan-driven approaches involve a significant overhead in planning, designing, and documenting the system. •aim to cut down on process bureaucracy by avoiding work that has dubious long-term value and eliminating documentation that will probably never be used.


Related study sets

Ch 5/6, Pt. 4/1, Intro to Advertising

View Set

AP Biology - Unit 1 Progress Check: MCQ

View Set

Exam 1 and 2 Questions COSC 4360

View Set

Boolean Operators / Search Operators

View Set

A.C. CIRCUITS (SERIES AND PARALLEL)

View Set