Printing issues with Possy

 | 
4 min read

Tired of writing tasks by hand? - In this article I want to introduce Possy, a tool to print cards with POS printers for physical task boards with data provided by issue tracking systems, e.g. Atlassian Jira.

Physical task boards are typically encountered in software development teams who use an Agile method like Scrum or Kanban as their process model. These task boards help to visualize the advance in development. Quite often there is the requirement to maintain the state of physical task boards in digital issue tracking systems, e.g. Jira or GitLab. In this case a considerable effort accrues, because the state of the development progress has to be maintained on the physical task board and on the issue tracking system.

Possy Agile Board

Example of Possy-printed Agile Board

You could simply avoid using physical boards and manage the issues with a single digital instance without the need to sync any state. But here are some advantages of physical boards, so you probably want to use them in conjunction with an issue tracker:

  • A physical place where the team members meet
  • Physical board motivates the team to gather, discuss and collaborate
  • Face-to-face contact improves communication and engagement among team members
  • Better communication leads to more efficiency, ownership, better products and less unwanted delays

So we need some tooling here to make our lives easier and that’s why I want to introduce Possy to you.

Possy

Possy is intended to be used as addition for physical Scrum and Kanban boards. It’s a simple web interface to automate the creation of print-cards which are typically used on physical boards.

Usually you have to sign in on your ticket system. Then you have to find the desired issue and finally you have to write some text on e.g. Post-it® by hand. In total this steps can be very time consuming.

Possy automates this process by letting the user choose the tasks to be printed in its simple web interface. The UI part is connected to an issue tracking system like GitHub or Atlassian Jira. Possy prints the selected issues with one of the connected POS printers. Why POS printers? - Simply because they print on thermal paper. Thermal paper is quite cheap, usually cheaper than conventional sticky notes.

The idea behind Possy comes from my colleagues Boris and Gerald. A first prototype was born some time ago, after some months I joined the OSS project as contributor. Currently we work on different features and improvements, there are many ideas to extend the functionality of Possy. Have a look on GitHub for the current status of the project.

Possy on GitHub

There is also a demo instance running on Heroku:

Possy demo on Heroku

Following image illustrates a Possy-printed User Story. As you can see the quality is quite nice for a POS-printed document (printed with an Epson TM-T20II printer).

Possy Story Issue

Architecture

There are two main modules, Possy Service and Possy Daemon. Possy Service serves the user interface made with Vaadin (https://vaadin.com) and is responsible for communication with the issue tracking systems. The Service creates print jobs which are consumed by the Daemon. Possy Daemon is connected with some POS printers via CUPS. Multiple connected POS printers are supported to enable prints with different colors. The JVM-based language Kotlin (https://kotlinlang.org/) is used for the whole project.

We have two different networks in our production environment. Members in network A are not able to talk with members of network B, but vice versa. The requirement was to serve the user interface via network A. If Possy would be a monolithic application which runs in network A there is no chance to talk with the printers in network B. So we decided to split Possy into two modules. The Daemon in network B fetches print jobs from the Service in network A.

Possy Architecture

Possy Daemon is a very small and lightweight application. Therefor it’s perfectly clear to run the Deamon on a small and handy device like a Raspberry Pi.

Planner

Possy includes a very convenient feature called Planner. Mostly it’s used during Planning II meetings to create Story sub-tasks. All tasks for multiple Stories can be defined directly in Possy’s user interface and with one click all tasks get printed in order.

As we have no distributed team we aren’t managing sub-tasks of Stories with Jira. This much faster and more flexible to do with Possy Planner. There is no need to manage the sub-task state both in Jira and on the board. Of course this approach has some downsides when working remotely, because the physical board is not visible then. But we have the vision to capture continuous snapshots of the physical board with an camera attached to Possy. Feel free to open a pull request for this feature 😏

Possy Planner

If you have any feedback or if there are some features missing feel free to open an issue on GitHub: https://github.com/gerald24/possy/issues

Back to overview Next article
comments powered by Disqus