Agile Development

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

1/59

encourage image

There's no tags or description

Looks like no tags are added yet.

Study Analytics
Name
Mastery
Learn
Test
Matching
Spaced

No study sessions yet.

60 Terms

1
New cards

Agile Development

A methodology emphasizing flexibility and customer collaboration.

2
New cards

Manifesto for Agile Software Development

A guiding document prioritizing individuals over processes.

4 BREAKING POINTS:

1. Individuals and interactions over processes and tools

2. Working software over comprehensive documentation

3. Customer collaboration over contract negotiation

4. Responding to change over following a plan

3
New cards

Agility

Rapid and adaptive response to changing requirements.

4
New cards

Software Increments

Multiple versions of software delivered throughout development.

5
New cards

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', and adapts as changer occur

6
New cards

Agility Principles - I

highest priority is to satisfy the customer through early and continuous delivery of valuable software, welcome changing requirements, frequent software delivery, business and developers collaborate daily, build projects around motivated individuals, and Face-to-face communication is most effective

7
New cards

Agility Principles - II

- Working software is the primary measure of progress

- sustainable development

- continuous attention to technical excellence and good design

- simplicity

- self organizing teams

- regular reflection and adaption

8
New cards

Simplicity

the art of maximizing the amount of work not done - is essential.

9
New cards

Human Factors

the process molds to the needs of the people and team, not the other way around

10
New cards

Key traits must exist among the people on an agile team and the team itself:

Competence.

Common focus.

Collaboration.

Decision-making ability.

Fuzzy problem-solving ability.

Mutual trust and respect.

Self-organization.

11
New cards

Competence

innate talent/skills

12
New cards

common focus

same goals

13
New cards

collaboration

team members collaborate with stakeholders

14
New cards

decision making

team given autonomy to decide project issues (tech/nontech)

15
New cards

fuzzy

ambiguity and will continually be buffeted by change

16
New cards

self-organization

In the context of agile development, ______________ implies three things: (1) the agile team organizes itself for the work to be done, (2) the team organizes the process to best accommodate its local environment, (3) the team organizes the work schedule to best achieve delivery of the software increment

17
New cards

Extreme Programming (XP)

The most widely used agile process, originally proposed by Kent Beck

18
New cards

XP Planning

Begins with the creation of "user stories"

Agile team assesses each story and assigns a cost

Stories are grouped to for 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

19
New cards

Project velocity

- is the number of customer stories implemented during the first release.

- help define subsequent delivery dates for other increments

- can then be used to (1) help estimate delivery dates and schedule for subsequent releases and (2) determine whether an overcommitment has been made for all stories across the entire development project.

20
New cards

TRUE (about XP planning)

(TRUE or FALSE)

XP Planning starts by creating "user stories," which describe features or tasks from the user's perspective.

21
New cards

FALSE (about commitment - first increment*)

(TRUE or FALSE)

A commitment is made to deliver the last increment by a set date.

22
New cards

TRUE (about project velocity)

After the first increment, the "project velocity" (the rate at which the team delivers user stories) is used to estimate and set dates for future increments.

23
New cards

Stories

____________ are grouped together to form a deliverable increment of software.

24
New cards

User stories

Short descriptions of features from the user's perspective.

25
New cards

XP Design

- Follows the KIS principle

- Encourage the use of CRC (Class Responsibility Collaborator) cards

- For difficult design problems, suggests the creation of "spike solutions"

- Encourages "refactoring"

26
New cards

Class Responsibility Collaborator (CRC)

identify and organize the object-oriented classes that are relevant to the current software increment.

27
New cards

KIS principle

Keep It Simple; focus on simplicity in design.

28
New cards

Spike solutions

a design prototypes created to explore difficult design problems.

29
New cards

Refactoring

- an iterative refinement of the internal program design

- is the process of changing a software system in such a way that it does not alter the external behavior of the code yet improves the internal structure.

30
New cards

XP coding

- Recommends the construction of a unit test for a store before coding commences

- Encourages "pair programming"

31
New cards

Pair programming

where two developers work together on the same code to improve quality and share knowledge.

32
New cards

XP Testing

- All unit tests are executed daily

- "Acceptance tests" are defined by the customer and executed to assess customer visible functionality

33
New cards

