This article is about using Jira as an inventory and asset management system and how we use it at mytaxi.

The situation before

When I came to mytaxi in 2013, there was no inventory system. The need for it arose in 2014, when the company grew and grew. First, we installed GLPI, an open source system which wasn’t quite sure what it wanted to be. GLPI was an issue tracker, a license database and an inventory system. It was okay, but soon we discovered the limitations of it. There was no real API for automation, inserting new information was hard and above all, it wasn’t really nice to look at.

Setup and configuration

So, we had to find an alternative. Luckily, in Mid-2015, we discovered this great multi-part article from atlassian on how to use JIRA for inventory management. That article goes into much more details than this one, like setup and reporting. I highly recommend reading it.

The idea is that you create a special JIRA project for inventory. Every inventory item is an individual issue. You can create custom fields for inventory numbers, serial numbers, warranty information etc. You can assign those issues to users to see who’s got the device at the moment. You can define workflows that represent your company’s work structure.

This is perfect for companies that already use JIRA – one less system to take care of, and the integration possibilities are endless.

The Statuses

The core of this project is a specialized inventory workflow which resembles your specific needs. Here’s our company’s inventory workflow, for example:

I’ll just explain the statuses:

Enter Item Details:

Default status after creating a the ticket. It’s for making sure that every important field is filled out.

In Stock

The item is currently stored by the admins in storage and not in use by anyone. For notebooks, this indicates the computer is ready to use, it is bound to AD, it has all the company profiles and software on it and can be assigned to a user.

In Use

In this status the item is assigned to a specific user. The user can see which hardware is currently assigned to him by just searching for project = "INV" AND assignee = currentUser().

In Hardwarepool

Sometimes, hardware cannot be assigned to just one user. Test devices, for example, belong to a undefined number of people. For this, we created the status In Hardwarepool. We then specify which Hardwarepool by putting the location in the issue tags.

In Service

When a computer is being repaired or otherwise not ready for use, it will be placed in this status. While being reimaged for example.

Obsolete – Pending Disposal

These are computers older than 3-4 years that are no longer in use or computers that are broken and it is not sure what will be done with them. It will then be decided how to proceed – if they will be sold or otherwise be disposed of.

For Sale

Computers that are older than 3-4 years, but are in good shape, can be sold (as of this moment, only to employees). They need to have been wiped completely free off any company data. We wipe the HDD/SSD by overwriting it with random data, install a new operating system and then they will be placed in this status.

Awaiting Invoice from Finance

After an employee has shown interest in buying one of the old notebooks, the finance department needs to write an invoice, so that the paperwork is in order. While we wait for the invoice, the machine gets this status, so it will no longer be shown in the for Sale status.

Item Sold

The first final status. The machine has been sold and is no longer property of the company.

Graveyard

The second final status. The machine is so old or so broken that it cannot be repaired. We have a special box with the label graveyard on it – we just throw them in there. Sometimes we still can use spare parts of one of the machines.

Lost/Missing/Stolen

If a machine has been stolen or is missing, it gets placed in this status.

Reporting

Like with every Jira project, you can create Dashboards to show an awful amount of data. We did the same to graph all of our inventory assets, and it looks quite great:

BTW Atlassian: We still want a dashboard gadget that can create nice bar graphs. I want to see in a bar graph how many free notebooks, power adapters and monitors we have left. No plugin on the Atlassian marketplace can do this in a good way.

Searching

Now, somehow there wasn’t a dashboard gadget that can search issues, so we had to find one. We’re using Jira Custom Search to search in specific fields. For example, if we want to get the issue with the inventory number 0602, we just type it into the inventory number search field.

History

Thanks to Jira extensive preservation of the ticket history, we can now see EVERYTHING that has been done to the asset. Every bit of information that concerns a computer (if it behaves funny, if it was reimaged at some point) gets written in the comments, so the next guy who works on it sees the complete picture.

Little helpers

Jira works together well with our own little tools we’re using to make life a bit easier.

Inge – Inventory gone easy is a small python script to make stocktaking and the addition to the inventory system easy by just asking for the serial number of the device and your company’s inventory number (the sticker that you slap on it). I will explain further what it does in a future post. We’re planning to opensource it next year.

Conclusion

We have been using this for about half a year now and we’re pretty happy about it. I recommend this to every other company that already uses Jira for something else.

Questions, corrections, praise, hatemails ? Just drop me comment. Don’t forget to subscribe to the feed so you won’t miss an article.