Agile Development Chapter 3

BrightestOakland avatar
BrightestOakland
·
·
Download

Start Quiz

Study Flashcards

34 Questions

What did the 'Manifesto for Agile Software Development' 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

What does Agile software engineering combine?

Development guidelines and communication

Agile development stresses delivery over analysis and design.

True

Agile software engineering represents a reasonable alternative to conventional ______ engineering.

software

According to agile principles, what is the highest priority?

satisfy the customer through early and continuous change

What must working software exhibit besides importance?

variety of quality attributes

What is a key trait that should exist among people on an effective software team?

Competence

What does a self-organizing team in agile development control?

work it performs

According to Ivar Jacobson, what is agility in the context of software engineering work?

Agility has become today’s buzzword when describing a modern software process. An agile team is nimble and able to appropriately respond to changes.

Agility gives software engineers the freedom to hack out solutions without a proper process.

False

How does an agile process flatten the cost of change curve?

By accommodating changes late in a project without dramatic cost and time impact

What is essential for an agile software process to manage unpredictability?

Customer feedback

According to Kent Beck, what are the five values that establish a foundation for all work performed in Extreme Programming (XP)?

communication, simplicity, feedback, courage, respect

What is the primary testing tactic used in Extreme Programming (XP)?

Unit testing

Feedback in Extreme Programming (XP) can be derived from the customer, implemented software, and managers.

True

What does XP use as its primary test approach?

unit test

Refactoring allows improvement of the internal structure of a design or source code without changing its external ________ or behavior.

functionality

What are some of the issues that lead to an XP debate?

Requirements volatility, conflicting customer needs, lack of formal design

What does XP emphasize instead of formal design?

XP emphasizes incremental development and simplicity

What do XP proponents argue about controlling scope creep?

XP provides mechanisms to control scope creep

What is a time-box in project management?

A period of time allocated to accomplish a task

What are the three key questions asked and answered by all team members in Scrum meetings?

What do you plan to accomplish by the next team meeting?

Demos in agile development only focus on functionalities that can be delivered within a specific time-box.

True

The Dynamic Systems Development Method (DSDM) philosophy is based on a modified version of the __________ principle.

Pareto

According to XP, what is the design principle that is rigorously followed?

KIS (Keep It Simple)

XP discourages designing extra functionality assuming it will be needed later.

True

What are CRC cards used for in XP?

Identify and organize the object-oriented classes relevant to the current software increment

Refactoring improves the ______ structure of a design (or source code) without changing its external behavior.

internal

Match the following terms with their descriptions:

XP acceptance tests = Specified by the customer, focus on overall system features Refactoring = Process of changing code without altering external behavior CRC cards = Used to identify and organize relevant object-oriented classes Pair programming = Involves two developers working together at one workstation

Who proposed Adaptive Software Development (ASD) as a technique for building complex software and systems?

Jim Highsmith

Which of the following are phases in the ASD 'life cycle' described by Jim Highsmith?

Learning

Collaboration is a recurring theme in all agile methods.

True

ASD teams learn in three ways: focus groups, technical reviews, and project ____________.

postmortems

Match the agile software development method with its creator:

Adaptive Software Development (ASD) = Jim Highsmith Scrum = Jeff Sutherland Feature Driven Development (FDD) = Unknown

Study Notes

Agile Development

  • The Agile Alliance signed the "Manifesto for Agile Software Development" in 2001, emphasizing customer satisfaction, early delivery, and responding to change.
  • Agile software engineering combines a philosophy and development guidelines, focusing on customer satisfaction, small project teams, informal methods, and simplicity.

Key Concepts

  • Agile development:
    • Values individuals and interactions over processes and tools
    • Places working software over comprehensive documentation
    • Prioritizes customer collaboration over contract negotiation
    • Responds to change over following a plan
  • Agile process models:
    • Adaptive Software Development (ASD)
    • Scrum
    • Dynamic Systems Development Method (DSDM)
    • Crystal
    • Feature Driven Development (FDD)
    • Lean Software Development (LSD)
    • Agile Modeling (AM)
    • Agile Unified Process (AUP)

Agility

  • Agility in software engineering:
    • Recognizes the importance of embracing change
    • Involves a team structure and attitude that facilitates communication
    • Emphasizes rapid delivery of operational software
    • De-emphasizes intermediate work products
  • Jacobson's view on agility:
    • Change is the primary driver for agility
    • Agility involves recognizing the importance of individuals working in teams

Cost of Change

  • Conventional software development: the cost of change increases nonlinearly as a project progresses

  • Agile development:

    • Reduces the cost of change by delivering software in increments
    • Enables accommodating changes late in a project without significant cost and time impact
    • Practices like continuous unit testing and pair programming help control change within an increment### Agile Development
  • Agile software process addresses key assumptions about software projects:

    • Difficulty in predicting software requirements and customer priorities
    • Interleaved design and construction
    • Unpredictability in analysis, design, construction, and testing
  • An agile process must be adaptable and incremental to manage unpredictability

  • Adaptation requires customer feedback, which can be facilitated through an operational prototype or incremental development strategy

