TaskAlot 4 - Functional specification

Uit De Vliegende Brigade
Naar navigatie springen Naar zoeken springen

This article is the starting point concerning a functional specification. It may include subsequent stuff like technical specification as well: Don't write additional articles if not needed.

Trello-like boards

Management of projects and operations, is one of the two main activities (the other being Overview projects). It's basically what I do on a Trello board. I really like how intuitive working with Trello is.

BrushFace - One of my more successfully managed projects. Let's analyse what features where important (1)
BrushFace - One of my more successfully managed projects. Let's analyse what features where important (2)

Board status (global local field)

The general status of a board is stored in a field called Board status.

About this name:

  • It's called Board status and not Project status, since boards can be used for both projects and operations
  • How about including the term Kanban in the name of this field? Frankly, I think that term is more applicable to tasks and maybe not boards as a whole. And it actually doesn't matter much
  • Alternative names: Status, Project kanban status

About this field:

  • This is a global or universal field, meaning that it should be the same at all board instances, so that data from various boards can be presented with this field. This is actually probably not much of an issue for boards, as all information is already presented in one screen. This is probably more relevant for tasks - see elsewhere
  • This is a local field, meaning that its values are stored within the database field to which it belongs, and not in a separate lookup-table
  • I think the correct English term is status, not state, although the differences are subtle [1].

Status - Entries

I use the same entries for board status and task status. They are discussed here:

Entry Colour Remarks
Backlog Grey
  • This is the default value for newly created boards or tasks
  • By default, boards or tasks with this status, are not yet well defined
  • Items with this status, can be anything. From very vague and broad to small and very specific
  • This is probably the only undisputed term in this list :)
Next Orange I like this extra status quite a bit:
  • These are boards or tasks that are sufficiently well-defined to be actionable
  • One way I use this for tasks: To make sure that there is a number of tasks that are sufficiently defined for folks to work with. Contrary to tasks backlog: Those are usually not very suitable for action yet
Active Yellow I'm often struggling to find a term that accurately describes what I mean by this status:
  • Doing: I like that doing and done aliterate, but the term doesn't cover it for operations which are 'always active' but may not really be 'doing' anything at any moment
  • Active
  • Current
  • In progress.
Done Green This is the status for everything that is not active anymore and not likely to be active again (otherwise, I would move it back to Next or Backlog). Again, I'm struggling to find a accurate label, as it should include abandoned items. E.g.:
  • Completed
  • Concluded
  • Done
  • Finished
  • Non-active
  • Inactive
  • Done or inactive
  • Done/inactive.

Some of these labels might be more appropriate (e.g., inactive), but have a negative connotation for projects that are indeed done.

Template

Templates seem one of the strongest functionality of Notion for me:

  • So far (2023.03.09), it seems that for boards, I only need one template
  • This one template is called Untitled: This may seem strange. The reason is, that if I give it a 'real' name, like BoardTemplate-2023.03, than this becomes the default name for new boards, and you first have to delete this default name before you can give the board its actual name. By keeping the name field empty, you don't have this problem. But now your template is called Untitled. As long as I have only one template for boards, I can live with this.

What this template does (quite a bit!!):

  • It hides the fields Tasks and Created time. It does display all other fields, including Flags and Clusters
  • It includes a task subpage → See next section
  • At the bottom it has space for general board-related information, including two sections of type Toggle heading 3: Project Status and Project Inventory. I'm not sure I actually need such a section for Status, but in either case, I like it that the template reminds me of these two basic project management aspects

Template - Task subpage

The project template includes a subpage with the associated tasks. I really like this: For now I can very easily proceed from creating a project, to filling it with tasks.

For me, one of the many worrying limitations of Notion is, that contrary to e.g., Microsoft Access (which is an integrated system RDBMS + frontend!), you cannot refer to the user interface (like with events or refering to the active form or detecting the associated main form from a subform). When you check the formula possibilities in Notion, you'll soon notice that they all refer to data. Not to the user interface.

Here, we have probably the only example that I know of so far, where information of the user interface is available: The subpage is filtered with something like board = board title, meaning that it only shows tasks with the same title as the board. Maybe it helps to make this visual:

Template: The items in the subpage are filterd on something like board name = Untitled, with Untitled a placeholder for the name of the project her
A project opened through this template: Now the filter for the subpage became something like board name = Launchpad

People (relation)

  • Boards and tasks can be associated to none, one, or multiple persons
  • The names of these folks come from a database table Persons: It seems obvious to use the build-in field Person for this, but that only works for folks who have a Notion account - I work with folks who have access as Guests (which is a free feature of Notion, contrary to Trello). Hence this database table
  • See elsewhere for more information about this database table.

Static board information

