Developing and Delivering Products Professionally [P1]: Emergent Software Development - Dispelling the Myth that Scrum Teams Don't Think About Architecture Flashcards

1
Q

How do you design your system?

A
  • constraints impacting your system
  • your system - context, scope
  • users of your system
  • any other system using your system
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

What aspects need to be consider in a basic architecture?

A
  • building blocks
  • deployment
  • cross-cutting concepts
  • runtime - e.g. logging, persistence, domain model
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Give and explain the architecture pretzel

A

[SEE DIAGRAM]

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

Give the Ken Schwaber 2006 quote about proving architect

A

“architectural ideas are not valid until proven out in a working system”

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

What questions need to be asked when considering making an architectural decision?

A
  • What is the cost of change?
  • Is there a more important dimension?
    • e.g. use a repository pattern
  • If we want consistency, how do we get there now?
    • setting expectations
    • consensus building patterns
    • communities of practice
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

What methods can you try when you want to make large architectural changes incrementally?

A
  • branch by abstraction
    • treat vendor products as black boxes
    • use existing tests as documentation of expected functionality
    • build alongside existing functionality, migrating clients as their needs are met
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

What type of approach should be taken when several large architectural changes need to be made?

A

Incremental approach

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

When a change is being made to the architect, what do we need to challenge the team to do? Why?

A

Have “just enough” and then put it into implement changes.

gives you more options to adapt.

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

How to reduce architecture work time?

A
  • use refinement to do some light early work to exchanges ideas + cross over skills - good understanding + more informed choices
  • if you have to make a change later, usually that change has some additional value to it
  • if you have to do rework - usually means made a bad decision early on
  • not really reworking something - more informed and finding a better solution/get additional value
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Why can’t we have a sprint 0? (define architecture up front)

A
  • never be done with it or satisfied+ never have all the info until start implementing and get better understanding of better solution
  • What’s the cost of not changing? → value agility!!
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q
A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly