Saturday, February 28, 2009

Starter Events: The Ride of a Lifetime

This week we, the class, were entrusted with an extension to finish implementing the events of the starting events for the Devcathlon.  There are ten different starter events; I was chose to create the “Everyone Builds” event.  

Event Specifications:

Summary: Give points for everyone building.

PAR: Wakeup once per day. Determine if everyone built at least once during that day, and award 10 points if everyone built. Award 0 points if at least one person built, and deduct -10 points if no one built.

 

Decay/Incentives: Award 10 bonus points for 7 straight days with everyone building every day.

 

This event seemed easy to do when I first read about it, to be honest I took this assignment very lightly.  I procrastinated at first; thinking, from the previous assignment, since I read most of the documentation and understood it.  So when I started to implement the event, I was shocked.  It covered things I never read about.  I was at a loss, but I couldn’t give up.  Unfortunately, on the due date, I could not complete the production of the event; then a miracle happened.  Our professor, seeing that a majority of the class did not complete the other events, extended the dead line. 

With an extended dead line, it was time to redeem myself.  After taking care of some personal obligations; I charged at the assignment, as if it was a 10 ft. wave without hesitation.  Even though with some helpful notes, provided by our professor, this wave was still pounding the life out of me.  With some support from my other peers, Daniel and John Ly, the wave didn’t seem so big. 


Wipe out

One part of the wave that kept pulling me under, was finding data for every member in the team.  It took sometime, reading of the documentation, and helping from others; but I eventually over came that problem.  Then when I though I was in the clear, and BOOM! A huge error occurred, and it seemed a lot of people in the class were getting the same problem.  I isolated the problem, and it was when I tried to pull data from a day ago.  Later our professor addressed the problem and created away to grab data from a day ago, without getting the error.  (All the events that occurred during the development)

 

Getting a Lifesaver

Once that whole error issue was out of the way, all I had to do was ride that wave back to shore. Following the resolution, on my testing of my functions to decide whether to give bonus points, just regular points, or no points at all failed.  After long hours of thinking, it finally came to me at 4 AM; talk about a wake up call.  I noticed when a user or users produces data in day it is recorded; and being able to get access to the recorded data, I was able to find the amount of user or users.  Implementing a way to get that data, all my test cases started worked without any failures or errors.


 Conclusion

One thing I’m really upset about, is that I took this event lightly.  I know I could have finished this implementation days before the extended date, instead of hours; but like a friend of mine told me, “Learning a complex new thing takes time, so approach it prepared”.  Remembering that, like my wave analogy, I shouldn’t have procrastinated and rush into the assignment untrained.   Also I’m not to sure of the consistency of my way of getting the number of users for the day idea, but I’ll be sure to look further into it over the upcoming weekend.

No comments: