Life etc

July 26th, 2010


Finally have my laptop working again, which is especially useful given that I moved my PC to my new flat but am still staying elsewhere. I almost considered posting an update from an ipod touch but after finding a dozen or so typos in the first sentence alone I figured I was best just giving up until I had a proper keyboard to use.

Anyway, here’s a brief update just to list a few things I’ve been up to since I last posted:

  • I graduated from Abertay! With first class honours! Wooh!
  • I came second in Aardvark Swift’s Search for a Star competition, following a day trip to Brighton. From Dundee. By Train. The competition was a really great learning experience (the three rounds involved a programming test, modifying and expanding upon an existing game with a few added bugs and then an interview) even if the travelling itself wasn’t so much fun.
  • I’m currently an intern at Tag Games over the summer, which hopefully explains both how I’ve coped without my laptop and why I haven’t had much time to blog.

So, there you have it. Expect more posts, but not necessarily right away.

Honours Project Commencement

September 24th, 2009


1189018851_33abd5066bAs many of you will realise, I am now entering my fourth year of university and a large part of this involves completing a substantial individual project. Since we have to use a blog to keep track of this (on top of handwritten notes, and the personal wiki I am coming to rely on) and share our progress, I’m going to be keeping my notes in a separate category here.

Depending upon how regular and how rough my updates become, I may hide these from my main blog at a later date. Either way, my honours project posts will always be available on their own Here.

As ever, any advice and feedback is more than welcome :)

Photo thanks to Lin Pernille.

Making Progress (And Not Just Talking About It)

March 6th, 2009


At the beginning of this year, we finally started implementing our design for a group project game. Considering that we were meant to be working around 40 hours per week and have 4 seperate modules for this term, it seemed fair to allocate 10 hours per programmer of development work per week (considerably more than the 20 hour total development time our producer originally planned in order to “make his charts look pretty”, but that’s neither here nor there).

Looking at our burndowns, table and charts, we really are doing 10 hours of development. At least. Plus research. Plus fitting in time between classes or over lunch. Plus helping other people over their shoulder or on MSN.

…Plus meetings.

We normally have two meetings per week – a whole group meeting, which normally take around an hour although it can easily last longer, and a sprint retrospective followed almost immediately after by a sprint planning meeting, which often lasts three hours and sometimes as long as four.

That’s right,

1/3rd of our weekly project time is spent purely sitting in meetings.

Does that sound as horrific to you as it does to me?

My first thought was “What can we cut out to shorten this time?” and after some consideration, there are a few ways we might be able to limit our time to some extent, but there’s nothing that would really make a significant impact. We meet with the whole group once a week to discuss progress with the artists, and to give feedback to each other about the direction of the game. It might be possible that only one programmer could attend this but there are decisions they couldn’t make without deferring to the other developers – going back and forth would probably take just as much time. Compared to the length of our SCRUM related meetings, this is also a fairly small consideration anyway.

As inexperienced developers working on our first group project, we’re learning a lot from each sprint, and are constantly making changes (hopefully improvements!) to the way we work. Whilst developing a finished game is important to us, this is above all a learning process and cutting down on our sprint retrospectives would be cutting down on the time we have to reflect as a group – clearly not something we’d be willing to sacrifice lightly. Similarly, planning our next sprint take a fairly fixed amount of time. We need to select the stories we’re working on, split them into tasks and get estimates. We also take time at this meeting to discuss roadblocks we’re facing, technical changes and get help with solutions since we have far more exerperienced developers around to help us. This would take up time no matter when we did it – over MSN, over lunch, when we’re meant to be programming… it’s not something we could easily eliminate.

So maybe all the time we’re spending reflecting on our progress *is* necessary. Maybe the real issue is that formal group development just doesn’t scale down all that well. I mean, the amount of time we’re spending on this project seems a lot when we’re also working on other coursework and modules, but what’s 10-15 hours in the real world? Compared to working full time on a project, that’s next to nothing. Even dedicating 40 hours a week to a project though, it would be hard to imagine our meetings lasting a whole lot longer – the overhead appears to be almost constant.

So maybe the problem is with our implementation of SCRUM, maybe it’s a problem with SCRUM in general and maybe it applies to almost any development methodology – either way, for a small project the amount of time we spend in meetings per week is unnacceptable.

So for the sake of future students embarking on these projects, can anyone offer some suggestions? Recommend an alternative development method perhaps? Help programmers to spend as much of their time as possible on making progress, and not just talking about it?

Knowing what you don’t know

February 6th, 2009


When you realise there’s a gap in your knowledge, it’s normally not hard to fill it – do some reading, perform an experiment, work out the answer. The tricky part is finding what you’re missing out on in the first place.

It’s not hard to pick up a C++ manual or a book on programming style and read through from start to finish, and each time I do I learn something new and find more areas I need to look at in more depth. However, I’m only human, with a certain set of knowledge and skills. I wonder about certain topics and will approach a subject in a certain way, and whilst it may feel like I’ve digested all I can there might really still be a lot to cover, other questions to ask.

This is one of the reasons why assisting in first year programming labs has been hugely beneficial to me this year. Some questions are to do with subjects I know in great depth, and can give a clear, succinct explanation. Some questions are specific and technical – either I know a piece of syntax or how something functions, or I find out.

The best questions though are of the broad “How does this work?” or “Why does this work in this way?” type. Questions from someone who looks at programming in a completely different way from me. It’s this sort of question, where there isn’t necessarily a right answer or if there is I sometimes won’t know it, that really opens up areas I hadn’t considered before and highlights gaps in my knowledge.

If Something Doesn’t Scare You, It Probably Isn’t Worth Doing

September 19th, 2008


University starts back on Monday, and as usual for the start of a new term I’m a little anxious. I don’t know how well I’ll cope with the new topics we’ll cover, whether I’ll be able to deal with the workload and if I’ll get on with my classmates working as part of a group for the first time. There are a lot of unknowns, a lot to be worried about.
 
If you look back to when I was in high school, starting a new term way pretty routine. I knew all the teachers well already, the topics covered in one year were never a huge leap from the last, and there was never that much pressure to do well. Nothing to worry about.
 
However, that meant school was never exciting either. There was never the feeling of pride about a large piece of finished coursework. No joy that I’d actually got my head around something which I found difficult. It was hard to build up interest in studying the topics we were being taught, let alone going beyond that to investigate areas I particularly enjoyed.
 
If fact, if you look back at some of the best things I’ve ever done, you see one common theme: they’ve all been terrifying.
 
For me, fear isn’t a bad thing. In fact, if I’m not scared by something, chances are I wont do well at it. Being afraid is a reassurance that I’m doing something difficult, and that it’s worth trying to succeed.