Pacing and Organizing Side Projects with Agile

Pacing and Organizing Side Projects with Agile

Written by WWC Team

Tech Lifestyle

Ever since I graduated from UC Berkeley almost two years ago and started working at Braze as a software engineer, I’ve had more time to work on side projects of my own. But a lot of my old side projects have suffered the same fate: abandoned and unfinished. After losing motivation and interest, I decided to attack them in an Agile way. So far I’ve brought one project back to life. Here’s how.

The Burnout

All I remember from January to March 2018 is my side project, Critique Connect, a website that allows aspiring writers and beta readers to find each other. On weeknights and weekends, I’d go to hotel lobbies and quirky cafés to work on it, go home, and work on it some more until 3 a.m. I barely saw my friends. I dreamt about the buttons on my website.

(How I turned up on the weekends)

I was 80% done with the minimum viable product (MVP). I was sure I’d finish it by May. And then…

I burned out. I didn’t work on Critique Connect for a few months. Just when I started to pick it up again, my boyfriend at the time broke up with me and I threw myself into socializing with friends instead.

(Guess when my breakup happened)

Fast-forward to February 2019, when I remembered…oh, my God. I had goals. I wanted to learn Hindi. I wanted to edit videos. Wait, whatever happened to Critique Connect!??

So, shortly after my breakup, the Braze product team had an Agile coach come in to help us transition from waterfall project management, poorly disguised as Agile, to something actually more Agile (more about that here). It’s been half a year and the Agile methodology has been beneficial for my team at work. Inspired by this, I decided to apply Agile principles to my own personal projects and goals. 

The Board

This was how I kept track of my work last year:

Big yikes. 

Moving forward, I did not want to use a physical board because 1) it takes up too much space, 2) under my care it would get disorganized really quick, and 3) it’s not exactly portable. 

I wanted to use Jira, which is what we use at Braze—but it wasn’t free for personal use. So I ended up doing some research on alternatives and settled on using Trello. Here’s why:

Stories

I wanted a way to represent an Agile story, which would just be a small chunk of work that I could track. In Trello I can:

  • Represent stories on cards

  • Add labels like “bug” to the cards

  • Add checklists (almost like acceptance criteria) 

  • Add comments on my progress

  • Add pictures of design sketches

Here are some of my stories below!

 

Epics

I wanted a way to organize my stories into epics that would align with each of my personal projects. In Trello, I can make separate boards for each project with different backgrounds to distinguish them from each other.

To Do, Doing, Done

I didn’t want a simple To Do list application ford just checking off the tasks I needed to complete that day. I wanted swimlanes where I could move my stories to columns: To Do, Doing, and Done. This was important so I could remember what needed to be done, track my progress, and derive motivation from what I had achieved so far. 

I prioritize my To Do list by what’s most urgent and impactful as a way to help me choose what’s most important to work on. I put a limit on how many stories I can have in Doing—otherwise it turns into another To Do list. When I move cards into Done, I like to add them to the top of the list and not the bottom so that it’s easier to see the Done column changing and feel like I’ve been accomplishing things.

Kanban

I was confused about the differences between Agile, Scrum, and Kanban for a long time, often using the three terms interchangeably. I’ve learned that Agile is a methodology whereas Scrum and Kanban are frameworks that define how to carry out Agile. The best analogy I heard for this is that Agile is similar to a diet, like “calories in, calories out,” and Scrum and Kanban are like recipes that help you achieve this. 

While my team at Braze practices more of a Scrum-like framework, I’ve found that for personal work Kanban suits my needs much better. Here’s why:

Continuous flow

With Kanban, there are no fixed-length sprints. It’s always ongoing. This helps me not feel like I’m assigning “homework” or hard deadlines to myself. Because if I missed those deadlines, I would be discouraged and stop trying.

Continuous backlog refinement

Whenever I realize or remember I need to do something, I add a new card to the To Do column and prioritize it right then. This helps my mind not worry about keeping track of all the little things and focus more on what I’m currently working on.

Continuous planning

When I have time to work on something, I just look through my overview of boards—what I’m currently doing and what I have to do—and choose whatever I feel like at that moment. As long as I’m making progress on something (even by procrastinating on Critique Connect with other personal projects), I’m happy. 

Giving myself options prevents me from burnout by diversifying my work and keeping things interesting. While I do take into account how a To Do column is prioritized, I allow myself to pull whatever I feel like working on from that column. I don’t want to look at the top priority story, be like, nah I don’t feel like doing that, and as a result keep putting it off and make no progress on anything at all. 

Continuous retrospectives

I constantly reflect on what has gone well so far and what could be done better—and regularly iterate as a result. So the moment I identify that something isn’t working, I try a new solution. For instance, if I see a story that’s been in the Doing column for a while and I feel like I have been working on it but it hasn’t moved to Done yet, I throw a checklist on the story and mark off what I’ve done so far. Or I break it up into smaller cards and move some of those to Done. Now I can see that I have been doing things and this motivates me to pursue more advancements. Making incremental improvements to my workflow enables me to further my progress rather than hinder it.

As a result, Kanban suits me way better. But I believe this is because I’m working on my personal projects and goals solo, and can pivot directions at any moment because I’m the Scrum master, product owner, and development team all in one. I don’t have to consult with anyone else. Working in a team with others, I totally see the benefits of a Scrum framework wherein communication, sharing knowledge, and being on the same page is key in large projects with multiple stakeholders. 

Conclusion

In the beginning of this journey, I asked myself on Instagram:

I can now say that a month later Agile has definitely increased my productivity. Am I working as fast as I was last year? No. And that’s okay. Because every day I look at my board and if I have time, I make progress on something. I reward and motivate myself by progress, any progress, no matter how small or incremental. And I’m slowly getting there.

I know my methods aren’t perfect, but I’ll keep learning and improving—and I’m excited to see where I’ll be a year from now. As for Critique Connect, I’m happy to say that the MVP is now finished! My friends are beta-testing it before I launch it to the general public. Even if no one ends up using Critique Connect, it feels good to complete a side project.

TLDR;

Chunk up your personal projects into small, consumable pieces of work. Have a way to concretely visualize your progress. Allow yourself to work on whatever you feel like as long as it’s furthering your goals and moving those cards between swimlanes. Move at a steady, sustainable pace. Don’t be afraid to change direction. Iterate constantly.