We recently posted about using Jira as a project tracking and management tool- from the viewpoint of a programmer. One of the big things a system like Jira does is provide a centralized view of what’s going on. But there’s a lot more power under the hood than just good-looking screens.
We’re going to look at some of the automation that can be put in place to reduce software development pain. That’s pain in dollars, hours, and bleary eyes at the end of a long day. Or even at the end of a long development cycle. Tired people can make mistakes, but computers don’t get tired, so let’s harness them to take as much load of the software team as possible.
First, developers need to be using a first-class source code control system. I personally won’t work for a company that doesn’t, and you shouldn’t work with one either. It’s the foundation for almost all software development automation. It’s too big a topic to go into any depth here, but ask your tech partner about it. They should be experts at the fundamentals.
For us at GeekHive, Jira is linked into our source code control system. You can see what changes have been committed, how often, and by whom. You can drill down into the gritty details. That might seem unnecessary at first, but remember this: when a programmer commits changes to the system, they are also committing notes on the change. Those notes are important information and should be visible to anyone on the team.
Clicking the “1 commit” link opens a screen with those details.
This gets us to the really powerful and useful part. Most software development tracking tools come with automation tools built in to let programmers get stuff done fast. Sure, they can commit the code to the repository, add a comment to the ticket, log their time, and update the status, but that’s a few extra minutes of work. Why not do it all in one step?
In Jira, the automation for this is called “commit hooks.” In Redmine they’re called keywords. The point is, a developer can add a few words to their comments (see the previous image), and be finished in one step.
It looks like this:
The #time command logs their time, the #comment command updates the ticket with some information, and the #resolve command moves the ticket through the workflow.
Even if you’re not a programmer, you can appreciate that one step is faster than four. And that adds up over a software development cycle.
The Magic Button
Deploying software is complicated and full of peril. One of our project managers calls automating the process “the magic button” because distilling the process down a single click removes a lot of the apprehension. This is a big gain in productivity as well, for a couple reasons. First, one click is as easy as it gets. Second, a project manager or Dev Ops person can deploy the new version of software- it doesn’t require a programmer.
There are a number of options for this kind of automation. Jira has a counterpart called Bamboo to automate builds, but it might be something as simple as old-fashioned batch files. Anything that removes steps and saves time.
This blog post has been a little bit of a deep dive into some of the stuff that goes on behind the scenes, but process matters. I think of it as tying your shoes before the race rather than during. Especially at the end of a software project when time and budget are under a lot of scrutiny, you don’t want to spend resources you don’t have to. Getting all that stuff sorted out and automated leads to peace of mind and met expectations.