Chapter 3 – Agile Software Development (Ian Sommerville)

0.0(0)
studied byStudied by 0 people
learnLearn
examPractice Test
spaced repetitionSpaced Repetition
heart puzzleMatch
flashcardsFlashcards
Card Sorting

1/48

flashcard set

Earn XP

Description and Tags

Vocabulary flashcards covering key terms, practices, roles, and principles from Chapter 3—Agile Software Development. Suitable for exam review and concept reinforcement.

Study Analytics
Name
Mastery
Learn
Test
Matching
Spaced

No study sessions yet.

49 Terms

1
New cards

Agile development

An iterative approach where specification, design, implementation, and testing are inter-leaved, emphasizing working code, frequent increments, and minimal documentation.

2
New cards

Plan-driven development

A software process organized around distinct, pre-planned stages with specified outputs; iterations occur within activities but overall progress follows a detailed plan.

3
New cards

Rapid software development

Delivering useful software quickly to keep pace with fast-changing business requirements, often prioritized over up-front completeness of requirements.

4
New cards

Agile methods

Lightweight development approaches that focus on code, iterative delivery, customer collaboration, and rapid response to change while reducing process overheads.

5
New cards

Agile Manifesto

Foundational statement valuing individuals and interactions, working software, customer collaboration, and responding to change over processes, documentation, contracts, and plans.

6
New cards

Customer involvement (agile principle)

Ongoing participation of customers to provide, prioritize, and evaluate requirements throughout development.

7
New cards

Incremental delivery (agile principle)

Developing software in small, usable increments selected and reviewed by the customer.

8
New cards

People not process (agile principle)

Recognizing developer skills, letting teams choose their own working style rather than following prescriptive procedures.

9
New cards

Embrace change (agile principle)

Designing and planning with the expectation that requirements will evolve during development.

10
New cards

Maintain simplicity (agile principle)

Actively striving to eliminate unnecessary complexity in both code and process.

11
New cards

Extreme Programming (XP)

Influential agile method advocating very small releases, continuous testing, pair programming, and constant refactoring.

12
New cards

Incremental planning (XP)

Recording requirements on story cards and selecting stories for a release based on priority and available time.

13
New cards

Small releases (XP)

Delivering the minimal useful functionality first, then adding features frequently (e.g., every 2 weeks).

14
New cards

Simple design (XP)

Creating only enough design to satisfy current requirements—no more, no less.

15
New cards

Test-first development

Writing automated unit tests before implementing functionality to clarify requirements and ensure correctness.

16
New cards

Refactoring

Continuous code improvement to enhance clarity and maintainability without changing external behavior.

17
New cards

Pair programming

Two developers work at one workstation, collaboratively writing and reviewing code in real time.

18
New cards

Collective ownership

All developers can modify any part of the codebase, preventing knowledge silos.

19
New cards

Continuous integration

Merging completed work into the main code line as soon as tasks finish; all tests must pass after each integration.

20
New cards

Sustainable pace

XP practice discouraging overtime to preserve code quality and team productivity.

21
New cards

On-site customer

Customer representative embedded full-time with the XP team to clarify requirements and write acceptance tests.

22
New cards

User story

Short, customer-written description of desired functionality that serves as a primary requirements artifact in agile projects.

23
New cards

Task card

A developer-focused breakdown of a user story into specific implementation tasks used for estimating and scheduling.

24
New cards

Automated test harness

Framework (e.g., JUnit) that executes unit tests automatically each build, verifying new and existing functionality.

25
New cards

Acceptance test

Customer-defined automated or manual test that validates a user story’s fulfillment in a release.

26
New cards

Test automation

Writing executable tests before or during coding so they can be run quickly and repeatedly with minimal effort.

27
New cards

Scrum

Agile project-management framework organizing work into fixed-length sprints and emphasizing daily team coordination.

28
New cards

Product backlog

Ordered list of features, requirements, and tasks the Scrum team must address during the project.

29
New cards

Sprint

Time-boxed development iteration in Scrum, usually 2–4 weeks, resulting in a potentially shippable increment.

30
New cards

Potentially shippable product increment

Software produced at the end of a sprint that is complete enough to release, pending business decision.

31
New cards

Product owner

Person responsible for maintaining the product backlog, prioritizing work, and representing business needs.

32
New cards

ScrumMaster

Facilitator who ensures adherence to Scrum, removes impediments, and shields the team from external disruptions.

33
New cards

Velocity (Scrum)

Measure of backlog effort a team can complete in one sprint, used for planning and performance tracking.

34
New cards

Scrum of Scrums

Daily coordination meeting where representatives of multiple Scrum teams discuss progress and dependencies.

35
New cards

Scaling up (agile)

Adapting agile practices for large, complex systems that require multiple teams, up-front design, and documentation.

36
New cards

Scaling out (agile)

Extending agile adoption across an entire organization with established processes and legacy systems.

37
New cards

Brownfield system

System developed in an environment containing existing interacting systems, limiting flexibility for change.

38
New cards

Agility at scale (IBM model)

Framework describing disciplined agile delivery while addressing scaling factors like team size, distribution, compliance, and complexity.

39
New cards

Multi-team Scrum

Approach where several Scrum teams work on one product, using role replication, product architects, release alignment, and Scrum of Scrums.

40
New cards

Contractual issues (agile)

Challenge of aligning flexible, evolving requirements with traditional fixed-specification contracts; often requires time-and-materials agreements.

41
New cards

Agile maintenance

Applying agile practices to evolve existing systems, complicated by sparse documentation, customer availability, and team continuity.

42
New cards

Release alignment

Coordinating release dates of multiple teams so combined increments form an integrated, usable product.

43
New cards

Continuous delivery / frequent releases

Practice of providing regular software increments to stakeholders for feedback and value realization.

44
New cards

Rapid feedback

Core agile benefit where stakeholders evaluate frequent increments, enabling early detection of issues and realignment of priorities.

45
New cards

Sustainable architecture (large agile)

Balance between emergent design and intentional architecture needed to support long-term, multi-team agile development.

46
New cards

Distributed Scrum

Adapting Scrum for geographically separated teams using video conferencing, shared environments, and continuous integration.

47
New cards

Test coverage

Extent to which a set of tests exercises the codebase; difficult to judge completeness in test-first approaches.

48
New cards

People and teams factor

Consideration of skill levels, organization, and tooling when choosing between agile and plan-driven methods.

49
New cards

Regulatory compliance constraint

Requirement for documentation and formal evidence of quality that can clash with agile informality, especially in safety-critical domains.