Tuesday, November 29, 2011

Teamwork time!

Up until now we've been able to do all of our projects in this class individually, not needing to compromise or change our style so that it fits with others, being able to do things at our own pace.  However, with this new project we were given, we no longer had those luxuries of independence.  Although eager and excited to get the project done at first, this would turn out to be one of the most stressful projects of the semester, at least for myself.

Energy. Whether we're using our computers, watching tv, or even studying in our room with the lights on, we use a lot of it everyday.  Multiply that amount by the number of people living in a dormitory, and the number jumps up higher. Multiply that number by the amount of dormitories in a university, and it becomes enormous. Getting a glimpse of energy-usage within UH was the objective of this project, more specifically the power-usage of the freshman towers.

Specifics involve writing a command-prompt that would take user input querying one of four commands and returning pertinent information upon submission. The four commands we were to implement were:

  • current-power: Returns the current power of the associated tower/lounge
  • daily-energy: returns the amount of power used by a tower/lounge on a certain day
  • energy-since: returns the total amount of power used by a tower/lounge since a certain day
  • rank-towers: ranks towers by energy usage over a certain period of time
Having done the wattdepot katas before this project, these all seemed rather simple to implement. On our own these would probably take no more than a week to figure out. But that wasn't the case this time around, as we had to coordinate with each other and split up the work accordingly.

I was paired up with Micah and Jesse, two people who I previously worked with in earlier classes but had not really interacted with beyond that.  Though thinking back now, even throughout this whole project we didn't really communicate outside of a colleage/group-member capacity, although it was refreshing to bounce ideas off one another and come up with different ways to approach this project, as opposed to going at it alone.

A major resource in group projects that we had sort-of dabbled in earlier but not fully utilized is google project hosting, a sort of hub for contributors to download and update their project. A new approach that we took to getting the work done was something called issue driven project management, where the project is split into issues, which are then divided up among the group members to address. Upon gradual completion of issues, the group member would commit their build to the website, and update the page where the issues were so as to let the whole group know their progress.

Our code website can be found here: http://code.google.com/p/hale-aloha-cli-kmj/

So after getting all the groundwork done, creating stub classes and setting up our project on google project hosting and connecting it to jenkins which would check our builds, we set off eager to do our parts. Unfortunately, nothing really materialized in the first six days of the project due to various circumstances (homework,  exams, procrastination, etc.) Our first in-progress review came one unsuspecting Tuesday, and when we got our evaluations back, they were simply-put, abysmal.  Six days and hardly anything to show for it.  Though judging by the professor's decision to later on nix the scores, there must have been a lot of other groups who hadn't made much progress.  Though after that scare we resolved to work much harder than earlier.

Coming up to the deadline we came across some unforseen roadblocks, the most important one being that the wattdepot-server was down. Without that, we were pretty much dead in the water, as we couldn't test any of our code and had no way of knowing if anything we were writing would work. Fortunately, our deadline was pushed back one week and we had some breathing room to further work on the code.

Up until the submission there were a couple of issues, two of which come to mind. The first one being that me, usually going through projects at my own pace, sort of threw off the timing of the group, meaning that it was hard to move on without my pieces of the project. This resulted in a loss of productivity and me staying up the entire night before the deadline in order to get anything done. The second issue, which is probably a by-product of the first, is that we had some compatibility issues with our code when we combined them. I was responsible for the commandParser, the thing that checks user-input and then invokes the commands, but since we all had different requirements for our commands, it took some working-around in order to resolve. But after a long-night of coding and looking things up online, it all was finally resolved.

So we come to the end of our first group project, and I must say that I'm exhausted. Though as much as I'd like to think that it's done and finished, we've only reached version 1.0 (or maybe not even that far, depending on how the reviews turn out :/), and it looks like there's still a ways to go.  Though coming this far having worked in a team, I think resulted in a lot more valuable experience gained than if I had gone at it alone.

edit: forgot to add link to hosting website, added link

No comments:

Post a Comment