Thursday, October 18, 2012

SCRUMing my Thesis... Lets go!

My brain melted about 20 minutes ago, so I figured it was time for a post.

I had been contemplating it for a while, but I finally decided that this is what I needed to do:
SCRUM my thesis.

For those of you who dont know SCRUM, Scrum is a process used for agile software development. A project makes progress via a series of iterations known as Sprints, which are generally 2-4 weeks long. The planning of a spring is essential. SCRUM lends itself well to projects with rapidly changing or highly emergent requirements.

SCRUM is generally used in software development. Considering that I am a Computer Scientist, I figured this might even apply to a Scientific Thesis - particularly one in computer science where I have to code as well.

The main activities of SCRUM are as follows:

  1. A Sprint Product Meeting - list of tasks are created to be performed during the sprint.
  2. Daily Scrum Meeting: Every day, a daily SCRUM meeting is attended by all team members, for maximum 15 minutes - everybody stands. Members share what was worked on the prior day, what will be worked on today and any  obstacles that are decreasing progress. 
  3. Sprint review - performed at the end of a Scrum sprint. Functionality is demonstrated. The goal is to get feedback from the product owner. 
Those are the basics. Obviously there are some GLARING problems with this model in terms of thesis writing. In most (all) cases, we do not get to see our supervisor every day for 15 minutes in the morning.
In fact, often we don't get to see them every 2-4 weeks (although I try make a point of doing so, if at all possible). 

However, the main idea is quite useful. The sprint product meeting where one sits with oneself, and sets up a list of thesis related tasks to be performed during the sprint. If one can sit with one's supervisor at the beginning of each SCRUM, then how beneficial would that be?

Before I thought about using SCRUM, I would create lists too... all the time. But I found I either end up creating lists for too small an amount of time (multiple detailed things I needed to do in an hour) or a list for too large an amount of time ( like for the entire period of my thesis, where I end up wandering lost between items in the list). The SCRUM amount is for 2 - 4 weeks. Just the perfect amount of time. 

The daily scrum meeting is more like a sanity check for the thesis writer: "Yes, I did manage to do something constructive today - this is what it was. Today I will make more progress on this and these were the issues hindering me". I don't know about you, but I generally really really need a daily sanity check. 

As for the Sprint review - this is the little "reward" session where you can demonstrate to yourself what you have achieved during the sprint. And if possible, running what you have done by your supervisor at this point, WOULD be a useful feedback session. 

SCRUM has 2 important artifacts that are both relevant to thesis writing: 
- scrum product backlog - the complete list of functionality that remains to be added to the product (thesis)
- sprint backlog - a to do list for the sprint. 
- the burndown chart - shows the amount of work remaining

Luckily for me, my supervisor has agreed to have monthly group Thesis sessions (All his MSc and Phd students in one room). This will be the perforect opportunity for my Sprint product meeting and Sprint Review. 

The other awesome part about scrum are the useful tools that exist for the methodology. My favorite being the Kanban board. 


The kan ban board is a board with a few sections and some sticky notes. Each task is written down on a sticky note, including a duration, owner, deadline etc. The colours of the sticky notes can be related to priority of the job or the owner of the job. It has sections for tasks to be done, tasks that are in progress and tasks that are already done. Sounds brainless doesn't it? Turns out, the kanban board has become super popular in a large amount of domains where productivity is required. 

What is really fun, is that there exist free online versions, my favourite being Trello. Try it out. It has been a productivity saver for me. No more annoying lists, that get lost and spilt on. No sticky notes that fall off the screen or wall. And so far, it really seems to be helping my thesis.

This week I had an unofficial run of my first sprint. From next week I will set up a longer sprint and inform my supervisor what I am doing. I will be posting again about my progress. :)

I know this is a rushed post, but I wanted to get the jist of it on paper. I will update and go into more details soon. 
 







3 comments:

  1. scrums a great way to manage a project. especially when u're in a group.

    what exactly are you working on for swarm robotics? sounds kinda intriguing.

    did my first phd in AI. doing a 2nd one now in engineering iA

    maybe we could collaborate on the swarm thingy and see whether scrum would work. :)

    ReplyDelete
    Replies
    1. That is cool :) What sphere of AI?

      Unfortunately South Africa is pretty nightmarish when it comes to collaborating on papers so that sadly wont be possible for the moment. This one is for my MSc (for some reason South African MSc's are about as big as PHDs overseas).

      Im working on a specific type of foraging problem in Swarm Robotics with the hope of applying it to mining :)

      If one day I am allowed to collaborate on a project, then it's on!

      Delete
  2. i did my phd in something related to text mining.

    lol i wasnt implying on writing a paper for collaboration.
    juz for fun.

    ReplyDelete