-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathWeek3-RVerse-2022.qmd
178 lines (106 loc) · 5.56 KB
/
Week3-RVerse-2022.qmd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
---
title: "RVerse Week 3"
format:
revealjs:
theme: serif
title-slide-attributes:
footertext: hellow
---
## What kinds of projects are we talking about?
**Complex projects**
- big tasks with lots of different stages
- potentially many different team members and different needed skills
- Often team projects but could also be a solo project
- Examples: a large report or manuscript, a complex model, a software package, or an software application.
## What is agile?
::: columns
::: {.column width="50%"}
A **lightweight** workflow **structure** for software development which is characterized by 4 key features.
Traced back to the [Agile Manifesto](https://agilemanifesto.org/) written at a 2001 gathering of software development "visionaries", but the ideas trace back much earlier. Today agile methodologies are the norm in software development.
:::
::: {.column width="50%"}
1. Rapid incremental and iterative development
2. Open team culture - autonomous, highly communicative, empowered
3. Team reflection and continual improvement
4. Customer focus - early and frequent delivery of workable products
:::
:::
##
{fig-align="center" width="80%"}
## What it is not: Waterfall
A detailed workflow from start to finish, years 1 to 4.
{fig-align="center" height="40%"}
## Originating Ideas
{fig-align="center" width="80%"}
## Industrial quality control
A key element of agile methodologies is iterative cycles, similar to the Plan-Do-Check-Act (PDCA) cycle:
{fig-align="center" width="80%"}
This was popularized by the work of **William Edwards Deming**<sup>1</sup> on how to design workflow and organizational systems that improve quality control.
::: footer
1 Leading thinker in statistical quality control and industrial engineering in the 1950s to 1980s.
:::
##
{fig-align="center" width="80%"}
## Lean manufacturing
::: columns
::: {.column width="50%"}
{fig-align="center" width="80%"}
:::
::: {.column width="50%"}
Lean manufacturing refers to a profound change in the structure and culture of manufacturing teams to a flat hierarchy.
:::
:::
{fig-align="center" width="80%"}
## Rapid software application development theory
Lastly, agile is related to work in the 1980s on systems for rapid innovation for software application development (Barry Boehm, James Martin, James Kerr).
## Rapid software application development theory
::: columns
::: {.column width="50%"}
By definition, innovation is creating something novel so you can't write a plan to get to the "product" because you don't know what the product is. Because the customer (who you don't yet since you are developing something new) has never seen the product, the design process is organic and knowledge gained from the development process itself affects the design at each cycle.
:::
::: {.column width="50%"}
- Rapid iterations with learning
- Working demos (prototypes)
- Tight collaboration with "customer"
- Autonomous teams where members plan their own work and work their own plans.
:::
:::
##
{fig-align="center" width="80%"}
## Experiential learning
In "experiential learning" (David A Kolb, 1970s-1980s), the activity is the teacher via explicit periods of reflection and experimentation (trying something to fix the identified problem).
{fig-align="center" width="80%"}
##
{fig-align="center" width="80%"}
# Agile methodologies
## Kanban
.center\[ <img src="images/Kanban_board_example.jpeg" width="75%"/>\]
------------------------------------------------------------------------
## Why use a Kanban board?
Visualize the flow of work so that we can improve it incrementally and organically--meaning no fixed framework. Just seeing your workflow helps you see the problems.
- transparency -- visual representation of the team's workflow
- iterative and incremental -- each task is a well-defined task (ca 1-2 days to move columns)
- "workable product" -- minimize work in progress and **finish tasks before taking on new tasks** "WIP limits"
- problems with task "flow" are addressed as they arise
- No "sprints", time-boxed tasks, or time targets.
.footnote\[Atlassian has a nice Kanban video series: [intro](https://www.youtube.com/watch?v=iVaFVa7HYj4), [designing your Kanban board](https://www.youtube.com/watch?v=Bcid33tgq8A), [work in progress limits](https://www.youtube.com/watch?v=zEJn6eQO6FE), [writing kanban cards](https://www.youtube.com/watch?v=PxXdcQrPIUI) <br><br>\]
------------------------------------------------------------------------
## Kanban cards: aka the task card
Each project task lives on a card that gets edited as it moves. Team members can add comments and notes as it moves.
- a description
- deadline
- assigned team member(s)
- small: 1-2 days of work (not 1 hour)
------------------------------------------------------------------------

------------------------------------------------------------------------
## Example: NWFSC OA Lab
@Paul McElhany, NWFSC

------------------------------------------------------------------------
## Kanban with GitHub
Let's Kanban with GitHub!
Note,
- Kanban boards are often physical boards.
- Lots of different applications for online Kanban boards.
- Online versions allow you to link cards to "issues", e.g. GitHub issues.