Agility Principles

  • The Agile Alliance defines 12 principles for achieving agility:
    • Satisfy the customer through early and continuous delivery of valuable software
    • Welcome changing requirements, even late in development
    • Deliver working software frequently
    • Business people and developers must work together daily
    • Build projects around motivated individuals
    • Face-to-face conversation is the most efficient method of conveying information
    • Working software is the primary measure of progress
    • Agile processes promote sustainable development
    • Continuous attention to technical excellence and good design enhances agility
    • Simplicity is essential
    • The best architectures, requirements, and designs emerge from self-organizing teams
    • The team reflects on how to become more effective and adjusts its behavior accordingly

The Politics of Agile Development

  • There is ongoing debate about the benefits and applicability of agile software development
  • Agile development is not a replacement for software engineering, but rather a complementary approach
  • The key question is how to achieve agility while meeting customers' needs today and in the long term

Human Factors

  • Agile development focuses on the talents and skills of individuals, molding the process to specific people and teams
  • The process must be tailored to the needs of the people and team, rather than the other way around
  • Key traits for an effective software team include:
    • Competence
    • Common focus
    • Collaboration
    • Decision-making ability
    • Fuzzy problem-solving ability
    • Mutual trust and respect
    • Self-organization

Extreme Programming (XP)

  • XP is an agile process that emphasizes communication, simplicity, feedback, courage, and respect

  • XP values are used as a driver for specific activities, actions, and tasks

  • Communication is facilitated through close collaboration between customers and developers, effective metaphors, continuous feedback, and avoidance of voluminous documentation

  • Simplicity is achieved by designing for immediate needs and refactoring later if necessary

  • Feedback is derived from the software itself, the customer, and other team members

  • Courage (or discipline) is required to adhere to certain XP practices### Agile Development: Extreme Programming (XP)

  • Agile teams often argue that designing for the future will save time and effort in the long run, but XP teams must design for today, recognizing that future requirements may change dramatically.

The XP Process

  • XP uses an object-oriented approach as its preferred development paradigm.
  • The XP process encompasses four framework activities: planning, design, coding, and testing.
  • Planning involves listening to the customer, creating user stories, and assigning values and costs to each story.
  • The XP team orders the stories to be developed in one of three ways: by implementing all stories immediately, prioritizing high-value stories, or prioritizing riskiest stories.

User Stories

  • A user story describes required output, features, and functionality for software to be built.
  • Each story is written by the customer and placed on an index card.
  • The customer assigns a value (priority) to the story based on the overall business value of the feature or function.

Project Velocity

  • Project velocity is the number of customer stories implemented during the first release.
  • It helps estimate delivery dates and schedule for subsequent releases and determines whether an overcommitment has been made for all stories across the entire development project.

Design

  • XP design follows the KIS (keep it simple) principle.
  • A simple design is always preferred over a more complex representation.
  • The design provides implementation guidance for a story as it is written, nothing less, nothing more.
  • XP recommends the use of CRC cards as an effective mechanism for thinking about the software in an object-oriented context.

Refactoring

  • Refactoring is a construction technique that improves the internal structure of a design (or source code) without changing its external functionality or behavior.
  • Refactoring is used to control modifications by suggesting small design changes that can radically improve the design.

Coding

  • XP recommends that two people work together at one computer workstation to create code for a story, called pair programming.
  • Pair programming provides a mechanism for real-time problem solving and real-time quality assurance.
  • Once the code is complete, it can be unit-tested immediately, providing instantaneous feedback to the developers.

Testing

  • Unit tests are created before coding commences, focusing on an individual software component.
  • Unit tests are implemented using a framework that enables them to be automated.
  • Acceptance tests, also called customer tests, are specified by the customer and focus on overall system features and functionality.

Industrial XP (IXP)

  • IXP is an organic evolution of XP that incorporates six new practices to ensure success for significant projects within a large organization.
  • The new practices include readiness assessment, project community, and others.
  • IXP differs from the original XP in its greater inclusion of management, its expanded role for customers, and its upgraded technical practices.

This quiz covers the basics of agile development, including the concept of agility and its applications. It is designed for students who want to understand the principles of agile development.

Make Your Own Quizzes and Flashcards

Convert your notes into interactive study material.

Get started for free

More Quizzes Like This

Scrum and Agile Methodologies Quiz
10 questions
Agile Development Basics
24 questions

Agile Development Basics

AudibleSatellite1453 avatar
AudibleSatellite1453
Rôles et responsabilités Scrum
38 questions
Use Quizgecko on...
Browser
Browser