|
| 1 | +# Project management of bolt.diy |
| 2 | + |
| 3 | +First off: this sounds funny, we know. "Project management" comes from a world of enterprise stuff and this project is |
| 4 | +far from being enterprisy- it's still anarchy all over the place 😉 |
| 5 | + |
| 6 | +But we need to organize ourselves somehow, right? |
| 7 | + |
| 8 | +> tl;dr: We've got a project board with epics and features. We use PRs as change log and as materialized features. Find it [here](https://github.com/orgs/stackblitz-labs/projects/4). |
| 9 | +
|
| 10 | +Here's how we structure long-term vision, mid-term capabilities of the software and short term improvements. |
| 11 | + |
| 12 | +## Strategic epics (long-term) |
| 13 | + |
| 14 | +Strategic epics define areas in which the product evolves. Usually, these epics don’t overlap. They shall allow the core |
| 15 | +team to define what they believe is most important and should be worked on with the highest priority. |
| 16 | + |
| 17 | +You can find the [epics as issues](https://github.com/stackblitz-labs/bolt.diy/labels/epic) which are probably never |
| 18 | +going to be closed. |
| 19 | + |
| 20 | +What's the benefit / purpose of epics? |
| 21 | + |
| 22 | +1. Prioritization |
| 23 | + |
| 24 | +E. g. we could say “managing files is currently more important that quality”. Then, we could thing about which features |
| 25 | +would bring “managing files” forward. It may be different features, such as “upload local files”, “import from a repo” |
| 26 | +or also undo/redo/commit. |
| 27 | + |
| 28 | +In a more-or-less regular meeting dedicated for that, the core team discusses which epics matter most, sketch features |
| 29 | +and then check who can work on them. After the meeting, they update the roadmap (at least for the next development turn) |
| 30 | +and this way communicate where the focus currently is. |
| 31 | + |
| 32 | +2. Grouping of features |
| 33 | + |
| 34 | +By linking features with epics, we can keep them together and document *why* we invest work into a particular thing. |
| 35 | + |
| 36 | +## Features (mid-term) |
| 37 | + |
| 38 | +We all know probably a dozen of methodologies following which features are being described (User story, business |
| 39 | +function, you name it). |
| 40 | + |
| 41 | +However, we intentionally describe features in a more vague manner. Why? Everybody loves crisp, well-defined |
| 42 | +acceptance-criteria, no? Well, every product owner loves it. because he knows what he’ll get once it’s done. |
| 43 | + |
| 44 | +But: **here is no owner of this product**. Therefore, we grant *maximum flexibility to the developer contributing a feature* – so that he can bring in his ideas and have most fun implementing it. |
| 45 | + |
| 46 | +The feature therefore tries to describe *what* should be improved but not in detail *how*. |
| 47 | + |
| 48 | +## PRs as materialized features (short-term) |
| 49 | + |
| 50 | +Once a developer starts working on a feature, a draft-PR *can* be opened asap to share, describe and discuss, how the feature shall be implemented. But: this is not a must. It just helps to get early feedback and get other developers involved. Sometimes, the developer just wants to get started and then open a PR later. |
| 51 | + |
| 52 | +In a loosely organized project, it may as well happen that multiple PRs are opened for the same feature. This is no real issue: Usually, peoply being passionate about a solution are willing to join forces and get it done together. And if a second developer was just faster getting the same feature realized: Be happy that it's been done, close the PR and look out for the next feature to implement 🤓 |
| 53 | + |
| 54 | +## PRs as change log |
| 55 | + |
| 56 | +Once a PR is merged, a squashed commit contains the whole PR description which allows for a good change log. |
| 57 | +All authors of commits in the PR are mentioned in the squashed commit message and become contributors 🙌 |
0 commit comments