Going to any restaurant, I can imagine its customary to have appetizers before you dive into the main course. That is, if you are not in a rush! In my previous blog, I detailed just a small taste of what teamwork was like in Issue Driven Project Management (IDPM). While my experience, to say the least, was not quite what I expected it to be, I did learn a lot of new things from my experience, with learning how to communicate more efficiently topping the list.
However, what I learned in my experience is only just the appetizer. In fact, I think in order to digest and appreciate the full effect that IDPM fosters, I must also experience it as an outsider looking in. Thats where Hale Aloha CLI Hash comes in.
Both the Hale-Aloha-CLI-Hash and Hale-Aloha-CLI-Chair are simliar projects, setting out to provide a Java based implementation of a Command Line Interface which provides users a useful way of working with WattDepot energy from the Hale Aloha student resident towers located at the University of Hawaii at Manoa, differing only by, of course,the developers who worked on it and their implementation strategy. Being similar, the requirements of the project were the same: developers were to create six commands,help, quit, current-power, daily-energy, energy-since and rank-towers. Simple, yes? I know.
As an outsider looking in, I analyzed their source code throughly, looking for other things another developer would look for if they were to examine this project, for example, if this project satisfied the Three Prime Directives of Java-based open source software engineering.
If you remember way back when the blog in which I analyzed a piece of software in terms of the Three Prime Directives, you would also remember that satisfying these directives is integral to projects of a higher quality that are not just easy for users to use, but administrators and developers to use as well.
Continuing on in the same fashion as my first blog, I witnessed that the Hale-Aloha-CLI-Hash project, in terms of the Three Prime Directives:
Prime Directive #1: The system successfully accomplishes a useful task.
After a successfully downloading the project,which was quite simple I must say, proving that the system accomplished this task was trivial. Here is some sample output:
help
Here are the available commands for this system.
current-power [tower | lounge]
Returns the current power in kW for the associated tower or lounge.
daily-energy [tower | lounge] [date]
Returns the energy in kWh used by the tower or lounge for the specified date (yyyy-mm-dd).
energy-since [tower | lounge] [date]
Returns the energy used since the date (yyyy-mm-dd) to now.
rank-towers [start] [end]
Returns a list in sorted order from least to most energy consumed between the [start] and [end] date (yyyy-mm-dd)
quit
Terminates execution
Note: towers are: Mokihana, Ilima, Lehua, Lokelani
Lounges are the tower names followed by a "-" followed by one of A, B, C, D, E. For example, Mokihana-A.
>
current-power Lokelani
Lokelani's power as of 2011-12-13 was 43.38106384657915 kW
>
daily-energy Lokelani 2011-12-12
Lokelani's energy consumption for 2011-12-12 was: 794.4316447372753 kWh
>
rank-towers 2011-12-05 2011-12-12
Source For the interval 2011-12-05, 2011-12-12 energy consumption by tower was:
Lokelani-08-telco 206 kWh
Lehua-10-telco 210 kWh
Mokihana-06-telco 212 kWh
Lokelani-12-telco 218 kWh
Mokihana-04-telco 240 kWh
Lokelani-10-telco 248 kWh
Mokihana-08-telco 250 kWh
(Shortened output)
>
quit
Prime Directive #2: An external user can successfully install and use the system
No system is ever useful without the proper documentation on what the systems is and what it does, and as a result, is incomplete. However, that is not the case for this project. In addition to the easy process of installing the system, both a user's and developer's guide are provided, giving an in-depth description of what the system is, how to install the system, and some basic commands that the system accepts when it is running.
Here is just a snippet of information from both pages:
(Users)
Introduction
To download the latest distribution of the hale-aloha-cli-hash system please navigate to the "Downloads" tab above and download the latest distribution of the system.
Details
After downloading the distribution .jar file it can be run in the following way:
1) Navigate via the command line to the directory which contains the "hale-aloha-cli-hash.jar" file that you have just downloaded.
2) To start the program issue the command:
% java -jar hale-aloha-cli-hash.jar
.........................
(Developers)
System Requirements
This program requires the following installed to compile and run:
Ant 1.8.1
Java 1.6
Installation
After checking out the hale-aloha-cli-hash project you must navigate to the top level of the directory and run the following command:
% ant
This command will download the following packages necessary to run the project: Ivy, JUnit, WattDepot, JavaDoc, PMD, Checkstyle, and Findbugs.
Verify installation
Once the ant command executes successfully run the following:
% ant -f verify.build.xml
...................
Thats another success in terms of the Three Prime Directives!
Prime Directive #3: An external developer can successfully understand and enhance the system.
A feature that makes a system good is the fact that it is useful and that, of course, it can be used by other users. Yet, what really makes a system great is that in addition to said feature, it can also be used by a wide range of other developers as well.
From the page where commits to the project can be seen, its obvious to me that each team member of the group did a good amount of work that contributes to the project's success. Each member not only implemented the required functionalities and their appropriate test cases, but also gives other developers a complete overview of their work, illustrating their combined effort to ensure their project followed specific coding standars, their project's correctness under quality assurance tools, their project consistency at being verified to build successfully under continuous integration and that the proper documentation (i.e Javadocs) could be generated, if need be.
All in all, the group did a good job at creating a system that adhered to the Three Prime Directives. If you are curious please feel free to check it out yourself here
No comments:
Post a Comment