Workflows
1. Overview
2. Workflows
2.1. Items
2.1.1. Simple Items
When an item has no task-related state associated with it, it is considered a non-task or simple item.
Simple items imply that there's no action directly associated with this item, but it may contain child items which are tasks with action.
- Note
- Link
- Code
There is a dedicated
CODE
keyword available for headings dedicated to a specific piece of code.All CC code is kept under version control and intended to be linked directly using the
vc
link type. Code can be linked anywhere - including org documents, other code, or online. In org documents,vc
links are often used as the value of theLOCATION
property.
2.1.2. Simple Tasks
Tasks are most often found as headings with some additional metadata such as scheduling info, priority, clock info, and special properties.
Tasks are always stateful and exist somewhere in one of the following abstract todo states:
- TODO
- Incomplete task
- WIP
- Work In Progress task
- DONE
- Completed task
Tasks are easily identified by a keyword which represents the current state. Tasks always follow a sequence with at least one 'TODO' state and one 'DONE' state. There is always an implied 'WIP' state in the sequence which come after the TODO keywords and before the DONE keywords.
2.1.3. Project Items
Projects are denoted by the special keyword PROJECT
and act as
containers of related work to be done. They may contain the same
metadata as tasks, and may be 'downgraded' to or 'upgrade' from tasks.
Projects often contain additional metadata, such as CATEGORY
and
VERSION
properties.
2.2. Inbox
The inbox is a flat list of items usually found in the
org-inbox-file
(default is ~/org/inbox.org). Items are captured by
various means and then refiled to another location.
As of
we capture items manually and in a local-only fashion. In the future this may change to support automatic capturing via org-protocol and email as well as peer-aware/group inboxing.2.3. Scrum
We apply a scrum-like framework to plan our projects and tasks.
We borrow the same terminology where possible but do not align with any specific implementation. Here are some noteworthy implementation details:
- We utilize the
EFFORT
property with time values as the basis of estimation such as1d
,24:00
or24h
as opposed to story points. We measure progress in time too, but we don't represent it as such. We effectively represent it as some form of 'story point' like a percentage. This is because the estimates don't reflect realtime and shouldn't be intertwined with measures of performance. - Realtime values can be found in the scheduling and clock metadata as
well as some timestamps like the
CREATED
property.- Performance-related metrics may be derived from the clock metadata, but I have always found it tedious to clock work time in Org mode. As of this is still unresolved, but we have some ideas to improve the workflow and implement some automatic clocking.
- Products and Projects are separate entities. As a rule, any task belonging to a product is unable to block a project.
2.3.1. Roadmaps
The roadmap is a high-level document which describes the strategic plan associated with pre-determined period of time called program increments or PIs. The current length of a PI is 1 year.
2.3.2. Projects
For every major project in our portfolio there is a dedicated list of tasks. This list can contain any type of heading at any level but will usually consist of top-level project items containing sets of tasks to be completed.
2.3.3. Products
Products are an implementation of the value our projects provide. They represent a tangible end-goal, an anchor point for connecting with potential users and supporters, and collecting feedback.
2.4. Notes
Notes should be collected frequently and referenced often. They can be as simple as a link to a Wikipedia page, or contain a complex tree of inter-connected nodes.
2.4.1. User Notes
How you store your own notes is a very personal decision, and so I think it's important to leave a space for users to store their own notes and make their own decisions on how to use them.
As of
there is no API for this at all - in the future we will likely provide an API and default implementation specifically for user notes.2.5. Documentation
2.5.1. README
For every project under version control there is a readme.org
file
in the root directory. This file contains some dynamic blocks of basic
information followed by additional content introducing the project.
2.5.2. REF
API References are generated for some of our projects based on the source code. In general these documents are generated automatically and highly structured.
2.5.3. MAN
User Manuals serve as the subject of the phrase 'RTFM'. These are always written manually and revised regularly to stay accurate.
2.6. Report
2.7. Archive
When an item is archived, it is moved to a file under version-control in the archive project.