Tuesday, May 12, 2009

Always room for Improvements and New Lessons

The journey of the Devcathlon Team, the ICS 414 class, has come to an end. Through out the entire semester, the team has been working on a project called the Devcathlon Developer Game. The Devcathlon Game is a game, for developers, based on the sensors used in Hackystat. We have built this game project from the ground up; from researching on what makes a good game, to implementing a working version for all to play. All our research and hard work has finally paid off.


A New Set of Eyes

After finalizing a beta version of the game our professor, Professor Johnson, uploaded it onto a working server for further testing. Having the game run on the server for a few days; I asked my co-workers, Joy Nishida and Bret Ikehara. Both co-workers work at Star Degree as web designers, so they’re input would be good for the game project. Following they’re viewing of the game and me explaining the purpose of the game, they gave me some really good input. Here is a list of things they thought might help improve the game and what I caught what might not be working properly:


  • On the match panel for creating a match and managing a match, it would help if the name of the matches where bold or in a different color text.

  • The match panel in Creating a Match and Match Managing section displays all matches; using pagination to minimize the size of the list, so the user does not have to scroll up and down the screen.

  • It seems that the most developer points section in the Hall of Fame is not working properly.

  • The most team wins section in the Hall of Fame is not working properly; it is displaying all the teams in a match and showing every match in the game.

  • The events in creating and managing a match have not descriptions for them.

  • The match panel in the Manage section should display only matches that the team the user is owner of, is participating in.

  • The win to lose is recording a match where both teams have negative score as loses, but should record the team with the least negative score as a win.

  • When being invited to participate in a match, it would help when the user logs in to notify that user there is an invite for a match; such as how the team invite works.



After reviewing what my co-workers had to say about the game and from what I noticed in the version running on the server; that there is still much more room for improvement. Some of the problems were solved easily, such as making match names stand out; but the other problems, with such so little time left, seemed to far to be fixed. It’s a good thing that this is an open source project, so that other programmer can maybe improve the game or implement the fixes I mentioned earlier.


Obtaining New Knowledge

Working on this project, first as a team leader then later as the project leader, has been a very good experience. Not only did I get to better understanding on how Java works, but also gained good programming habits. Programming habits such as; starting early, meeting dead lines, committing to the project repository often, and keeping testing of the code high. Also from independent researching, I learned how a web page combined with Cascading Style Sheets (CSS) and Java Script can be used to make a web page display and do really cool things.

Aside from learning good programming habits, and understand or learning new computer languages. I also obtained the knowledge to becoming a good leader and colleague. As a leader, I had to lead by example and also guide to the team to success. Its not as easy as it sounds, not every team gets a long easily. The team had its share of problems, from not communicating well to having a big ego. I as a leader had to resolve such issues and provided long term solutions so that the problem would not occur again.

Being a leader has its set back, for me it was the amount of stress it gave me. Some members would not start working on a task till last minute or would not complete a task at all, which made me nervous at times. I would pick up their slack and try to start on the task for them or finish it. Also with the stress accumulating, I would at times lose my nerve and say things to members that might offend them.


Conclusion
This whole experience, of working on the project, has been very good. I got to work with many different types of personalities, each member unique in their way, that it has prepared me for what to come in the future. It has also enlightened my comprehension of programming languages and programming habits. There are many things that I have experienced; but the main one, that seems to be priceless, is being a good leader.

Monday, May 11, 2009

ICS 499: This is just the Beginning

This semester has been a very enlightening one; I was able to work on one of the biggest on going projects in my college career and also obtain life long experiences that will come in handy in the near future. Through out the semester, I have been working on a project called the “Devcathlon Game”; which is an online game for program developers.


On the journey towards completion of the project; I have obtained many valuable new skills and experiences that, I am very sure, will benefit me in the future. Some of the new skills I acquired are; further understandings on Java, new knowledge of how Wicket works and its compatibility with other web designing languages, and learning on how to use and utilize the Yahoo User Interface (YUI). Another skill I came by on is using a new program called Dream Weaver, how it makes web designing easier to do and understand.


An experience I gained from working on the Devcathlon development team is how to be a good programmer. With what the Devcathlon’s events are based, I saw it as a must to practice the principles of those events. The experience, in my opinion that stood out, was learning to be a good leader. During the beginning of the project’s implementation, I served as Team MS’s leader; which consist of Daniel Arakaki, John Ancheta, and John Zhou. Having these three team members, made managing the team easy; because each member did what they were told to do and were dedicated to finishing a task on or before its dead line. I also worked with another person that is apart of the overall development team; Anthony Du, who was the leader of Team UT.


Towards the end, the project leader, John Ancheta, had to step down from his position; due to personal issues. Seeing this as an opportunity to step up, I took the vacated position. Managing three members to managing the whole project, which consist of 7 members, was very difficult. I had to over see both team’s issues, resolve any conflicts between members, and also to implement my part of the program. The experience I gained from being a team leader, a project leader, and picking up leadership in the middle of a project is having good management and self control.


Every project in production has problems; from these problems is where I gained those new skills and experiences. At times some members wouldn’t do their job on time which would slow process of development, so I would either set a concrete deadline or talk to that member. Another situation was when a member of the project was not communicating with the others and made major changes to many files without notifying anyone. A majority of the members in the project had tension towards that member that made changes. I as the leader had to stay neutral, resolve the conflict between the members, and come up with a solution so that the same problem would not occur again.


Being a project member, a team leader, and a project leader has been very educational. I learned on what it takes to be a good leader, to always be open minded to new ideas from others, and to be a dedicated/hard worker. With the new skills and experiences in my pocket and starting a new journey in life, this is just the beginning of things to come.

Sunday, May 3, 2009

ICS 499: Beta versions always have problems

This past week marked the climax peak of the mountain for the Devcathlon development team. We accomplished a majority of the Devcathlon system, from creating a team to a full functional scoreboard. We presented our accomplishment to our professor, Prof. Johnson, and got his approval for a test run.


Following the presentation, the class discussed of what steps to take next. As class leader I proposed the same idea Prof. Johnson had; which was to fix some last minute detailing and have him upload the system to the test server. Later once the Devcathlon is up and running, test some of the functionalities. The class all agreed to the proposal of the next step and also agreed to begin writing the developer and user wiki documentations for the Devcathlon Project Page.


When I received an email from Prof. Johnson that Devcathlon was installed and running; I immediately precede to the test website (Devcathlon Test Server). I quickly logged in and created a team, then waited till the next for the other members of the class to log in and join a team. Once everyone was settled with logging in and there was two teams in the system; I next tried to create a match and “BANG” nothing happened. Of all parts of the system not to function, my part, the creation of matches between teams.


Trying to narrow down the problem was kind of hard with out any console output. I then emailed the professor requesting him to send me what the program was printing out to the console on the server. In his reply, the console output printed that there was an invalid value for the hour field. I had a feeling that it might be the date inputs, due to how I wrote the method to handle those inputs. I wanted the user not have to worry about inputting anything other than a date, month, and a year. The crazy thing is that we, the Devcathlon Development Team, are able to create matches on our local machines.


Over the past few days I rewrote the method that handles the input dates; not to pass in a static 24 hour, but to use the hour the user creates the match. Hopefully that will solve that problem, and no other functional problems will occur down the line. These things are expected to happen, since Devcathlon is still in its beta phase.