Content
View differences
Updated by Kabiru Mwenja 10 months ago
#### **Goal**
Currently, when we talk about documents, there are whole number of different ideas that crop up. They are all interesting, but it can get difficult and confusing to know what we're trying to achieve without being able to organise them in some way. We need a common ground: a shared notion of what we're taking about, what our goals are and what we want to build.
This process seeks to get us to that common ground so that there is more clarity, understanding and confidence in what we're doing.
#### **Process (completed so far)**
* [x] Define larger "clusters" of ideas so we can identify distinct semantic/feature concepts
* [x] Give these distinct names:
* [x] **Notes** (a simple document that starts out with nothing and can later be shared/structured),
* [x] **Documents** (an editable text-based document with versioning, states and workflows)
* [x] **Artefacts** (external files that can have versioning, states and workflows like documents)
* [x] Start identifying use cases and features for each so we have a clearer sense of:
* [x] use cases: what we want the user to be able to achieve with each (the what),
* [x] features: and what features we can already identify to achieve them (the how)
#### Process (next steps)
* [ ] Review above with team and add missing use cases and features (eg. AI stuff)
* [ ] Prioritise which use cases (and thus corresponding features) we want to focus on in the immediate (define feature scope for BMDS)
* [ ] As a consequence, decide which use cases and features we'll tackle later
* [ ] Once we have the feature scope for BMDS, discuss the technical/UX/UI implementation for this feature scope
#### **Working document**
**We're working on Exalidraw**: [https://excalidraw.com/#room=e3bab5dbf63a065d46c6,z4x0a8BN3iot-HjVdSHdUA](https://excalidraw.com/#room=e3bab5dbf63a065d46c6,z4x0a8BN3iot-HjVdSHdUA)
_Note: Because Excalidraw document is free-floating and hard to make sense of without context, the current list of use cases/features is reproduced below._
#### Identified use cases and features
Based on the initial work done (by Hagen, Wieland and Parimal) to identify different clusters and semantic spaces, we've managed to define three distinct semantic concepts:
* **Notes:** directly editing online/ editing collaboratively / dynamic / personal / quick lived
* **Documents**: directly editing online / versioned / shared / long lived / can have workflows - internal object
* **Artefacts**: upload, link, attach files / versioned / shared / long lived, can have workflows - external object
Below, a list of use cases and features for each of these concepts. At the bottom is a list lest of common features for all three concepts:
<figure class="table op-uc-figure_align-center op-uc-figure"><table class="op-uc-table"><tbody><tr class="op-uc-table--row"><td class="op-uc-table--cell" style="background-color:hsl(0, 0%, 90%);" colspan="2"><p class="op-uc-p"><strong>Notes</strong></p></td></tr><tr class="op-uc-table--row"><td class="op-uc-table--cell"><p class="op-uc-p"><strong>Use cases / user needs</strong></p></td><td class="op-uc-table--cell"><p class="op-uc-p"><strong>Features</strong></p></td></tr><tr class="op-uc-table--row"><td class="op-uc-table--cell" style="vertical-align:top;"><ul class="op-uc-list"><li class="op-uc-list--item"><p class="op-uc-p">Quickly jot down thoughts, ideas and information without having to worry about the where and the how</p></li><li class="op-uc-list--item"><p class="op-uc-p">Create a to-do list for my personal tasks for today</p></li><li class="op-uc-list--item"><p class="op-uc-p">Create a quick and rough to-do list for my team during a team call</p></li><li class="op-uc-list--item"><p class="op-uc-p">Share something that was in my personal space easily with other people</p></li><li class="op-uc-list--item"><p class="op-uc-p">A starting place for thoughts and ideas, even if later I know it will have to live in a different context (like a project)<br>- Not have to worry about old notes that I don't need anymore hanging around and polluting my views </p></li><li class="op-uc-list--item"><p class="op-uc-p">Able to link to resources in OP if I want (without having to duplicate them), so that I write notes around them</p></li><li class="op-uc-list--item"><p class="op-uc-p">...</p></li></ul></td><td class="op-uc-table--cell" style="vertical-align:top;"><ul class="op-uc-list"><li class="op-uc-list--item"><p class="op-uc-p">Add note from the big + add button (even outside of a project; appears in nowhere space)</p></li><li class="op-uc-list--item"><p class="op-uc-p">Notes can live inside and outside a project space (can be decided later)</p></li><li class="op-uc-list--item"><p class="op-uc-p">Real-time collaborative editing (with multiple authors at the same time on the same editor)</p></li><li class="op-uc-list--item"><p class="op-uc-p">Share function (individual users, groups, different projects, roles...)</p></li><li class="op-uc-list--item"><p class="op-uc-p">Move/attach it to certain contexts (project, meeting, work package...), even multiple contexts</p></li><li class="op-uc-list--item"><p class="op-uc-p">The ability to archive (even auto-archive?), delete or convert note to other formats</p></li><li class="op-uc-list--item"><p class="op-uc-p">...</p></li></ul></td></tr></tbody></table></figure><figure class="table op-uc-figure_align-center op-uc-figure"><table class="op-uc-table"><tbody><tr class="op-uc-table--row"><td class="op-uc-table--cell" style="background-color:hsl(0, 0%, 90%);" colspan="2"><p class="op-uc-p"><strong>Documents</strong></p></td></tr><tr class="op-uc-table--row"><td class="op-uc-table--cell"><p class="op-uc-p"><strong>Use cases / user needs</strong></p></td><td class="op-uc-table--cell"><p class="op-uc-p"><strong>Features</strong></p></td></tr><tr class="op-uc-table--row"><td class="op-uc-table--cell" style="vertical-align:top;"><ul class="op-uc-list"><li class="op-uc-list--item"><p class="op-uc-p">Working on a deliverable (co-authoring or co-reviewing) like a report with other team members</p></li><li class="op-uc-list--item"><p class="op-uc-p">As we collaboratively work on a document and it it moves across its lifecycle in the established workflow, knowing that versions are created and saved so that we're easily able to track progress</p></li><li class="op-uc-list--item"><p class="op-uc-p">Being able to manually set versions (eg. 'draft 1', 'v1', 'pre-approval') that are shared with the team, knowing that the team always knows which version they're looking at (and are always able to find the latest one)</p></li><li class="op-uc-list--item"><p class="op-uc-p">Being able to easily be able to go back to earlier versions if I need to (eg. to check what has changed)</p></li><li class="op-uc-list--item"><p class="op-uc-p">Have the document already exist in a shared context (eg. in a project or a meeting) so that I know my co-workers have access to the same information</p></li><li class="op-uc-list--item"><p class="op-uc-p">Be able to respect and follow established workflows in my company or project directly on the document (without needing external tools or having to rely on email)</p></li><li class="op-uc-list--item"><p class="op-uc-p">Make sure my entire team knows where in the established process or protocol the current document is</p></li><li class="op-uc-list--item"><p class="op-uc-p">Share it with stakeholders or members outside of the immediate context (external contractors, members of other projects...)</p></li><li class="op-uc-list--item"><p class="op-uc-p">Avoid duplication of information that can cause team members to be unsure if they're seeing the latest information</p></li><li class="op-uc-list--item"><p class="op-uc-p">Be able to define in OpenProject the workflow that already exists/or is required in my company or project</p></li><li class="op-uc-list--item"><p class="op-uc-p">...</p></li></ul></td><td class="op-uc-table--cell" style="vertical-align:top;"><ul class="op-uc-list"><li class="op-uc-list--item"><p class="op-uc-p">Documents as a module within a specified context (project/program/portfolio)</p></li><li class="op-uc-list--item"><p class="op-uc-p">Versioning: both manual (named) and automatic at set document milestones (change of state)</p></li><li class="op-uc-list--item"><p class="op-uc-p">Versioning: changelog/history</p></li><li class="op-uc-list--item"><p class="op-uc-p">Project context-sharing: the document is by default shared with project members with certain roles in a project.</p></li><li class="op-uc-list--item"><p class="op-uc-p">Additional sharing function (individual users, groups, different projects, roles...)</p></li><li class="op-uc-list--item"><p class="op-uc-p">Workflow definition (stages, validations like signing/approval; additional notes at each stage; actions for each stage of the workflow: eg, approve, request changes, reject...)</p></li><li class="op-uc-list--item"><p class="op-uc-p">Status (eg. Draft, In-progress, approved, needs review)</p></li><li class="op-uc-list--item"><p class="op-uc-p">Status linked to workflow?</p></li><li class="op-uc-list--item"><p class="op-uc-p">...</p></li></ul></td></tr></tbody></table></figure><figure class="table op-uc-figure_align-center op-uc-figure"><table class="op-uc-table"><tbody><tr class="op-uc-table--row"><td class="op-uc-table--cell" style="background-color:hsl(0, 0%, 90%);" colspan="2"><p class="op-uc-p"><strong>Artefacts</strong></p></td></tr><tr class="op-uc-table--row"><td class="op-uc-table--cell"><p class="op-uc-p"><strong>Use cases / user needs</strong></p></td><td class="op-uc-table--cell"><p class="op-uc-p"><strong>Features</strong></p></td></tr><tr class="op-uc-table--row"><td class="op-uc-table--cell" style="vertical-align:top;"><ul class="op-uc-list"><li class="op-uc-list--item"><p class="op-uc-p">Take an existing file (PDF, image, video) and be able to work with it in a project context as with Documents</p></li><li class="op-uc-list--item"><p class="op-uc-p">This file can be uploaded or a link to an existing file (eg. in Nextcloud)</p></li><li class="op-uc-list--item"><p class="op-uc-p">Not have to worry about my colleagues or other stakeholders viewing an old or stale file</p></li><li class="op-uc-list--item"><p class="op-uc-p">Workflow, Versions, sharing...</p></li><li class="op-uc-list--item"><p class="op-uc-p">Be abl to add comments or additional context to the file so that my colleagues or stakeholders have the necessary context</p></li><li class="op-uc-list--item"><p class="op-uc-p">Be able to see the content of the files directly on OpenProject (without downloading it locally)</p></li><li class="op-uc-list--item"><p class="op-uc-p">...</p></li></ul></td><td class="op-uc-table--cell" style="vertical-align:top;"><ul class="op-uc-list"><li class="op-uc-list--item"><p class="op-uc-p">Uploading a new file over an existing file creates a new version and makes that the 'current' one</p></li><li class="op-uc-list--item"><p class="op-uc-p">Text fields or custom fields</p></li><li class="op-uc-list--item"><p class="op-uc-p">Preview mode (eg. with Nextcloud)</p></li><li class="op-uc-list--item"><p class="op-uc-p">...</p></li></ul></td></tr></tbody></table></figure><figure class="table op-uc-figure_align-center op-uc-figure"><table class="op-uc-table"><tbody><tr class="op-uc-table--row"><td class="op-uc-table--cell" style="background-color:hsl(0, 0%, 90%);"><p class="op-uc-p"><strong>Common to all three</strong></p></td></tr><tr class="op-uc-table--row"><td class="op-uc-table--cell"><p class="op-uc-p"><strong>Features</strong></p></td></tr><tr class="op-uc-table--row"><td class="op-uc-table--cell"><ul class="op-uc-list"><li class="op-uc-list--item"><p class="op-uc-p">Collaborative editing</p></li><li class="op-uc-list--item"><p class="op-uc-p">Macro-like links to existing resources in OpenProject (work package, meetings)</p></li><li class="op-uc-list--item"><p class="op-uc-p">File attachment</p></li><li class="op-uc-list--item"><p class="op-uc-p">...</p></li></ul></td></tr></tbody></table></figure><br>
Currently, when we talk about documents, there are whole number of different ideas that crop up. They are all interesting, but it can get difficult and confusing to know what we're trying to achieve without being able to organise them in some way. We need a common ground: a shared notion of what we're taking about, what our goals are and what we want to build.
This process seeks to get us to that common ground so that there is more clarity, understanding and confidence in what we're doing.
#### **Process (completed so far)**
* [x] Define larger "clusters" of ideas so we can identify distinct semantic/feature concepts
* [x] Give these distinct names:
* [x] **Notes** (a simple document that starts out with nothing and can later be shared/structured),
* [x] **Documents** (an editable text-based document with versioning, states and workflows)
* [x] **Artefacts** (external files that can have versioning, states and workflows like documents)
* [x] Start identifying use cases and features for each so we have a clearer sense of:
* [x] use cases: what we want the user to be able to achieve with each (the what),
* [x] features: and what features we can already identify to achieve them (the how)
#### Process (next steps)
* [ ] Review above with team and add missing use cases and features (eg. AI stuff)
* [ ] Prioritise which use cases (and thus corresponding features) we want to focus on in the immediate (define feature scope for BMDS)
* [ ] As a consequence, decide which use cases and features we'll tackle later
* [ ] Once we have the feature scope for BMDS, discuss the technical/UX/UI implementation for this feature scope
#### **Working document**
**We're working on Exalidraw**: [https://excalidraw.com/#room=e3bab5dbf63a065d46c6,z4x0a8BN3iot-HjVdSHdUA](https://excalidraw.com/#room=e3bab5dbf63a065d46c6,z4x0a8BN3iot-HjVdSHdUA)
_Note: Because Excalidraw document is free-floating and hard to make sense of without context, the current list of use cases/features is reproduced below._
#### Identified use cases and features
Based on the initial work done (by Hagen, Wieland and Parimal) to identify different clusters and semantic spaces, we've managed to define three distinct semantic concepts:
* **Notes:** directly editing online/ editing collaboratively / dynamic / personal / quick lived
* **Documents**: directly editing online / versioned / shared / long lived / can have workflows - internal object
* **Artefacts**: upload, link, attach files / versioned / shared / long lived, can have workflows - external object
Below, a list of use cases and features for each of these concepts. At the bottom is a list
<figure class="table op-uc-figure_align-center op-uc-figure"><table class="op-uc-table"><tbody><tr class="op-uc-table--row"><td class="op-uc-table--cell" style="background-color:hsl(0, 0%, 90%);" colspan="2"><p class="op-uc-p"><strong>Notes</strong></p></td></tr><tr class="op-uc-table--row"><td class="op-uc-table--cell"><p class="op-uc-p"><strong>Use cases / user needs</strong></p></td><td class="op-uc-table--cell"><p class="op-uc-p"><strong>Features</strong></p></td></tr><tr class="op-uc-table--row"><td class="op-uc-table--cell" style="vertical-align:top;"><ul class="op-uc-list"><li class="op-uc-list--item"><p class="op-uc-p">Quickly jot down thoughts, ideas and information without having to worry about the where and the how</p></li><li class="op-uc-list--item"><p class="op-uc-p">Create a to-do list for my personal tasks for today</p></li><li class="op-uc-list--item"><p class="op-uc-p">Create a quick and rough to-do list for my team during a team call</p></li><li class="op-uc-list--item"><p class="op-uc-p">Share something that was in my personal space easily with other people</p></li><li class="op-uc-list--item"><p class="op-uc-p">A starting place for thoughts and ideas, even if later I know it will have to live in a different context (like a project)<br>- Not have to worry about old notes that I don't need anymore hanging around and polluting my views </p></li><li class="op-uc-list--item"><p class="op-uc-p">Able to link to resources in OP if I want (without having to duplicate them), so that I write notes around them</p></li><li class="op-uc-list--item"><p class="op-uc-p">...</p></li></ul></td><td class="op-uc-table--cell" style="vertical-align:top;"><ul class="op-uc-list"><li class="op-uc-list--item"><p class="op-uc-p">Add note from the big + add button (even outside of a project; appears in nowhere space)</p></li><li class="op-uc-list--item"><p class="op-uc-p">Notes can live inside and outside a project space (can be decided later)</p></li><li class="op-uc-list--item"><p class="op-uc-p">Real-time collaborative editing (with multiple authors at the same time on the same editor)</p></li><li class="op-uc-list--item"><p class="op-uc-p">Share function (individual users, groups, different projects, roles...)</p></li><li class="op-uc-list--item"><p class="op-uc-p">Move/attach it to certain contexts (project, meeting, work package...), even multiple contexts</p></li><li class="op-uc-list--item"><p class="op-uc-p">The ability to archive (even auto-archive?), delete or convert note to other formats</p></li><li class="op-uc-list--item"><p class="op-uc-p">...</p></li></ul></td></tr></tbody></table></figure><figure class="table op-uc-figure_align-center op-uc-figure"><table class="op-uc-table"><tbody><tr class="op-uc-table--row"><td class="op-uc-table--cell" style="background-color:hsl(0, 0%, 90%);" colspan="2"><p class="op-uc-p"><strong>Documents</strong></p></td></tr><tr class="op-uc-table--row"><td class="op-uc-table--cell"><p class="op-uc-p"><strong>Use cases / user needs</strong></p></td><td class="op-uc-table--cell"><p class="op-uc-p"><strong>Features</strong></p></td></tr><tr class="op-uc-table--row"><td class="op-uc-table--cell" style="vertical-align:top;"><ul class="op-uc-list"><li class="op-uc-list--item"><p class="op-uc-p">Working on a deliverable (co-authoring or co-reviewing) like a report with other team members</p></li><li class="op-uc-list--item"><p class="op-uc-p">As we collaboratively work on a document and it it moves across its lifecycle in the established workflow, knowing that versions are created and saved so that we're easily able to track progress</p></li><li class="op-uc-list--item"><p class="op-uc-p">Being able to manually set versions (eg. 'draft 1', 'v1', 'pre-approval') that are shared with the team, knowing that the team always knows which version they're looking at (and are always able to find the latest one)</p></li><li class="op-uc-list--item"><p class="op-uc-p">Being able to easily be able to go back to earlier versions if I need to (eg. to check what has changed)</p></li><li class="op-uc-list--item"><p class="op-uc-p">Have the document already exist in a shared context (eg. in a project or a meeting) so that I know my co-workers have access to the same information</p></li><li class="op-uc-list--item"><p class="op-uc-p">Be able to respect and follow established workflows in my company or project directly on the document (without needing external tools or having to rely on email)</p></li><li class="op-uc-list--item"><p class="op-uc-p">Make sure my entire team knows where in the established process or protocol the current document is</p></li><li class="op-uc-list--item"><p class="op-uc-p">Share it with stakeholders or members outside of the immediate context (external contractors, members of other projects...)</p></li><li class="op-uc-list--item"><p class="op-uc-p">Avoid duplication of information that can cause team members to be unsure if they're seeing the latest information</p></li><li class="op-uc-list--item"><p class="op-uc-p">Be able to define in OpenProject the workflow that already exists/or is required in my company or project</p></li><li class="op-uc-list--item"><p class="op-uc-p">...</p></li></ul></td><td class="op-uc-table--cell" style="vertical-align:top;"><ul class="op-uc-list"><li class="op-uc-list--item"><p class="op-uc-p">Documents as a module within a specified context (project/program/portfolio)</p></li><li class="op-uc-list--item"><p class="op-uc-p">Versioning: both manual (named) and automatic at set document milestones (change of state)</p></li><li class="op-uc-list--item"><p class="op-uc-p">Versioning: changelog/history</p></li><li class="op-uc-list--item"><p class="op-uc-p">Project context-sharing: the document is by default shared with project members with certain roles in a project.</p></li><li class="op-uc-list--item"><p class="op-uc-p">Additional sharing function (individual users, groups, different projects, roles...)</p></li><li class="op-uc-list--item"><p class="op-uc-p">Workflow definition (stages, validations like signing/approval; additional notes at each stage; actions for each stage of the workflow: eg, approve, request changes, reject...)</p></li><li class="op-uc-list--item"><p class="op-uc-p">Status (eg. Draft, In-progress, approved, needs review)</p></li><li class="op-uc-list--item"><p class="op-uc-p">Status linked to workflow?</p></li><li class="op-uc-list--item"><p class="op-uc-p">...</p></li></ul></td></tr></tbody></table></figure><figure class="table op-uc-figure_align-center op-uc-figure"><table class="op-uc-table"><tbody><tr class="op-uc-table--row"><td class="op-uc-table--cell" style="background-color:hsl(0, 0%, 90%);" colspan="2"><p class="op-uc-p"><strong>Artefacts</strong></p></td></tr><tr class="op-uc-table--row"><td class="op-uc-table--cell"><p class="op-uc-p"><strong>Use cases / user needs</strong></p></td><td class="op-uc-table--cell"><p class="op-uc-p"><strong>Features</strong></p></td></tr><tr class="op-uc-table--row"><td class="op-uc-table--cell" style="vertical-align:top;"><ul class="op-uc-list"><li class="op-uc-list--item"><p class="op-uc-p">Take an existing file (PDF, image, video) and be able to work with it in a project context as with Documents</p></li><li class="op-uc-list--item"><p class="op-uc-p">This file can be uploaded or a link to an existing file (eg. in Nextcloud)</p></li><li class="op-uc-list--item"><p class="op-uc-p">Not have to worry about my colleagues or other stakeholders viewing an old or stale file</p></li><li class="op-uc-list--item"><p class="op-uc-p">Workflow, Versions, sharing...</p></li><li class="op-uc-list--item"><p class="op-uc-p">Be abl to add comments or additional context to the file so that my colleagues or stakeholders have the necessary context</p></li><li class="op-uc-list--item"><p class="op-uc-p">Be able to see the content of the files directly on OpenProject (without downloading it locally)</p></li><li class="op-uc-list--item"><p class="op-uc-p">...</p></li></ul></td><td class="op-uc-table--cell" style="vertical-align:top;"><ul class="op-uc-list"><li class="op-uc-list--item"><p class="op-uc-p">Uploading a new file over an existing file creates a new version and makes that the 'current' one</p></li><li class="op-uc-list--item"><p class="op-uc-p">Text fields or custom fields</p></li><li class="op-uc-list--item"><p class="op-uc-p">Preview mode (eg. with Nextcloud)</p></li><li class="op-uc-list--item"><p class="op-uc-p">...</p></li></ul></td></tr></tbody></table></figure><figure class="table op-uc-figure_align-center op-uc-figure"><table class="op-uc-table"><tbody><tr class="op-uc-table--row"><td class="op-uc-table--cell" style="background-color:hsl(0, 0%, 90%);"><p class="op-uc-p"><strong>Common to all three</strong></p></td></tr><tr class="op-uc-table--row"><td class="op-uc-table--cell"><p class="op-uc-p"><strong>Features</strong></p></td></tr><tr class="op-uc-table--row"><td class="op-uc-table--cell"><ul class="op-uc-list"><li class="op-uc-list--item"><p class="op-uc-p">Collaborative editing</p></li><li class="op-uc-list--item"><p class="op-uc-p">Macro-like links to existing resources in OpenProject (work package, meetings)</p></li><li class="op-uc-list--item"><p class="op-uc-p">File attachment</p></li><li class="op-uc-list--item"><p class="op-uc-p">...</p></li></ul></td></tr></tbody></table></figure><br>