If you’re a professional developer, and your team isn’t using a ticket system, you’re probably familiar with card boards. You may even be a Trello wizard–I personally have spent more time in Microsoft’s Team Foundation (now called Azure DevOps), but it’s the same idea. A way to track what needs to be done and how long it’s taking.
Since this is a (relatively) simple one-off project, I just threw together a Trello board. Here’s the 800-mile-view:
My backlog is the total sum of what I want to get done/cover in my post series. I have code items (labeled in orange), infrastructure items (labeled in green), and posts to write (labeled in yellow). I have them roughly grouped in order by things I want to do for a specific post.
Current Effort is what might be called a sprint–it’s the group of cards I think are obtainable to get done in the next week or two. To continue my trip analogy this is just the next leg of the trip–maybe how much ground I want to cover before stopping for dinner. It would be the point where I would feel comfortable putting in a pull request, a point where if need be I could say “I have to put this aside for three months” and be able to pick it up as a complete module of the larger project. The acceptance criteria for each “effort” is to have one or more blog posts scheduled.
In Prog is just that–in progress. Stuff that I’m still working on, since I anticipate doing little bits throughout the week.
Done should be another self-explanatory item. It’s all cards I’ve completed–not just during one effort, but over the course of the whole project.
My first step was to fill the backlog. Everything I needed. For instance, I knew I needed a simple code library to provide some sort of functionality. I also knew there’d need to be some sort of web project that can display that functionality…but I wouldn’t need to link them together yet in order to write a blog post about them, or to get the solution to build in a CI system like Travis.
I decided my first effort would look like this:
- Write about this plan, and my high-level thoughts on planning solo projects
- Create the Trello board to map the whole thing
- Write about the Trello board and my planning process
- Setup a simple code library I could test in a CI system
- Setup a simple web project just to have it ready
- Write about the code skeleton
My second effort will focus on:
- Setup Travis-CI to build and test my solution
- Write about setting up Travis
- Write some tests against the web project’s UI
- Get them to run in Travis
- Write a post about UI tests
- Wire the web project to the code library
- Update UI tests to reflect the dynamic logic
- Write about wiring up the two
After that, I’m not sure exactly. Logically, deploying the program is the next step, but I’m not going to think that far ahead. Sticking with the road trip mentality, I know where I’m going tonight, I know roughly where I’m going to be the night after that…anything further isn’t super useful to plot in detail. I just don’t know what will happen.
Honestly, I’m already second guessing how big that second effort looks. I’m a big fan of bite size pieces. But, since I don’t have a better idea and all of that is grouped logically together, I’m just going to roll with it until a better idea presents itself.
I’ll repeat this process till I get all the backlog cleared. If something needs to get added to the backlog, or needs to go back to the backlog, I’ll do it. If I learn after the next effort that 3 posts is way too much to try and fit into a week, I’ll trim the next one to account for it.
It feels pretty Agile to me, but as a millennial I hate to put labels on things, y’know…