|
| 1 | +# Time-constrained iterative workflow |
| 2 | + |
| 3 | +This chapter describes how to follow a specific, but very effective, |
| 4 | +workflow for managing and completing work in teams, especially knowledge |
| 5 | +work such as software development and research in general that we follow |
| 6 | +in the Seedcase Project. This chapter covers this workflow and how to |
| 7 | +generally use it. |
| 8 | + |
| 9 | +## Iterative development in research settings |
| 10 | + |
| 11 | +The way we've designed our work to follow a workflow that is inspired |
| 12 | +from some aspects of [Agile Software |
| 13 | +Development](https://agilemanifesto.org/) and |
| 14 | +[Scrum](https://www.scrum.org/resources/what-scrum-module), especially |
| 15 | +this idea of time-boxed periods ("iterations") of work that follow a |
| 16 | +specific pattern and process for incrementally building or improving a |
| 17 | +project or product. On their own, Agile or Scrum workflows don't |
| 18 | +generally fit well in more academic and research environments. Certain |
| 19 | +Agile frameworks like Scrum often assume that: |
| 20 | + |
| 21 | +- You and the team are in a more traditional "business" environment |
| 22 | + with customers, which isn't always true in or comparable to research |
| 23 | + and academic settings. |
| 24 | +- Everyone on the team is working only on the project full-time during |
| 25 | + the iteration (e.g. with the use of "daily standups"). In research |
| 26 | + settings, projects are a bit more fluid and people may not work on |
| 27 | + them full-time or consistently, because they are often involved in |
| 28 | + many projects at the same time. |
| 29 | +- Everyone on the team is highly technically skilled and knowledgeable |
| 30 | + in software development practices, for instance with the |
| 31 | + "self-organizing" principle in the [Agile |
| 32 | + Manifesto](https://agilemanifesto.org/principles.html). Skill and |
| 33 | + knowledge level is highly variable in research settings, and |
| 34 | + substantial time may be needed to train people, which impacts how |
| 35 | + well these practices can be realistically applied and followed. |
| 36 | +- You have the resources to have dedicated personnel for managing the |
| 37 | + iteration and planning the product (e.g. with "Scrum Master" and |
| 38 | + "Product Owner"). In research, the biggest constraint is often funds |
| 39 | + so you likely have fewer people who have to do a wider variety of |
| 40 | + tasks and don't have dedicated personnel for specific roles. |
| 41 | + |
| 42 | +All of these assumptions inherent to Scrum, Agile, or any other common |
| 43 | +industry workflow can't be directly applied to research and academic |
| 44 | +settings. So their effectiveness in those other settings might be very |
| 45 | +different from their effectiveness in these settings. So this guide to |
| 46 | +using iterative development in research settings is slightly modified to |
| 47 | +fit the needs and constraints typically found in research and academic |
| 48 | +settings. |
| 49 | + |
| 50 | +## Planning upcoming iterations |
| 51 | + |
| 52 | +The team who uses this workflow needs one person who is responsible for |
| 53 | +planning and curating the iterations. While this person could be anyone |
| 54 | +on the team, ideally the person is someone who has a strong |
| 55 | +understanding and big picture overview of what the team is working |
| 56 | +towards and the milestones needed to get to that final aim. This is |
| 57 | +usually the team lead, and so for the rest of the iteration |
| 58 | +documentation, we refer to this person as the "team lead". |
| 59 | + |
| 60 | +If you are the team lead, you should (ideally) have a general plan or |
| 61 | +goal for what the team will do in the next two or three iterations and |
| 62 | +will: |
| 63 | + |
| 64 | +- Create an iteration within the main iteration planning board (for |
| 65 | + the Seedcase Project, they are all listed |
| 66 | + [here](https://github.com/orgs/seedcase-project/projects/)). You |
| 67 | + create an iteration by going into the project board's settings. |
| 68 | +- Write the title of the iteration as the aim for it, while keeping |
| 69 | + the goal focused, small, achievable, and considerate of the time the |
| 70 | + team has available for that iteration. Ideally, you should write a |
| 71 | + sub-aim for each person in the team for that iteration. |
| 72 | +- Add tasks to the board that are needed to achieve the iteration aim. |
| 73 | + |
| 74 | +Having one iteration be one calendar month makes them easier to plan and |
| 75 | +organise. That way, a year can be divided into 12 iterations, and you |
| 76 | +can more easily use that to plan the work and aims for the year. It also |
| 77 | +makes each iteration about 4 weeks, which is generally a good amount of |
| 78 | +time to be flexible while also having enough time to achieve a |
| 79 | +meaningful aim. Depending on your project, shorter iterations of 3 weeks |
| 80 | +might also be appropriate, but we generally don’t recommend going beyond |
| 81 | +4 weeks, since the team might lose focus on the aim and it becomes |
| 82 | +harder to maintain a clear sense of progress. |
| 83 | + |
| 84 | +Having an iteration last one calendar month also makes it easier to |
| 85 | +schedule the iteration's start meeting for planning at the |
| 86 | +[beginning](start.qmd) of the month and the iteration's [end](end.qmd) |
| 87 | +meeting for debriefing and doing the |
| 88 | +[retrospective](https://www.scrum.org/resources/what-is-a-sprint-retrospective) |
| 89 | +at the end of the month. That way, the team can always assume and |
| 90 | +schedule those dates as meeting dates. You as the team lead should |
| 91 | +schedule these meetings well in advance and confirm that as many of the |
| 92 | +team can attend as possible. The scheduled meeting should be put in a |
| 93 | +calendar that everyone on the team can access or see. |
| 94 | + |
| 95 | +::: callout-tip |
| 96 | +We use [Teamup](https://teamup.com/) for scheduling meetings and keeping |
| 97 | +track of the iteration dates. The advantage of Teamup is that anyone |
| 98 | +(with the right permissions) can add events to the calendar, and you can |
| 99 | +easily synchronise it with your own calendar app. So there is no |
| 100 | +"locking-in" to a specific calendar app. We highly recommend using |
| 101 | +Teamup if you are working in a team with others that may or may not be |
| 102 | +in the same organisation or who don't necessarily use the same calendar |
| 103 | +app as you. |
| 104 | +::: |
0 commit comments