In Trello, I often use a separate list with 'static information' or 'meta information' on boards. In the screen shots for BrushFace at the beginning of this page, it's the column Algemeen. The titles of the column and the cards are in capitals, to indicate that these are not actionable items.

In Notion, such information can be very well included on the board page. See the earlier discussion of the board template for details.

Trello-like tasks

Tasks are similar to those in Trello:

Task status (global local field)

The 'general' status of a task is recorded in field Task status

About the name:

  • Until 2023.03.09, it was called Kanban status
  • I think I prefer Task status

About this field:

  • It's a global or universal field, meaning that it contents should be the same for tasks in different projects, so that tasks from different projects can be combined in views using this field for sorting or grouping - here, having global fields actually makes more sense than for projects
  • It's a local field: The entries are stored in the Tasks database table, not in a separate lookup-table

About its content: See the section Status - Entities earlier on this page.

People (relation)

  • Cards (tasks) can be associated to none, one, or multiple persons
  • These persons come from a database field with persons: These folks don't automatically have a Notion account themselves (nor do they have to - Actually a nice feature of Notion)

Flags (universal, local)

Labels used at BrushFace
  • The labels at BrushFace are mostly attributes of the tasks - They tell something about the associated task
  • Note that the label In komende theme update is a local attribute: It may relate to some projects, but not all - How to reconciliate that?
  • I'm pretty sure this should be a universal field, so it can be used in overviews, plus that I don't want to redefine these at every project
  • Note that the color of the label is displayed on the cards. That's fine. It might be slightly more practical if the name of the label is displayed in it
  • I think I'll also use these for clustering projects in overviews. That seems like non-attributes - Let's not worry about that now.
  • Flags is applied to both Projects and Tasks. In both cases, these are lookup fields. And they are not the same - And that's just fine.
  • This can be a local (lookup) field: No need to make it an external table. Even when labels change over time, it wouldn't be a problem of labels at tasks of long-closed projects change.
  • Urgent: See TaskAlot 3.2 - Functional specification#Priority, importance, urgency, effect & impact for details.

Clusters (universal, lookup)

I need a way to cluster projects and tasks in certain flexible ways. In the past I tried this with 'semi-projects' or something like that. It didn't seem to work. Let's try it now with something like tags, that I call clusters.

  • It seems that this is not quite the same as the labels mentioned before, hence the separate name
  • Make this a separate table, so I can add property inactive when needed.

Task IDs

It would be nice if task IDs. This is done through the plugin NotionPlusIDTask IDs (Notion).

Templates

Simar as for boards, there is a template defined, called Untitled. Fortunately, templates for boards and those for tasks, can have the same (empty) name. The task-template is simpler than for boards, as it doesn't contain a subpage. See the chapter about board templates for details.

Attributes that are not needed

I don't need these right now:

  • Date/week when a card was added
  • Date/week when a task is planned
  • Date/week when a task has its deadline.

Have overviews of projects & tasks

And now the stuff that I don't know how to do in Trello: Create overviews of projects and tasks.

I want to be able to see tasks grouped in different ways. Along the way, this makes the definition of what is a project quite a bit more fluid. Nevertheless, in the end a task always belongs to a project. And that's what in Trello is a board and here in Notion a project. This chapter is about those boards or projects.

Categories (lookup)

Projects and tasks are assigned to none, one or more of the following categories:

  1. Revenue - Customer X
  2. Revenue - Other
  3. Overhead
  4. BizDev
  5. R&D.

As mentioned at Scope, Overhead projects will be included from the start.

Categories will be included as a separate database table - See image.

This project record is shared with someone (my alter ego, Jeronimus). When Categories is a local multi-select field, others can see the name, in this case like Revenue - Customer X - Not a good idea
The same shared record, but now Categories have been moved to a (non-shared) database table of its own. The field is visible (and can be hidden), but its content is not visible

Categories cannot be merged with Clusters: Categories form a partition of projects into a limited number of classes. Clusters can be anything. So it is easy to group by Categories, but not so easy to group by Cluster.

Start page

At TaskAlot 3.2, I started with four databases & corresponding pages. Only later did I create a start page where these objects were displayed. I quite liked that! Implementation:

  • Create a page and move this to the top of the object list
  • Move other objects to that page
  • Right-click on that object and choose turn into inline (or whatever)
  • Add toggles
  • Remove database titles.

Don't choose shortcut to view: Than you only get a shortcut to one view - We want all views!

Templates

Templates (e.g.: Peek view templates (Notion)) are about the weirdest aspect of Notion, but they work really well. So let's use them:

  • For projects: ProjectTemplate (same name as for TaskAlot 3.2)
  • For tasks
  • For clusters
ProjectTemplate: One of my favourite aspects of TaskAlot 3.2

See also