Organizing all the things with Waffle.io, Trello, and maybe some bounties

Cervator

Org Co-Founder & Project Lead
Contributor
Design
Logistics
SpecOps
So one of the side things I've been playing with over the last few month is waffle.io and Trello. Been taking lots longer than expected thanks to lack of time, but that has just allowed me to get through a few designs first.

Goal: Make more sense of issue trackers on GitHub, mainly modules since there can be so many of them (best example: Throughout the Ages) + allow for easier brainstorming for "scoped" projects like "Make Light & Shadow playable"

This is not intended to be a standard for everything, just where it would make sense with the extra structure. And that's if anybody would find it useful, I might just be a nut looking for neat tools all day every day!

Waffle.io

This in essence allows you to make a kanban board out of multiple Github issue trackers. And you can have different boards that include some of the same module trackers. This is neat as our larger module series do overlap like that. So here are some examples:
If you check all three you'll see an issue from the Workstation repo, since it is used in both TtA and .. JS I guess? If you change the issue in any one of those three (you can comment and other stuff just like on GitHub) it'll reflect both on GitHub and across all three Waffles

Additionally you can submit new issues from there that go to the "root" repo for that Waffle, which seems like a good way to submit issues for users that aren't sure where they go, but can identify the module series. The "Ready" column also offers a counter badge for our readmes, for instance TtA readme and JS readme. I picked the columns with the following in mind:
  • Intake - new issues go here. Sort of an initial review column, to check out whether it is a valid issue
  • Ready - effectively the backlog of issues we've "accepted" which should be almost everything
    • This drives a counter ideal for new contributors which is also a link to the Waffle tracker. Not sure how often it updates though
  • Next - a way to prioritize a few issues we consider important or know we want to work on next
  • In Progress - somebody is working on it. Some ways to name a branch or reference via PR will automatically move an issue there (and even assign people). PRs themselves will start there.
  • Done - issues that have been completed in the last week (after which they'll disappear)
Tweaking at all that might be something few need or care about, but it should help me stay on top of things if nothing else. As you move cards around the matching issue in GitHub gets updated with appropriate labels. Automated actions (like setting PRs to "In Progress") get tagged by @Gooey

Waffle.io isn't perfect - it was built by a team of interns at Rally, and while most the stuff it does is very smooth there are some obvious improvements lacking and you can get stuck on annoying things. For instance one of the big delays was how I set it up at first with my user account, meaning Waffle tagged stuff on GitHub via me - which looked kinda funny. Trying to switch it to GooeyHub proved tricky as the GitHub hooks kept recreating with cached details. Had to revoke access to my account for it to finally reset.

Speaking of - I don't think they've put in the effort to smartly limit the access requested from your GitHub account (when you do stuff in Waffle it synchronizes to GitHub via your user). That looks kinda scary. But GitHub itself seems to trust them decently enough to mention them, so that's something. Maybe an open source version will pop up we can switch to sometime. Easy enough since the main backing data is still the issue trackers on GitHub

Trello

Before finding Waffle.io I was looking at Trello to somehow do stuff cross-repo for big things like TtA. Even wrote up some specifications for integration with GitHub. Now Waffle removes the need for that work, yay!

There may still be a place there for brainstorming and organizing stuff that isn't yet ready for an issue tracker. I put together a few examples:
An overall goal was to support added structure if needed. A module is born with just a repo, its tracker, and maybe a thread in the module forum. If it is a dependency of something bigger it could just have a note in there. If it grows it can get its own thread, its own Trello, its own Waffle, whatever might help organize better. Up to whomever is working on it. Ties somewhat to the forum reorganization, which naturally I still haven't even finished round one for, sigh :)

Pull requests and bounties

I ran across a GitHub blog entry on pushing status updates to PRs and issues, which was part reason I went on a quest to integrate all the things. Thanks primarily to @msteiger we finally have the Jenkins Pull Request Builder plugin tested, which includes pushing a status for the build testing the PR back to GitHub. It is enabled for the Nanoware engine repo with an example here. For that we needed to fix all the unit tests real quick and I'm part way through preparing dynamic builder droplets for Jenkins to handle the extra load when it goes lives.

There is also a clahub thing that checks whether the author for a PR has signed a Contributor License Agreement. Which seems an easier and less messy thing than doing that "Signed by so-and-so" in every commit message that is in use in some places. Not going to worry about that for a while - bigger topic we still need to sort out sometime. But it seemed a cool find.

Finally I ran into Bountysource, which also has a decorator for GitHub issues and Waffle cards. Seems fairly popular with big fish like GitHub themselves, Mozilla, IBM, and so on. We've talked about bounties from time to time and the couple hundred euros or so we have sitting around are pretty dusty at this point. Question has usually been how to review and accept solutions, but an interesting option on Bountysource seems to be that anybody can set a bounty and then they get to OK whether a fix is good enough. Then Bountysource takes care of the extra details.

I can take on the duty of throwing a few token bounties around on a few of our interesting issues (and invalidate myself from ever claiming any just to be proper) and accept if complete. If one of us fixes the issue you can chose to simply "roll forward" the bounty onto something else. No fees at that point, only if somebody wants to withdraw money. At that point it is 10% which seems a tad high, but no fees elsewhere and it seems like the site provides a decent service. In comparison something like Freedomsponsors only takes 3% but does less of the work and doesn't cover any other fees you might incur.

Amusingly we could get to the top of the "available bounties" list for games pretty easily, even though the top has $4,076 in outstanding bounties. Might help with some visibility, along with the extra decoration on GitHub issues, and the "Ready" counter from Waffle. Thoughts?

They also have a little browser extension that's attempting to add a little universal "like" or "vote" button on popular issue trackers like GitHub.

All in all this whole thread is about improving visibility - organize better, integrate better, attract people better, and so on. Would appreciate feedback!
 

msteiger

Active Member
Contributor
World
Architecture
Logistics
I really like the idea of having a Kanban board for a group of modules such as TtA. Good job setting up waffle.io @Cervator !
I'm also really looking to seeing the PR Builder plugin in action on the main projects!

The bounty thing looks like a double-edged sword to me. On the one hand, it could attract new developers in particular on those areas where we need them (e.g. 3D magicians), but on the other hand it could keep folks from working on unpaid issues such as bug fixes.

One option would be to restrict bounties on some specific contribution types such as in-game art, 3d models and music assets.
 

Cervator

Org Co-Founder & Project Lead
Contributor
Design
Logistics
SpecOps
Yeah bounties are always going to have pros and cons. But honestly there isn't going to be any substantial money in it for a loooong time, unless somebody rich gets bored and starts dropping big bounties everywhere :)

I'm expecting I might put a handful of $5 bounties on things just as a token, a tiny little wedge of cheese to maybe lure in some new mice. Nobody is going to switch to a bounty hunting career just out of our issue tracker.

What I like about Bountysource is that it can be used by anybody to place a bounty without us getting involved beyond accepting a PR that completes something. So if somebody really wants more shiny 3D effects they can go nuts there. Us using our tiny pile of copper coins on specific contribution types isn't going to drain the ocean of attention for non-bounty bearing issues :)

On top of that it is kinda clever you can roll the bounties onwards inside the system at no added cost. So even if we fix some things ourselves we can just opt to move the bounty somewhere else.
 

Esereja

Active Member
Contributor
I'd wave green flag for bounties. I don't think we would start doing only bounties as most of works on area on which we are interested. And if all started doing only bounties, bounties would run out and then everything would go like normally.

And wafle.io looks good, maybe i need to learn what it does
 
Top