Chapter 15 - Architectures in Agile Projects Flashcards

1
Q

4 tenants of the agile manifesto

A

individuals and interactions over processes and tools

working software over comprehensive documentation

customer collaboration over contract negotiation

responding to change over following a plan

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

What kind of projects is Agile not well suited for?

A

larger projects with distributed development or whose processes need to be certifiable

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

2 activities that add the most additional time to a project

A
  • up-front design on the architecture

- rework due to fixing defects and addressing modifications

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

whats the relationship between up-front design and rework time?

A

more time spent doing upfront design reduces the rework that needs to be done

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

Why do we just do as much up-front design as possible so that we have essentially zero rework?

A

at a certain point, additional up-front work adds additional time to the project schedule because it doesn’t reduce rework by very much.

There’s an optimal amount of rework that yields the shortest project schedule

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

what is top-down mode

A

designing and analyzing architectural structures to meet the demanding quality attribute requirements

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

what is bottom up mode

A

analyzing a wide array of implementation-specific and environment-specific constraints and fashioning solutions to them

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

what is a spike?

A

a experiment in which we try out some feature to see if plausibility

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

Agile processes are a response to 4 project needs

A
  • to be more responsive to stakeholders
  • to be quicker to develop functionality that users care about
  • to show more and earlier progress in a project’s life cycle
  • to be less burdened by documenting aspects of a project that would change
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Advice for large systems with well understood requirements?

A

doing a large amount of architecture work up front will pay off

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

Advice for large projects with uncertain requirements?

A

quickly design a candidate architecture even if it leaves out details. Refine this architecture as circumstances dictate.

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

Advice for small projects with uncertain requirements

A

try to get agreement on the major patterns to be employed. Don’t spend too much time on up-front design

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