On a recent project, we used a physical board to visualise the work we needed to do.
It was taking me a lot of time to export work item data and re-format it into a layout suitable for printing. And then someone would add/update/remove some work items, and I’d have to start again.
This led to me creating an Azure DevOps extension – in my own time – in order have a quick and easy way to print work items, so I could chop them up with a guillotine and give them to the team to use.
Azure DevOps Extension: Board cards for printing
Adds a ‘Print’ tab to Sprint boards, and allows users to select iterations, work item types and areas to print on A4 paper for putting on physical boards..
How I built the extension
- I started with the Microsoft “developer a web extension for Azure DevOps” tutorial. This gave me a start with Node.JS too.
- I followed the Data Settings and Storage how-to guide. Data is stored in the user scope by Azure.
What I learnt
- There’s a really swish IDE from Microsoft, built on Electron with tons of extensions, VSCode. It’s free and open source. Microsoft even makes binary releases of VS Code without MS branding/telemetry/licensing.
- Github is easy, until you make a mistake.
- There’s a Node.js module for everything.
- You don’t always need a Node.js module.
- Modular functions that are single purpose are your friend.
- I didn’t implement Promises correctly. I may go back and fix that sometime.
- When people start using your work, they need you to help them sometimes.
- I would make a truly awful programmer.
What I didn’t learn this time
- How to implement unit testing and automated testing – I broke the extension frequently (thankfully only in a separate development version).
- How to implement a deployment pipeline. Every minor change I made had to be packaged and published manually for me to test. It was slow and irritatingly repetitive