The daily work with a Scrum Board is pretty inefficient. Most people out there claim that they’re more productive using Trello, Jira or other solutions to manage their tasks.

As a developer, I think this is quite the opposite. We need to have the information in one place to figure things out, as every context switch of wide-spread information introduces a new layer of abstraction that gets quite complex pretty fast.

Some friend asked me how I am able to manage all the tasks in our open source projects and not getting insane by the manual overhead of managing them. So here’s the short story of a long time VIM user on how he thinks he got as efficient in his workflow as he can get.

Being annoyed by the ZenHub extension’s UX and UI (it integrates poorly, has popups and annoys you to create an invite issue every time you clear the browser cache again), I created my own Browser extension for both Chrome (or Opera) and Firefox. It’s called Github Scrum Board extension and is licensed under MIT / Expat.

GitHub Scrum Board extension

Screencast of the GitHub Scrum Board extension

The Scrum Board extension uses Personal Access Tokens from GitHub. The idea is not to rely on a third-party service anyhow, so there are no external third-party shitty cloud freemium services used. This also comes with the advantage that private repositories with all rights are available without having to give access to a third-party service all the time.

Everything of your confidential data stays on github and uses only the github API. For having it integrated more nicely, it tries to be as minimalistic as possible and shows every UI part only when it makes sense and if an action is required and possible.

The extension also does no click jacking (read: manipulation of links to do requests to external services) like other extensions do, so every internal github Link works just as before. The only thing replaced is the /issues overview of every github repository; which you can still switch back to the original view by clicking on the Issues button on the top again.

Using the GitHub HTTPS API it’s also as secure as possible, it uses github labels behind the scenes and has a sweet Drag and Drop interface that supports literally hundred of issues at a time.

Getting even more efficient with git-todo.

Having a nice minimalistic fast UI for a scrum board is cool. But I thought I can get even more productive. The problem I’m always having as a developer is that people keep nagging me with stuff that distracts me from what I’ve worked on initially. Dealing with lost focus and getting back to work again is hard, I always need a heads-up start to figure out WTF I was working on before. I tend to make offline notes (read: on real paper with a biro) so that I can quickly figure things out where I got stuck before the distraction.

On my developer machines I also tend to use the Terminal and VIM a lot. The only other program that is open all the time is Chrome (with reddit, of course). So the most obvious thing for me was to make a quick git todo command that I can type in every time I’m in the repository itself.

Screenshot of the git todo command

The git todo command integrates fully with existing repositories. Literally zero configuration is necessary as it parses the .git/config file and checks it for valid github.com URLs. These URLs are resolved and scraped for open issues, which means it also has support for upstream repositories if you’re working with the triangular workflow and if you have it added as a remote in your git config :)

Granted, the git todo of the lychee.js Engine looks a bit chaotic by default, but the git todo command also has support for filtering by remotes, assignees and milestones. I still think there’s plenty room for optimizations.

How do you optimize your workflow? Are you working with the given tools or do you try to optimize the amount of manual overhead? Please let me know in the comments, I’m curious.