Blog

  • 2024
  • 2023
  • 2022
  • 2021
  • 2020
  • 2019
  • 2018
  • 2017
  • 2016
  • 2015
  • 2014
  • 2013
  • 2012




Working collaboratively as team creating software-based products requires information flow. Not only need coding software developers to communicate the architecture and various quality aspects of the software artifacts to non-coding team members, but developers also need to know about things like business priorities, contract information, and market opportunities. This communication needs cannot be solely answered with a markup language and a source code management server. While this tool selection is a valid solution for developers or technical writers, it cannot be the whole story, especially for large teams. Software coding is only a small amount of the work to be done for a successful product. And I hate to admit - as a software developer loving to code - coding is not the most important one.

Communication is king. Creating documents nobody is interested in is a waste of resources. While only implemented features of a product are able to support users getting their work done, there is also the need to move information from one stakeholder's brain to another. Information is required to support stakeholders to make the right decisions. There is also the need to store information in a tool more reliable for recalling than the brain. 

Information workers handle different kinds of information. But for software project we often work with the same set. Architecture decisionwork instructioncontractinterface documentationpatternsstakeholder descriptioncodes, test plan, build plan, personauser storyuse casemeeting minutes, and so on and so on. Well, this set is quite large. Not every artifact is be a document in a wiki. It may be a bug report in a issue management system or an executable test case run on a continuous delivery server. In case a document is actual to be created to provide a given information, there is no need to reinvent the wheel for each document instance. Templates leverage the organization of the actual information. Team members should fetch the most appropriate template for the communication task at hand, add the information in a form their readers expect and push it to a location where interested parties can find it easily. This is about concentrating on the readers' demands and their expectations.

At smartics we work with Confluence as a team collaboration platform. Each member writes a journal which is readable by every member of the team. This is because records are easier to handle than documents since there is no need to update records. Albeit some information is better organized as documents than a flow of events organized by time and some tags. This is when Doctypes for V-Modell®XTDoctypes for Service Management (ITSM, Information Technology Service Management) and other doctype add-ons enter the stage. If we need to compile information, we choose from the experience of other people to organize it. With space and page blueprints organizing information with projectdoc Toolbox in Confluence is quite easy.

Evaluating Delivery

 

While there are many ways to evaluate a delivery, we decided to use V-Modell®XT. This makes it easier to organize the work since the domain and its processes are well defined.

From the contract and specification we derived the scope of the delivery and specified the acceptance and test criteria for the delivery as a whole and its individual items. Running and documenting the tests has then been straight forward. In the end we used about ten different templates (e.g. delivery, delivery item, test specification, test protocol, and problem report) to evaluate the delivery.

Lessons learned

First we thought it natural to add protocols to their specifications. This way the whole thing, specification and protocols could be exported in one go. But it turned out that having protocols in their own tree would have been much simpler in our case. Since there had been a retest, we needed to document that one apart from the tests we conducted before. Therefore the blueprints now allow to organize test specifications and test protocols in two ways:

  1. Add test protocols to the test specification (our first approach)
  2. Add test protocols to the delivery description

We now also differentiate between a problem report and a change request. The problem report is a record derived from a test protocol. It makes it easier to list and reference the individual findings. A change request is a traceable ticket that may be the result of a problem report. There may be use cases where problem reports can be skipped. For instance, if it is only relevant to track the problem, but there is no need to have the original problem documented. In this case simply create a ticket, since the only important information is the current status of the problem solution process. If the problem report is passed to a team that organizes the tickets in their own issue management system, change requests may be created directly in that system. It is often waste to track a ticket in two different systems.

Service Management

 

Documenting services from a management point of view made us delve deep into ITSM (IT Service Management).

Lessons learned

To distinguish between a system and a service has been the key takeaway. This separation allows to move the technical aspects away from the organizational and management view that focuses on the customer. Often technical information is better collected automatically from the actual systems (live data). In order to define and steer a service strategy, typically these technical aspects are often less relevant. There is a more abstract view on this information in form of service levels and qualities.

Another important point is the visualization of dependencies and information flows. Therefore we started to experiment with a Graph Extension that allows to transform a web of relationships between documents into a graph description to be rendered with a graph add-on (such as plantUML for Confluence).

In the end there is (still) often the need to export information from the wiki in form of static documents, mostly PDFs, to be sent to external stakeholders. Still this transformation takes quite a large amount of time (and we wished that everyone was working directly with Confluence), but we are working on it to get it done more quickly by increasing the amount of automation. Fortunately there is still room for improvement! (smile)

 

Doctype add-ons provide free space and page blueprints for the projectdoc Toolbox. Some of the latest doctype add-ons are currently only available on Bitbucket.

#NameStatusShort Description
1Core DoctypesAVAILABLE
Provides a basic set of doctypes to create agile documentation.
2Doctypes for Software DevelopmentAVAILABLE
Provides doctypes to create documentation in software development projects. The focus is on documenting the architecture of the product, but it includes templates for other software development documentation requirements as well.
3projectdoc Add-on for arc42AVAILABLE
Provides doctypes to document a system or software architecture based on the arc42 Template.
4Doctypes for Agile PlanningAVAILABLE
Provides doctypes to collborate with your team. Run iterations and record discoveries that may be of interest at the end of the iteration or for even later reference. Quick notes are more easily added as records to the team's space than to the official documentation tree. Defer the talk to the documentation architect to the end of the iteration (if the discovery is still of interest).
5projectdoc Developer DiariesAVAILABLE
Provides doctypes to organize the developer's work by the employment of a diary. Take you personal planning and professional records to the next level!
6projectdoc for Java DevelopersAVAILABLE
A collection of blueprints for Confluence to create and work with documentation for Java projects.
7projectdoc for Maven DevelopersAVAILABLE

A collection of blueprints for Confluence to create and work with documentation for Maven projects.

8Doctypes for TeamworkAVAILABLE
Provides doctypes to define the checklists, processes, patterns, tools, and rules your team agrees upon. Writing them down makes them accessible for anyone - especially for new team members. Keep these documents short and to the point!
9Doctypes for Business StrategyAVAILABLE
Mission, vision, strategy for business planning and execution.
10Doctypes for Service ManagementAVAILABLE
Provides doctypes to document services and systems for IT service management (ITSM).
11Doctypes for Project ManagementAVAILABLE
Provides doctypes for documenting decisions, risks, open issues, and meeting minutes.
12Doctypes for Risk ManagementAVAILABLE SOON
Provides doctypes for documenting and tracking risks.
13Doctypes for App ManualsAVAILABLE SOON
Document macros, page blueprints, space blueprints, and components of your Confluence add-on.
14Doctypes for V-Modell®XTAVAILABLE
Use products (templates) from the V-Modell®XT in your Confluence wiki as blueprints!
15Objectives and Key ResultsPOSTPONED
Use OKRs to define your objectives and focus on your key results.

 

Some doctype and extension add-ons are currently still under development. They will be available for download on the Atlassian Marketplace soon.

Add-ons labelled as AVAILABLE SOON are already published on Bitbucket.

ABOUT TO BE AVAILABLE indicates that the add-on has been released to the Atlassian Marketplace and is waiting for approval.

Add-ons with status AVAILABLE are published on the Atlassian Marketplace and on Bitbucket.

Add-ons marked as NOT YET PUBLISHED are currently under development. Please get in touch if you need to know about the release plan!

POSTPONED indicates that the add-on is no longer under active development to be released on the Atlassian Marketplace, but still available on Bitbucket.

If you would like to get early access in form of a deployable JAR or OBR, please get in touch!


Link

Link

Posts