Tuesday, November 29, 2011

Issue Driven Project Management

Recently I've partaken in a group project with two fellow software engineers (Branden Ogata and Jayson Gamiao) in which we developed a Command Line Interface (CLI) for energy and power consumption in the UH Manoa Dorms. More specifically we enhanced the wattdepot katas to have a more user friendly front end. This project also used many of the Issue Driven Project Management (IDPM) concepts such as breaking a project into meaningful tasks. Using IDPM really made our lives easier, since everyone had a specific job to do. At first I thought that this project would've been done faster if one person just coded everything since, he/she would know how the code worked. However I was proved wrong because each project member contributed and showed their areas of strength in programming terms.

To briefly explain what IDPM is; In software project management things can get very complex and the larger the project is the more complex it will be. Essentially IDPM has project members working on tasks, which are small jobs to complete the overall project. The project members should have a task to work on at all times and tasks should be meaningful. My overall attitude to what worked with IDPM was that it provided a framework in which group members know what to do and what other group members are doing at all times. This is evident with email notifications with each update and build tools verification.

The project implemented the following commands

  • current-power [source] Prints the current power consumption of the source
  • daily-energy [source] [date] Prints the amount of energy that the source consumed on the given date
  • energy-since [source] [date] Prints the amount of energy that the source consumed from the given date to now
  • rank-towers [date] [date] Prints the Hale Aloha towers in order of energy consumption between the dates given
  • help Prints a list of commands that the user may type in 

The functionality built in was a soft of idiot proof user interface where if users intentionally try to break the system, an error message would be printed. The functionality that was not implemented was the addition of more commands. The wattdepot API allows more commands than the 4 listed above, but for brevity sake our group chose to implement those 4 as a starting point. This project leaves room for upgrading the code, at this page.

The Google code page for this project is located here


Post a Comment