Tuesday, April 1, 2008

Code Review: Informative Workspace

This review is for the Project Overviewer widget for the Informative Workspace Project.

Installation and Developers Guides:
Installing the Overviewer was fast and simple by following the Installation Guide, but going through the Developers Guide took a while in my case since I reformatted my computer. I didn't have the environment variables setup aside from what's needed for Hackystat so that took extra time to go through - Probably the same amount of time as someone who hasn't had much experience working in a Java environment. I also had to look for different versions of the tools, although I think the Emma version listed was a typo since build 2.1.5312 doesn't exist. After the variables were set up I tried to do an ant verify that didn't work initially because ant was complaining about my ANT_ARGS variable being unspecified from an xml file so I took that out. Not sure if anyone else ran into that or if it was just me. Verify passed afterwards.

Code:
Overall the code looks good with a decent amount of documentation. I think that it could use a little cleaning up though - just spaces in between lines of code to improve readability. I also fiddled with getting the iHacky repository to show instead of the Informative Workspace (IW) repository and ran into a bug.

All I did was change the relevant information such as repository address, and Hackystat project owner and members. After I made the changes, I compiled the program and deployed it on Tomcat. When I clicked on the IW Project link it wouldn't load. After an hour of looking over the code and making a minor change based on a hunch, I recompiled the program and deployed it back on to Tomcat. The problem was that the Overviewer didn't like having 3 developers in developersList. I didn't test for any higher value though so once I removed a developer from the list, it finally showed the iHacky repository.

As for the use of Wickett, I initially thought that it would have been more of a pain to use over Stripes, but after finally seeing it work it seems pretty much the same. Instead of jsp and Action Beans, we have html pages and ... Pages.

Usefulness
Right now the overviewer displays all of the files in a project's repository, or displays information about the project such as features and upcoming milestones. On the CSDL Telemetry Wall where the IW project is being tested on, the overviewer is currently taking up two screens. If I remember correctly, the team has stated that the overviewer will eventually just take up 1 screen and act as a focal point for any other data in the other screens.

This is supposed to be an overviewer, but I'm not getting a sense of how looking at the entirety of a repository gives a good overview. According to a quote on the project's webpage "when an interested observer walks into your team space, s/he should be able to get a general idea of how your project is going in 15 seconds, and be able to get a deeper perspective on real or potential problems by looking more closely." Having a countdown of a milestone and having a feature list seems like it fits that description, but I can't picture that information along with the repository view all on one screen giving the observer a general idea in 15 seconds. I don't even see how automation will help to improve it once automation is implemented. I guess I would suggest that the repository view be something that the interested observer be able to access when they want to get the deeper perspective. Replace the repository view on the front page with something simpler to get the observer to interact with the IW and make the text larger on the milestone countdown and features so it can be seen from a longer distance.