FOUR XP process

- XP Planning

- XP Design

- XP Coding

- XP Testing

34
New cards

Unit tests

Tests for individual components before coding starts.

35
New cards

Acceptance tests

Tests defined by customers to validate functionality.

36
New cards

Adaptive Software Development (ASD)

- Agile methodology focusing on mission-driven planning (CENTERED)

- a technique for building complex software and systems

- Originally proposed by Jim Highsmith

37
New cards

ASD — distinguishing features

- Mission-driven planning

- Component-based focus

- Uses "time-boxing"

- Explicit consideration of risks

- Emphasizes collaboration for requirements gathering

- Emphasizes "learning" throughout the process

38
New cards

Time-boxing

Fixed time periods for completing tasks or activities.

39
New cards

THREE ASD Process

- Speculation

- collaboration

- learning

40
New cards

Dynamic Systems Development Method (DSDM)

- is an iterative software process in which each iteration follows the 80 percent rule. That is, only enough work is required for each increment to facilitate movement to the next increment. The remaining detail can be completed later when more business requirements are known or changes have been requested and accommodated.

- Promoted by the DSDM Consortium

41
New cards

80 percent rule

- which means that each iteration of the software should focus on delivering enough functionality to move to the next stage.

- 80% of the work is done initially, with the remaining 20% being refined and completed later as more information becomes available or as new business needs and changes arise.

42
New cards

DSDM Consortium

Organization promoting the Dynamic Systems Development Method.

43
New cards

DSDM—distinguishing features

Nine guiding principles

- Active user involvement is imperative.

- Empowered to make decisions.

- Frequent delivery of products.

- Fitness for business purpose

- Iterative and incremental development

- Reversible changes

- High level requirements baselining

- Integrated testing

44
New cards

Scrum

- Agile framework partitioning work into sprints.

- is a specific Agile methodology that is used to facilitate a project.

- Originally proposed by Schwaber and Beedle

<p>- Agile framework partitioning work into sprints.</p><p>- is a specific Agile methodology that is used to facilitate a project.</p><p>- Originally proposed by Schwaber and Beedle</p>
45
New cards

Scrum—distinguishing features

- Work partitioned into "packets"

- ongoing testing and documentation

- work in "sprints"

- short meetings

- Time-Boxed Demos

46
New cards

Demo

- is presented to the customer or stakeholders

- time-boxed - it has fixed duration to showcase the completed work

47
New cards

Sprints

Time-boxed periods for development, typically 2-4 weeks (typically 30days)

48
New cards

Backlog

Prioritized list of customer-valued product features.

49
New cards

Crystal

- is an agile methodology proposed by Alistair Cockburn and Jim Highsmith. It is a family of process models, which means it offers different approaches to development based on the unique characteristics of a project or problem

50
New cards

Crystal—distinguishing features

- family of process models

- face-to-face communication

- reflection workshops

51
New cards

maneuverability

meaning the process can be tailored to suit the specific needs of the project.

52
New cards

Feature Driven Development (FDD)

Originally proposed by Peter Coad et al

53
New cards

FDD—distinguishing features

- emphasis on Features

- Feature template

- feature list and "plan by feature"

- Designed and construction merged

54
New cards

FDD process

- Develop an overall model

- build a features list

- plan by feature

- design feature

- build by feature

55
New cards

Agile Modeling

is a practice proposed by Scott Ambler that emphasizes flexible and efficient modeling techniques in software development. It promotes the idea of using models to help guide development while being adaptable to the needs of the team and project. Closely aligned with agile principles, encouraging light, purpose-driven modeling rather than heavy documentation.

56
New cards

Agile modeling - distinguishing features

- Model with a purpose

- Use multiple models

- Travel light

- Content is more important than representation

- Know the models and the tools you use to create them

- Adapt locally

57
New cards

Travel Light

Keep models simple and straightforward.

58
New cards

Agile-Scrum

is a combination of two concepts: Agile as a project management philosophy and Scrum as a specific methodology used to implement Agile principles.

59
New cards

Agile

is a project management philosophy that utilizes a core set of values or principles

60
New cards

TRUE (about the term "scrum")

was first used in a 1986 paper titled "The New New Product Development Game" by Hirotaka Takeuchi and Ikujiro Nonaka.