Agile Development Methods Flashcards

1
Q

Agile Development:

Most Important Features

A

Rapid Development Cycle

Rapid Delivery

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Agile Development

Principles

A
  • Deliver Early and Often to satisfy customer
  • Welcome changing requirements
  • Face-to-Face communication is the best
  • Measure progress against working software
  • Simplicity is essential
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

When is

Agile Development

applicable?

A
  • Small or medium sized product
  • Commitment from customer to become involved in the development process
  • Minimal external rules and regulations that affect the software
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Agile Methods:

Problems

A
  • Can be difficult to keep the interest of customers who are involved in the process
  • Team members may be unsuited for the intense involvement of agile methods
  • Prioritizing changes can be difficult with multiple stakeholders
  • Like other forms of iterative development, contracts can be a problem
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Agile Methods:

Goals

A
  • Reduce overheads in software development process
  • Ability to respond QUICKLY to changing requirements
  • Avoid excessive rework when responding to changes
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Agile Methods:

Two Major Types

A

Scrum

Extreme Programming(XP)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Agile Model:

Organization of development work

A

Work on aspects of the software are organized into Activities, Tasks and Stories, sort of like use cases.

  • User Activities
    • The “backbone” - major features
  • User Tasks
    • “Skeleton”
    • Specific things the user can do with a given feature
  • User Stories
    • Use cases
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Plan Driven

vs

Agile

Development Models

A

Plan Driven models

More sequential, focus on well defined requirements engineering and specification. Great for large projects that expect very few changes to requirements

Agile Models

More cyclical and iterative. Operates with an expectation of changing requirements. Goes back and forth between Requirements Engineering phase and Design/Implementation phase.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Scrum:

Basic Description

A

Considered a “Management Side” model.

Work is divided into three phases: Planning, Sprint Cycles, and Project Closures.

Implementation/testing is done in relatively short “Sprint Cycles”

Focus on constant communication, daily meetings/updates on progress.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Scrum:

Three Phases

A
  • Planning
    • Project Outline
    • Architectural Design
  • Sprint Cycle
    • 1-4 weeks
    • Focus on implementation/testing
  • Project Closure
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Scrum:

Activities of the Sprint Cycle

A
  • Planning(Assess, Select)
    • Generates: Backlog, Goals for Sprint
  • Execution (Develop)
    • With Daily Scrum(meeting)
    • Generates: Product Increment
  • Review
    • Inspection/Testing
    • Adapt
  • Retrospective
    • Inspection/Integration Testing
    • Check progress against set goals
    • Generates: Product Backlog
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Scrum:

Questions that each team member answers during Daily Scrum

A
  • Work accomplished
    • What did I do YESTERDAY to meet sprint goal?
  • Work planned
    • What will I do TODAY?
  • Expected Obstacles/Challenges
    • Is there an impediment in the way of me or my team meeting the sprint goal?
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Extreme Programming(XP)

Basic Description

A

A “development side” agile method

Widely used.

Takes “common sense” software engineering principles and practices to the “extreme” level

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Extreme Programming(XP)

Release Cycle

A

For each release/version;

  • Select User Stories for this release
  • Breakdown Stories into Tasks
  • Plan the release
  • Develop/Integrate/Test software
  • Release software
  • Evaluate System
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Extreme Programming(XP)

Principles and their corresponding Practices

A

Principle

Practice

Customer Involvement

Customer Team Member

Requirements Specification

User Stories

Collaboration

Pair Programming

Testing

Test-Driven Development

Ownership

Collective Ownership

Integration

Continuous Integration

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Extreme Programming(XP)

Development Techniques used

A
  • User Stories
  • Pair Programming
  • Test Driven Development
  • Continuous Integration
17
Q

Pair Programming:

Basic Description

A
  • Two programmers work side by side at one computer
    • “Driver” and
    • “Navigator”
  • Continuously collaborate on some design, algorithm, code, test, etc
  • Driver codes, navigator provides continuous, informal review
18
Q

Pair Programming:

Benefits

A
  • Continuous review
  • Problems/mistakes/defects caught early
  • Fewer defects
  • Better problem solving
  • More economical
  • “Pair-Pressure” ensures timely delivery
  • Rapid hands-on approach to learning
  • Better induction of new team members