|
| 1 | +# Patchwork's Design Principles |
| 2 | + |
| 3 | +This document describes the design goals and philosophy of Patchwork. Features of and changes to Patchwork should always aim to follow these principles. If we really want to add a feature/make a change to Patchwork that goes against these principles, we should think about changing the principles first, rather than ignoring them and making the change anyway. |
| 4 | + |
| 5 | +This document should be version tracked, and any change to it should go through the [advice process](http://www.reinventingorganizationswiki.com/Decision_Making) with the stakeholders listed below. |
| 6 | + |
| 7 | +### Stakeholders |
| 8 | +* Patchwork contributors |
| 9 | +* Patchwork users |
| 10 | +* The broader Scuttlebutt community |
| 11 | +* People outside the Scuttlebutt community who might be affected |
| 12 | + |
| 13 | +## Design goals |
| 14 | + |
| 15 | +### Goals and scope: Patchwork should... |
| 16 | +* Follow the [Scuttlebutt principles](https://www.scuttlebutt.nz/principles/) |
| 17 | +* Be a client that people can feel confident recommending to their friends who aren't using Scuttlebutt, and who might not have much tech knowledge |
| 18 | +* Be safe (privacy, blocking, etc) |
| 19 | +* Be usable (not confusing or broken; clear explanations of new concepts) |
| 20 | +* Be healthy (non-addictive, calm, consentful) |
| 21 | +* Be accessible (to the extent practical -- some a11y features are hard to retrofit into the existing code) |
| 22 | +* Be a fun client to use -- users should enjoy using it and, in a positive way, be tempted to try other Scuttlebutt clients |
| 23 | +* Look good |
| 24 | + |
| 25 | +### Non-goals: Patchwork is not... |
| 26 | +* A place where we experiment with new features - Try it in other clients first |
| 27 | +* For message types outside the core social networking use case. Messages such as posts, comments, gatherings, and blogs are in scope; messages such as chess and git-ssb are out of scope. |
| 28 | + |
| 29 | + |
| 30 | +### Roadmap |
| 31 | +* Eventually retire Patchwork 3, potentially transferring the Patchwork name to another client, which might become Patchwork 4 |
| 32 | +* Maintain functionality until Patchwork 3 is retired. Focus more on maintenance than new features. |
| 33 | +* Potentialy remove less-used features if we don't have energy to maintain them |
| 34 | +* While accepting that Patchwork 3 is a legacy codebase, try to keep it easy to maintain, and help out (potential) new contributors |
0 commit comments