Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Section
titleTable of Information

Suppose you need to list some contact information about your team mates: Tina, Mike, and John.

You create a new page in Confluence and put the currently relevant information into a table like this:

NameE-mailPhone
Tinachristina@example.com-123
Mikemichael@example.com-204
Johnjohn@example.com-451

Next you realize that the skype ID and mobile phone number are also relevant. There for you add new columns to your table.

NameE-mailPhoneMobileskype
Tinachristina@example.com-123+01 123 23451tina.m
Mikemichael@example.com-204+01 123 23671super.mickey
Johnjohn@example.com-451+01 123 24656delibunknownmycorporationme

Next you learn that this information is relevant to freelancers that are also members of your team. So you decide to state the full phone number and the full name.

NameE-mailPhoneMobileskype
Christina Meyerchristina@example.com098 321-123+01 123 23451tina.m
Michael Subamichael@example.com098 321-204+01 123 23671super.mickey
John Doelyjohn@example.com098 321-451+01 123 24656mycorporationme

Now you can add more information for a team member by adding additional columns and more team members by adding additional lines to this table.

This is quick and easy and is often fair enough. But processing this information or showing information for different contexts in different views is not easy to do.

...

Section
titleAdditional Requirements

There are usually some use cases that you encounter dealing with information for some of which the tabular form put some limitations.

Here is just a short collection of a few:

  1. Selecting on Information
    1. Not all team members may need to be on the table for some users of the address book
    2. Not all users are interested or should have access to all information about a team member
    3. Users may want different views on information such as internal staff has access to the extension phone number while external freelancers have the full number
  2. Referencing Information
    1. You can reference the whole address book of team members, but ...
    2. ... users may want to pass a link to a team member or ...
    3. ... use a reference to a team member in their documentation (e.g. in meeting minutes)
  3. Adding more Information, for instance:
    1. Notes on the team member, e.g. special interests or availability for the project
    2. Fields of expertise
    3. History of projects
    4. References to topics in the wiki the team member is one of the authors

...

Section
titleHandling these Requirements

So what are the options to handle these requirements with the tabular approach and what is an alternative?

The alternative is single sourcing: Instead of adding lines to a table we see each line as an entity for which we create a new page. Information form these pages, single sources of truth for a particular information like the connection information for a particular team member, can be accessed and compiled in different contexts. Each representation for such a context we call view. So in different contexts you may have different views on the same information.

Section


Column
width33%


Panel
titlePage for Tina


NameChristina Meyer
E-Mailchristina@example.com
Phone

098 321-123

Mobile+01 123 23451
skypetina.m



Section
titleFields of expertise
  • ...
  • ...
  • ...


Section
titleHistory of projects
  1. ...
  2. ...
  3. ...




Column
width33%


Panel
titlePage for Mike


NameMichael Suba
E-Mailmichael@example.com
Phone098 321-204
Mobile+01 123 23671
skypesuper.mickey



Section
titleFields of expertise
  • ...
  • ...
  • ...


Section
titleHistory of projects
  1. ...
  2. ...
  3. ...




Column
width33%


Panel
titlePage for John


NameJohn Doely
E-Mailjohn@example.com
Phone098 321-451
Mobile+01 123 24656
skypemycorporationme



Section
titleFields of expertise
  • ...
  • ...
  • ...


Section
titleHistory of projects
  1. ...
  2. ...
  3. ...




Let's have a look at how we can engage the additional requirements we have listed above!

Section
titleSelecting on Information

Selecting on information on a table can be done by filtering. Filters may reduce the amount of columns and the amount of lines. You can have controls where you type and automatically prune the table.

How can we approach this requirement using single sourcing?

The page holding the contact information for a person can be based on a blueprint to make it easier to add new members and provide the information that is most relevant to the team. A blueprint is therefore a tool to support authors to compile similar information in a similar way and it shows the author which information is typically expected on such a page. This guidance is implicit with the table approach. The format and layout is defined by the order and number of columns of the table.

Note Box

The Person doctype provides a blueprint with common information one expects to find in an addess book.

Information that should only be visible to team members having certain roles could be added on separate pages. The access to these pages is restricted by the wikis access control and are transcluded on the public page. Therefore the transclusion will only happen if the user has sufficient access to the restricted information. This feature is difficult to master with a table approach. You would need to have a tool that allows to grab information from an alternative location and render it into the page at request time. This is what transclusion does with Confluence tools.

You can add information in different formats. For instance the telephone number in form of its extension and in full format. You may also define different type of team members where different types of information is relevant.

Tip Box

Not shown here, but you can use the Display Document Property Ref Macro to render a property value and append or prepend additional information. This way you could have a property Phone Extension and a property Phone Number where the Phone number reuses the extension information. If the extension for a team member changes, the update is only needed in one place.

To automatically render the information of all team members in tabular form, use the Display Table Macro. This macro allows you to query for team members with certain properties and select to show only the personal information that is relevant to your use case. That is you have the information of team members in one place and then have multiple views on this information by using the Display Table Macro.

With the table approach this table is automatically provided. But since it is hard wired, there is only one view on that table (with some considerable variations if you add code for filtering and sorting to that table).


Section
titleReferencing Information

To reference a single member you would need to reference a single line in the table. This can be done with a named anchor, but this is usually troublesome.

If you have each team member on a separate page, the URL to that page references the team member. Via this URL all information about the team member that is relevant to the team is accessible. This URL can be easily added to other documents to create a web of information.

Since the URL points to a page in Confluence, changes to the name of the page will automatically update all references. This is not the case for named anchors. If the named anchor changed, the references are not updated automatically.


Section
titleAdding more Information

In tabular form it is often unwieldly to have short information like a name in the same line as a list of special interestes or other multi-line notes. It makes the table less readable since all cells in a row need to have the same height. And although the height of rows may differ, a table with rows of the same height is usually more pleasent to read.

If the information for a team member is on a separate page, any information can be added. The projectdoc Toolbox distinguishes between Document Properties, which are typical single line and used to filter on team members for a search result and Document Sections which comprise multiple blocks like paragraphs or tables. Since each view selects on information, the information can be rendered in the most appropriate layout.

Having defined fields of expertise on could also collect names of team members who are provicient proficient in that field. That is by clicking on an expertise on a team member page, the user would have access to a list of team members that also have knowledge in that area.

If you document projects and link to the people who are part of the team, a history of projects can be automaticall rendered on the team member pages. The same is true for topics the team members are authors of if they are mentioned as as authors on the topic page.

The page for contact information of a team member becomes a portal to related information by itself.



Section
titleConclusion

Having each information on a separate page makes it referencable. Think of having a separate page for each line of the original table. You can add any number of views on this information and some information will be collected automatically. We have discussed briefly the many advantages to have a single source for each piece of information.

On the other hand compiling a table with a couple of columns is very easy and can be conducted in an ad-hoc manner. Single sourcing requires some form of planning as to decide how such a page should look like by defining a blueprint (instead of . This is in contrast to instantly guessing the relevant columns )of a table. For many people it is often more cumbersome to create a new page than to add a new line to an existing table.

So – as often – there is no right or wrong.
And therefore – as always – choose the tools that are most appropriate to your task at hand!

...