Sunday, August 21, 2011

to lead, to excel, to overcome

Oops I'm late. Better late than never I guess.

To be honest, I have went through various lessons on software engineering before, whether through actual lectures, or through friends I have worked with in other modules, therefore I have heard terms like 'managing complexity' and 'modularity' many times, so nothing much was new. Nevertheless, it was still good to get reminded on the various principles again.

My greatest takeaway of the week, however, was not from the lecture, but from my project assignment. Having been at work on the Facebook application for the past week, I think those principles are easier said than done.

In my team, apparently I am the only one with some experience in software engineering (CS2103 and CS3215) and web programming (CVWO and CS2102), so I had the inevitable task of taking our idea and running it through the software development process, aka the programming lead.

Well, the problem is, I have never done that before.

In my past projects, I have always been a 'code monkey', or someone who accepts tasks handed down by leaders, and completes them. In my past projects I had the good fortune of working with good leaders; the most I had to do was to offer some opinions. This time round, things are a little different, for I have to be the one decomposing the project into tasks and distributing them to my teammates. And looking back, I don't think I have done a good job.

Good leaders should be able to dissect the project clearly into small precise tasks, which was something I had problems with. Due to the dynamic nature of the web, and the fact that we are creating a game, it was difficult for me to dissect it while in the early stages of planning. It was only until Ying Hui came up with the first UI designs when the lines became clearer to draw.

Good leaders are also able to ensure that teams stick to schedules closely, helping their teammates remove obstacles they meet along the way. While our team managed to meet most of our projected milestones, we still found ourselves working right up till the last minutes. Not to mention, many times I found myself having problems solving my own problems, let alone helping my teammates solve theirs.

I think many others would have done a better job than me. As a consolation, I guess my suggestion of a back end API worked out well.

All these led me to conclude that a leader can make or break a team project. Have a good leader, and things will work out well. Have a bad leader, and it doesn't matter if a team has the world's most brilliant idea, everything will fail spectacularly.

经一事,长一智。

In other news, a long time good friend of mine left for South Korea today for his Student Exchange Program, the first out of at least five others who are leaving this semester to various countries, although I have two friends who have already left for a one year long NOC stint.

I am never particularly fond of sending close friends off at the airport, because while I know I should feel happy for them, I can't help but feel a little sad that I will not be seeing them around for at least four months. Especially this good friend because we have known each other for ten years.

1 comment:

  1. Having been at work on the Facebook application for the past week, I think those principles are easier said than done.

    Excellent. You are learning the right lessons. :-)

    ReplyDelete