-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmod_project-mgmt.qmd
249 lines (171 loc) · 16.7 KB
/
mod_project-mgmt.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
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
---
title: "Project Management"
editor:
markdown:
wrap: sentence
---
## Overview
Team science works best when all participants know when and how they can contribute.
Effective project management allows team members to work on many tasks asynchronously, without losing track of the overall context or the progress in related areas of the project.
The effort required is returned many times in avoided frustration and unnecessary backtracking and duplication of effort.
Developing an explicit logic model *as a team* helps identify and resolve differences in the mental models and assumptions that team members from diverse disciplines bring to an analysis.
It also helps clarify all of the information that will be needed and the appropriate order of steps.
## Learning Objectives
After completing this module you will be able to:
- <u>Articulate</u> key principles of project management
- <u>Define</u> common approaches for defining project scope
- <u>Identify</u> and make explicit internal logical leaps
- <u>Develop</u> (or refine) the project management framework for your team project
## Preparation
No specific preparation required.
## Networking Session
::: panel-tabset
### 2024 Guests
The [Silica Exports synthesis working group](https://lternet.edu/working-groups/from-poles-to-tropics-a-multi-biome-synthesis-investigating-the-controls-on-river-si-exports/) faced a number of coordination challenges -- including work context (federal agency and academia), widely dispersed geographic locations (participants and data from 6 continents), and multiple data repositories.
Their approach to project management helped them to overcome these obstacles and assemble an exceptional database that is broadly available and a set of novel analyses.
- [Kathi Jo Jankowski](https://www.usgs.gov/staff-profiles/kathi-jo-jankowski), Research Ecologist, Upper Midwest Environmental Sciences Center, U.S. Geological Survey
:::
## What is Project Management?
There are dozens of formal project management frameworks/approaches, most of which come out of industries (such as software development, construction, and manufacturing) that require teams of people to work together with efficiency and accountability.
You’ve probably heard the names tossed around: Agile, Scrum, Lean Sigma Six, Kanban, etc.
There are whole industries devoted to training project managers and developing apps to support them.
The trick, for scientific research projects, is to identify the approaches that also allow questions and goals to evolve along the way – and that don’t require a full-time project manager to implement.
| PM Activity | Industry Outcome | Science Outcome |
|:---------------------|:-----------------------:|:-----------------------:|
| Build a logical sequence of steps | Ensure needed resources/people tools are available when needed | Know which skills are needed when; know what form the output of each script/analysis needs to take |
| Identify dependencies | Avoid supply chain lags | Know what data you need and when you need them |
| Clarify responsibilities/accountabilities | Document productivity and responsibility | Avoid duplication of effort; keep the project moving; support authorship/credit agreements |
| Identify and mitigate risks | Know when to abort or revise project goals | Assess threats to project success early and make a plan B |
: **Some common elements of project management schemes** {.striped .hover .bordered}
## How to Start
Like outlining a paper, there are a few basic steps to developing a solid project management plan.
And it’s easy to think you can skip over the first steps because they seem so obvious.
The trouble is, they may be obvious to each team member in different ways.
Taking the time to make sure you all see them the same way can save worlds of headache down the road.
1. Define the project
2. Agree on the goal and the timeline
3. If the timeline is determined externally (as for SSECR or for most grants), you’ll need to start with the timeline (possibly budget) and scope the project to fit the time and funds you have available.
4. Develop a list of the steps needed to get from where you are to where you need to be.
5. Place the steps in order and define the inputs and outputs of each step.
6. Identify the people responsible for each step and an approximate timeline for its completion.
7. Identify time points for check-in and re-evaluation
Honestly, you could do all of this in a spreadsheet, but there are a few types of visualizations that a lot of people find helpful, which we'll discuss later today.
First, though, we'll remind ourselves of *why* the investment in planning time is so valuable.
::: {.callout-note icon="false"}
### Full Group Discussion: Project Management "Fails"
Anyone who has completed a moderately complex task has stories about planning failures: critical tools left back at the lab when doing field work; key recipe ingredients not purchased before the guests arrive; logistical questions un-asked and un-planned for; mismatched assumptions revealed only at the last moment...
Part 1 (\~3 minutes)
Reflect silently on one of your own project management "fails"
- What went wrong?
- How could planning have prevented or improved the situation?
Part 2 (\~12 minutes)
- Share your project management "fails"
- If time allows, consider what aspects of planning are most likely to be skipped or overlooked
:::
## Defining the Project
For defining the project and agreeing on the goals, mind maps are useful individual or group exercises.
Mind maps offer a lightly-structured way of exploring a focus area.
The graphical approach helps to surface unexpected connections and reveal gaps in understanding.
Tools for developing them can be as simple as pen and paper, basic drawing apps, a zoom whiteboard, or online collaboration and project planning tools such as Miro, Mural, and FigJam.
Start with a general topic or question, then expand to the precedents and implications.
Then expand from there to the assumptions, modifying conditions, or follow-on implications related to each of your precedents or implications.
Often, looking at a problem head-on reveals little new, but surfacing and testing the underlying assumptions can open up fresh territory.
<p align="center">
<img src="images/mind-map.png" alt="Bubble with a central concept or question, surrounded, at the first level, by inputs, outputs or modifiers and at the second level by question, concerns, or implications" width="90%"/>
<figcaption>**Figure 1. Mind Map Example**</figcaption>
</p>
The mind map will likely surface many relevant and un-answered questions, but time is limited.
You'll need to choose one on which to focus.
One way to prioritize them is to place them on a two-by-two matrix of payoff v. feasibility.
The most important payoff for a particular team may be scientific novelty, practical importance, or whether it's a fun and engaging question for the group.
Often, the most interesting questions will also require the most effort and the group will need to determine what trade-offs they are willing to accept.
But sometimes, a question emerges that is both interesting and feasible--perhaps because a new source of data has just become available or simply because no one saw the question from that angle before.
<p align="center">
<img src="images/feasibility-matrix.png" alt="x and y axes, labelled with novelty/importance (Y) and feasibility (x), with project ideas distributed across the resulting space" width="90%"/>
<figcaption>**Figure 2. Feasibility Matrix Example**</figcaption>
</p>
## Outline Your Analysis
Once the team has settled on a question and specific set of processes to explore or test, it's worth sketching out the steps in your analysis.
By making the inputs, processing, and outputs of each step explicit, you'll identify needed data sooner and avoid (some) backtracking.
The process of building an explicit analysis description as a team can quickly reveal mismatches in team members’ mental models and uncover hidden assumptions.
Making those (often disciplinary) differences visible early can mitigate some of the biggest risks of interdisciplinary research and also offer a way into the most novel insights.
A well-structured analysis plan can also be a touchstone to return to throughout the life of your project, keeping the team on-track and avoiding mission creep.
<p align="center">
<img src="images/analysis-flow.png" alt="rectangular boxes containing data sources (Si concentration, streamflow, watershed geometry and land use, watershed precipitation), linked to diamond-shaped boxed describing processing steps, linked to more rectangles with outputs" width="90%"/>
<figcaption>**Figure 3.** Analysis Flowchart for a (relatively) straightforward test of controls on Silica exports in streamflow.</figcaption>
</p>
## Plan the Work
Once your team goals and the necessary steps are agreed on, it becomes much easier to build a project plan that clarifies the timeline and team member responsibilities.
Especially with limited-term projects such as ours, a Gantt chart can be a particularly valuable way to map out project dependencies and responsibilities.
With each task arranged on a timeline, it becomes easier to spot potential dependencies that could otherwise hold up the project.
With simultaneous tasks stacked vertically, it becomes apparent when the planned workload is unrealistic.
- Before diving into any specific tool, start by making a list of your goal and the steps necessary to get there.
- Place them into an outline in the order they must proceed.
- Some steps cannot start until others are finished, while others can proceed simultaneously.
- Sequential steps get a new number, while steps that can be done in parallel get the same number with different letters.
- Attach an estimated time frame to each step and identify a responsible team member (tentative at this point).
- Arrange the steps in colored bars along a horizontal timeline.
- Use the visualization to assess which steps are likely to be bottlenecks and when the team may be relying too heavily on one individual for mission-critical work.
A robust support infrastructure exists for the project management profession -- including formal training and a multitude of (often pricey) apps.
But for the job of managing research collaborations, we've found that the single most important factor is whether your collaborators will use the system.
For that to happen, they must have easy access to it, ideally without setting up a new account and as part of something they already do every day.
For non-coders, we've included a [Google sheet template](https://docs.google.com/spreadsheets/d/1VtbsyTtJE-clviTAjtDnXM1GvXP6JusDq06AVm8WOUI/edit?usp=sharing) of a Gantt chart, pictured below.
<p align="center">
<img src="images/gantt-image.png" alt="a series of overlapping horizontal colored bars represents the active work periods for several critical project tasks" width="90%"/>
<figcaption>**Figure 4. Gantt Chart Example using Google Sheets**</figcaption>
</p>
But if you're already working in GitHub or GitLab to collaborate on code, why not take advantage of GitHub's project management capabilities?
In GitHub, issues from your repos can be assigned to projects (which sit at a level above repos), allowing an overarching view of all the tasks associated with a project.
Issues can also be created in the project itself.
Both kinds of issues can be assigned to individuals, marked with topical tags, and assigned start and due dates.
The examples below draw from the repository we are using to organize the first iteration of this course.
<p align="center">
<img src="images/github-project.png" alt="a series of vertical boards labelled back burner, inqueue, active progress, waiting, and done, with cards for specific tasks and individuals and due dates assigned" width="90%"/>
<figcaption>**Figure 5. Organizing with GitHub Projects**</figcaption>
</p>
Two additional views make it even easier to track overall progress and individual workloads.
The "roadmap" view in GitHub functions like an interactive Gantt chart, once start and target dates are assigned to an issue.
In the roadmap view, issues can by dragged forward and back in time and the issue's start or end date will adjust accordingly.
The stack of issues can be sorted by start date, target date, topic tags or assigned collaborator.
The "sliced tasks view" also allows each collaborator to see only their own assigned tasks.
<p align="center">
<img src="images/github-gantt.png" alt="a series of overlapping horizontal colored bars represents the active work periods for several critical project tasks" width="90%"/>
<figcaption>**Figure 5. Gantt Chart Example using GitHub Projects**</figcaption>
</p>
::: {.callout-note icon="false"}
### Project Group Discussion: Develop a project timeline/Gantt chart
Instructions are included for using either GitHub or a Google sheet template to complete a project Gantt chart.
GitHub has more capabilities, especially for accessing individual task lists, but the Google Sheet template is included in case group members are not yet comfortable with GitHub.
1. Breakout into project groups.
2. Decide whether you will use the Google sheet template or GitHub.
3. If using **GitHub**, go to your project repository and find the project that has been created for you (top center menu). It will open in a Kanban Board view.
a. Begin adding tasks/issues (bottom of each list). Click on the task title to open it and add a brief description. A nice touch here is to add a checklist of subtasks.
b. Choose task leads and add them to each task card (supporting group members can also be added).
c. Add approximate start dates and target end dates for each task.
d. When you have most of your major tasks entered, switch to the roadmap view and shift the timelines as needed by extending the boxes or dragging them forward or back.
e. Review the chart. What appear to be the bottlenecks? How could you mitigate them? Can subgroups work simultaneously on different sub-projects? Do you need to think about re-scoping the project?
4. If using the [**Google sheet template**](https://docs.google.com/spreadsheets/d/1VtbsyTtJE-clviTAjtDnXM1GvXP6JusDq06AVm8WOUI/edit?usp=sharing), copy it into your project folder. The template has two tabs. The manual one requires you to update the dates and graphical representation separately, but is a little more intuitive to edit and allows you to change bar color by assigned task lead. The "basic" tab will update the graph when you update task dates.
a. Working backwards from the end of May, estimate how long each task will take and enter it in the spreadsheet.
b. Add or remove steps as needed for your proposed project.
c. Choose task leads (they should expect to draw on other group members for assistance and feedback)
d. Review the chart. What appear to be the bottlenecks? How could you mitigate them? Can subgroups work simultaneously on different sub-projects? Do you need to think about re-scoping the project?
e. Revise task dates as needed.
5. Regardless of which tool you used, decide on a plan for checking in and updating the Gantt chart. Every group meeting? Every Monday? Once a month?
After 30 minutes, return to whole group and discuss any insights or innovations.
:::
## Additional Resources
### Workshops & Courses
- LTER Scientific Computing Team. [Collaborative Coding with GitHub: Issues](https://lter.github.io/workshop-github/issues.html). **2024**.
- LTER Scientific Computing Team. [Collaborative Coding with GitHub: Milestones](https://lter.github.io/workshop-github/milestones.html). **2024**.
- LTER Scientific Computing Team. [Collaborative Coding with GitHub: Projects](https://lter.github.io/workshop-github/projects.html). **2024**.
- NCEAS Learning Hub & Delta Stewardship Council. [Open Science Synthesis: Logic Models and Synthesis Development](https://learning.nceas.ucsb.edu/2021-09-delta/session-8-hands-on-logic-models-and-synthesis-development.html). **2021**.
- [NCEAS Project Management Workshop](https://learning.nceas.ucsb.edu/2024-working-groups/session_01.html) for new synthesis working groups
### Web-based Project Management Tools
#### Open Source
- [GitHub Documentation: Issues and Projects](https://docs.github.com/en/issues/tracking-your-work-with-issues/configuring-issues/planning-and-tracking-work-for-your-team-or-project)
#### Commercial
- [Asana](https://asana.com/). Task and project management. Free up to 10 members.
- [Wrike](https://www.wrike.com/). Tasks and project management. Capable for individuals. \$10 pp per month for teams.
- [ClickUp](https://clickup.com/). Capable free plan. Less intuitive to set up.
- [Miro](https://miro.com/teams/project-management/). Free for up to three projects. More focus on diagrams and brianstorming than ongoing project management.
- [Easy Retro](https://easyretro.io/about)