Wednesday, December 7, 2011

Issue-Based Enhancements

     In earlier posts I have covered the concepts of Issue-based project management and the WattDepot based system that my development team had worked on, If you havent read my previous posts and have no idea what I am talking about, please read:
This

  Also an important issue that I will be discussing are the three prime directives of open source software, for a refresher of what those are please have a look at:
This

   For this blog post I wanted to discuss an exercise which my development team and I participated in, in which we took on the challenge of enhancing an existing system that was identical, Only in functionality, to the WattDepot Halealoha-Cli-Hash system that we had implemented. This other system that we had to enhance was non other than the infamous HaleAloha-Cli-Chair, of which I did a technical review of here:
Chair Review

  In the review I made the claim that a external can  understand and enhance the system aka prime directive number 3, but I had not actually tried to enhance it.  so in order to fully test the systems ability to be enhanced our development team each added one additional command to the HaleAloha-Cli-Chair system.  As it turns out, the system was EXTREMELY well organized and easy to understand.  After looking at the code for literally less than five minutes I had a very clear understanding of what was needed to add additional functionality to the system.  Aside from the class which I created in addition to the existing system, the only actual modification to the existing system that had to be made was the insertion of ONLY 2 lines of code. very easy! almost too easy...... so to original team Hash developer/s I would like to say great job! you made my life easy.

So lets take a look:

Here is the System

This is the additional functionality that I added to the system:


monitor-power [tower | lounge] [interval]

This command prints out a timestamp and the current power for [tower | lounge] every [interval] seconds.  [interval] is an optional argument and defaults to 10 seconds. Entering any character (such as a carriage return) stops this monitoring process and returns the user to the command loop.  

And just for fun here is the two line modification I had to make to the system:

MonitorPower monitorPower = new MonitorPower();
commandMap.put(monitorPower.getName(), monitorPower);

  As you can probably tell by now I was thrilled at how easy it was to understand and enhance this system.  Without a doubt this system satisfies the third prime directive.  Taking on the challenge of enhancing another development teams code base can be difficult, if not properly documented and implemented in a confusing way it can be a nightmare to sort through it all.  This was obviously not the case with HaleAloha-Cli-Chair.   

No comments:

Post a Comment