Team Communication with projectdoc

Lost in wiki space? Blank-Wikipage-Syndrome? Where to add? How to find? No fun anymore?

projectdoc - as an add-on for Confluence - supports teams to communicate. Effective communication is essential for successful team work. Stakeholders communicate with each other and their future selves.

projectdoc focuses on indirect communication that is based on documents and records. We call the whole collection of these artifacts documentation.

projectdoc claims to support teams to create documentation that is

  • easier to write
  • easier to extend
  • easier to reuse
  • easier to navigate
  • easier to search
  • easier to read

Certainly this is a big claim. Can we proof it?

Let's take a tour to the basics of projectdoc and explain why projectdoc makes using a wiki as a tool for team communication and collaboration much easier.

Here is the outline of this article:

Basics

projectdoc Document

Every projectdoc page consists of two types of information: properties and sections. A Confluence page that contains properties and sections is called a projectdoc document.

Properties help to organize documentation by classification. They contain data and metadata about the information of the document. There are properties every document should have (e.g. name and short description). Other properties are optional (e.g. audience or sort key). Some are type specific (e.g. story points or resource type), some are globally used (e.g. tags and categories).

Sections organize the content of the document into referenceable units of titled text blocks. They can be transcluded and easily moved around (per drag-and-drop) within a document. Section do not get displayed until they have content in it. That is a great feature in combination with templates, as we will find out in the next section of this article.

You still may add any content to a page. Content is not required to live inside sections. Even with projectdoc Confluence is still a wiki.

Doctypes

Doctypes define the properties and sections available for a document of a given type. They are basically templates that are implemented as Confluence Blueprints.

Doctypes reference document instances of other doctypes. The Audience property may reference Role documents or the Tags property lists references to Tag documents.

Since sections are only rendered when they have content, authors do not have to eliminate the sections they are not using right now. The guiding structure of the template is not lost for future additions.

The structure is not very strict. Confluence is a wiki after all, so we need some freedom to evolve. New properties and sections may be added at any time to the document instance.

projectdoc provides some suites of doctypes as free add-ons. Furthermore theses add-ons are available on Bitbucket so that you can download the source code and customize them to your needs.

You are not limited to the document types we provide with our examples. Using properties and sections allows you to define any doctype you need for your team's communication.

Automatic Lists

Be open for extension, but closed for modification. The open-closed principle for software development has its benefits also when applied to documentation. That is, if you add a new document any changes should be done to that document and not to existing documents.

For instance, if you define a document that lists all error codes logged by your application, you should not need to open the document with that list and add an additional code. Instead you define an automatic list in the document that collects all documents of type code and - as an example to show you how to further constrain the query result - tagged with public API. From now on every new code document you add to your documentation and tag with public API will be automatically listed. You may select on any property you have defined in your Code Doctype.

Every team member should focus on creating new documents and reuse existing information. This results in a modular documentation that supports collaboration.

Transclusion and Referencing

Every information is stored in a system that is best in working with it. There is never a one-size-fits all. You may store your stakeholder address information in an SCM and your source code in an LDAP. But the other way round may make more sense in most cases.

We strongly believe that there should be one access point for a project. That single address every stakeholder - be it the project sponsor, the team member, the customer, the user or any other interested party - remembers and finds access to the information she is looking for.

We suggest to use a wiki as this single point of access. Wikis are easy to add new information or to restructure the organization of your information quickly. This is important to adopt your tools to the way you want to work. Your mileage may vary.

To make information from remote resources available in a wiki, you need tools like transclusion and references. Transclusion grabs a part of a document and renders it within another. A reference is simply a hyperlink to an information in another document.

projectdoc provides a couple of macros for transclusion and macros for referencing.

While referencing is fairly simple, transclusion may demand some extra calculation power. Check your target information architecture with your hardware thoroughly before you roll it out!

Delegation and Search Spaces

Sometimes the organization of pages in page trees within a space or in different spaces just is not enough. There is the need to arrange spaces and search information in a space group. You may also want to delegate the location of a new page to a space that is responsible for organizing this type of information for several teams.

projectdoc provides the concept of delegate spaces and search spaces. A projectdoc space provides standard locations for standard information. Software developers know this approach well: if they use Maven they do not need to worry about where to look for Java sources, site information, or scripts. It's a convention, but reasons for not following them are very rare. The same approach is used to store view, use case, or minutes documents. There is a standard location known as doctype homepages. If you want to collect documents of a given type for a space in another space, you define that space as a delegate space. That is, if you create a document and want to send it to its standard location, this location is first looked up in the current space and - if that homepage cannot be found, the list of delegate spaces is traversed until the homepage is found.

A search space reference extends the search of projectdoc macros. Not only documents of the current space are considered as matches, but also spaces found in the search space closure defined for that space.

More Information?

For more information on projectdoc you may find the following information useful:

Give it a Try!

We state 'Proof' several times above, but we all know that the real proof can only be done by yourself! The question is: does it work in your environment, for your team? Does it make your life easier and more fun?

Try it for yourself!

Download

  1. an evaluation copy of Confluence and 
  2. an evaluation copy of projectdoc (and any of the free doctype add-ons you like)

and install these products to you self-hosted server.

Use the following resources to get started with projectdoc:

  1. projectdoc add-ons on the Atlassian Marketplace
  2. projectdoc Toolbox - the handbook of projectdoc
  3. projectdoc Introduction - covers the information in this article and some additional references
  4. The projectdoc Toolbox for Atlassian Confluence - the homepage of projectdoc

If you have questions, please get in touch!