If you’re a founder, product manager, scrum manager, or technical lead working with a team of developers, you know it’s not always easy to add Agile methodology to their workflow. This is especially true if you try to get developers to use software they don’t understand, think they need, or want to use.
We’ll let you in on a little secret: developers hate to forced into a project management approach. In a perfect, pristine world, we developers could focus just on writing code and nothing else. We get that there are other people involved; designers who create digital assets for us, writers who spin words that capture the work we’ve done. Even marketers, we suppose, need to be kept in the Agile loop.
But we hate having to use an entirely different system on top of coding, git commits, and pull requests.
If the developers on your team feel the same way, don’t try to herd cats; instead let them use one of the tools they know and love: GitHub.
So how can you add Agile methodology to your source control tool AND keep your developers happy?
1. Use GitHub’s Agile Projects
Since October 2016, GitHub has offered a way to track GitHub Issues, Pull Requests, and Notes, with Projects. GitHub Projects let you have kanban-style boards for managing work, and cut across separate code repositories. This lets you round up, say, all the tasks for your next sprint and list them in one place.
GitHub Projects are great for developers because they are an extension of what developers are already used to: GitHub Issues and Pull Requests. When developers finish writing code to fix a bug reported via an Issue, the message they wrote to summarize what they did can automatically close an Issue once it’s live. This means you don’t have to harangue your developers to keep the project management app up-to-date; it’s already done.
What’s more, GitHub Projects let you group Issues and Pull Requests (which are code waiting to go live) by Milestone. Let’s say you have a first quarter release that’s important to sales and marketing. Developers will be able to report the status of their work in detail through Issues. This allows everyone else on the team, or other teams, to see their progress by viewing Milestones.
If you’ve ever used Trello, working with GitHub Issues (like Cards) and Projects (like Boards) will be very familiar to you. Let’s take a closer look at how Github Projects work.
Creating GitHub Projects is pretty easy:
1. Log into your company’s GitHub account.
2. Go to the “Projects” tab.
3. Give your new project a name, a description (optional), and start with the “Kanban (Basic)” template.
4. Click “Create Project.”
5. Your new Project will open, with a handy set of instructions on the left, and Issue cards, which you can drag into their proper places, on the right.
6. Continue to add issues that you want to track (such as the resized logo you need for the next release) into the Project. You can search for existing (open or closed) Issues, or add notes. GitHub Notes are hard to find in the documentation, but easy to create once you know the trick: click the + next to the ellipses to the right of a Project columns’ name.
2. Make GitHub Projects more Agile with ZenHub
As nice as GitHub Projects are, they’re missing one really important Agile methodology ingredient: Epics.
In Agile methodology, Epics are bigger than single user stories, sometimes bigger than any one sprint or iteration. For product managers, founders, and executives, they’re the things that matter most.
Unfortunately, GitHub doesn’t have Epics (neither does Trello, out of the box). But there’s a neat service for GitHub called ZenHub, that adds Epics, enhances Projects, and adds a number of very useful reports to GitHub.
With ZenHub Epics, you can organize a bunch of User Stories in the form of Issues into a single coherent whole; scheduling it, tracking it, and measuring its progress.
Not having Epics as part of your Agile toolbox can hurt your team. If you use Trello, but not Epics, each sprint will fill up with small issues and improvements. Meanwhile, the big things, the things that matter most and that would normally have been captured as Epics, will not be addressed fast enough.
ZenHub does more than Epics for its approximate $5/month per seat price tag. It can actually predict delivery dates so you don’t have to do the math, and delivers management-ready release reports.
And for your developers, ZenHub offers burndown charts to show progress made towards completing a Milestone.
3. Consider a third approach to Agile management: Trello
GitHub and ZenHub are great solutions when your Agile team is mostly developers. But what if they’re not? What if most of your cross-functional team are people who don’t think like developers? Or you don’t want to complicate the software development process with issues from other teams, that have nothing to do with software development?
Trello makes for an excellent Agile management tool for teams more interested in results and process than management reports. With it, and a consensus around how your team will use this tool, you can orchestrate both simple and robust Agile projects.
Trello straps rockets to a kanban board: you can have as many boards, lists and cards as you need. You can add information, links, and integrations to cards, and move cards from list to list and board to board as needed. Here’s a great Agile starter board you can use as a template.
Most Agile project management tools have a product backlog list for defined tasks, a sprint backlog for the tasks enumerated for this sprint, and a current sprint for tasks in progress. But if this structure doesn’t work for your style of Agile management, Trello lets you set up your own lists as you see fit.
Your team members are free to create and edit cards, adding comments, checklists, due dates, tags, and notes — essentially having all the conversation that’s needed about a specific task. Trello will make sure everyone is up to date, log comments, and alert team members when they are mentioned in any card.
Four things make Trello particularly well-suited for Agile management:
- Chrome browser extensions: Such extensions can add specific features to Trello. For example, they can create functionality for creating task points, tracking time spent on tasks, generating Gantt charts, and exporting cards.
- Power-Ups: There’s a wide variety of powerful integrations available for Trello, including integrations with GitHub. Everything from adding calendar views, to including custom fields that connect to Google Drive documents. The Power-Ups are great for your developers, who may be feeling a bit left out.
- Agile features: Trello Agile documentation, examples, blog postings, and use cases demonstrate why Trello is an excellent platform for Agile management.
- It can be synced to GitHub: If you want to integrate Trello’s Agile features to your source control, you can sync your Trello project boards to GitHub using Unito. What will this do? Any information on your Trello board (such as tasks, statuses, deadlines, and comments) that is relevant to your developers, will be automatically transferred between your Trello board and your GitHub project. Moreover, you can filter exactly what information gets transferred and what doesn’t, ensuring your developers aren’t bombarded with irrelevant issues. Syncing Trello to Github ensures developers and the rest of your cross-functional team are on the same page.
Whether you go with GitHub, ZenHub, or Trello, tailoring the software that structures your Agile project is easily the most important task you’ll face. Getting that right ensures the software fits your team instead of forcing your team to fit the software — which is essential for developer buy-in
What are your top ways of using agile methodology to work with developers? Let us know in the comments or tweet us at @unitoio!
Ready to sync GitHub to Trello using Unito?