--On Monday, February 27, 2006 11:03 PM -1000 Aaron Kagawa <[EMAIL PROTECTED]> 
wrote:

Hey Guys,

Some questions about the sensors.

Ant Log Sensor:
I want to use the Ant Build sensor for CruiseControl builds, but I think I 
tried to use
that sensor and I'm not sure if I got it working properly (I don't remember the
problems that I ran into). One idea that I had was to leverage the Ant logs that
CruiseControl creates as a data source and not have to install the Ant Build 
sensor
during run time.  Do you see any problems with using the Log file opposed to our
current approach? For example, can we get the same information?

Some ideas:

(1) XmlData provides an easy way to generate Build sensor data from the Ant log files. Write an XSL transform file, and use the <style> task in Ant to input the ant build log file and output XML containing the Build results you want to send to Hackystat.

(2) Don't necessarily give up on the Ant sensor. Let us know what problems you're having. Maybe it would be easier for us to fix it than for you to write your own.

(3) The Build sensor data type needs to be evolved to use pMap. If that is a sticky point for you, let me know.

One last thing. We do not have individual Hackystat accounts. Thus, server side 
sensors
send data to one central account (or one account per project).  I believe it is
possible to create this mapping in the usermaps, but at what cost? Would 
sending this
data in this manner significantly reduce the usefulness of the data?

I'm not sure why I'm trying to stay away from individual Hackystat accounts.

This seems like a perfectly reasonable way to introduce Hackystat into an organization without creating the fear of Big Brother. In fact, you may have stumbled upon a "best practice" for Hackystat technology adoption. :-)

You should definitely be able to create the mapping that you need in the 
usermaps.

As for the cost/utility question, my belief is that there's no cost for project-level analyses. You do lose the ability for developers to monitor their own personal statistics and trends, but at this point, that's probably no big deal.

JUnit Sensor:
Well, this question isn't really about the JUnit sensor; its has to do more 
with the
DailyProjectUnitTest class. Like I said earlier we do not utilize client side 
sensors,
thus the current DailyProjectUnitTest implementation does more harm than good 
in this
situation. Basically, I do not care how many (the aggregation) unit test were 
run in a
day, because it always comes from the same user (our automated build user). All 
I want
to know is the number of unit test (snapshot) that were ran during the last 
official
build.  Well, maybe an aggregation and snap shot would be useful.

It seems to me the DailyProjectUnitTest does more good than harm. :-) What it computes and caches is precisely what you want: the total number of unit tests run, passed, and failed. There's basically no meaningful overhead incurred by its ability to manage multiple users in a project.

On the other hand, as I look at the implementation of DailyProjectUnitTest, I notice the presence of the dreaded JavaClassWorkspaceManager! One thing that will go high on the list for post-7.3 work is to change the UnitTest sensors to send file path info, and try to get rid of this class-workspace mapping stuff.

Emma, FindBugs, and PMD Sensors:
These sensors are great, but I do not want to actually run these tools if the 
sensors
are not available. And I would want to run these tools only if the sensors are
available (for example in CruiseControl builds). What would be the best 
practice on how
to make this possible? Would using the available be the best option?  Note that 
some of
the developers actually run our cruisecontrol target before committing code.

That's interesting that the developers run CruiseControl targets locally. Here's how I would do this:

(a) Put both the tool invocation and the sensor invocation into their own targets, such as runPmdTool and runPmdSensor.

(b) Create a top-level <condition> task that checks to see if it can find the sensor .jar file, and set a property like pmd.sensor.available if the jar file is found, such as:
<condition property="pmd.sensor.available">
 <available file="${ant.home}/lib/pmd.sensor.jar"/>
</condition>

(c) make a top-level task that depends upon both the actual invocation of the tool and the tool sensor targets and is conditionalized on the presence of the sensor:

<target name="runPmd" depends="runPmdTool, runPmdSensor" 
if="pmd.sensor.available"/>

What's nice about setting things up this way is that later, if a developer wants to run PMD but does not have the sensor installed, they can do it without changing the build file by invoking runPmdTool explicitly. It seems likely that at least some of them will want to run it locally at some point.

Jira Sensor:
I haven't been able to get the Jira Sensor (formally Jira2) to work since the 
latest
upgrades. I'm not sure if its the upgrades or some settings on my local server. 
The
problem is that the extractor can't seem to login through SSL (it was able to 
before).
I guess this is not really a question, but just an FYI.  I will look into the 
problem.

Thanks! The Jira sensor is much better than it was before; hopefully you can help us figure this out. My guess is that the Jira folks have changed the API for SSL logins in a release of Jira subsequent to the one in which this feature was implemented initially.

Eclipse warnings about Sensors:
Is there any way how to get rid of those pesky "taskdf class 
org.hackystat.sensor.*
cannot be found" warnings in Eclipse without installing the sensors? Those are 
probably
especially irritating to my developers who have no clue what Hackystat is.  My 
current
thought would be to make a separate Ant build file that contains the Ant sensor 
targets
and invoke that separately. Any other ideas?

That one sounds best to me.

Telemetry Control Center:
Its my belief that the Telemetry Control Center is much apart of the Hackystat
interface as the Web commands.  Any thoughts about allowing that application to 
be
downloaded via the Hackystat webpage?

I agree that the TCC is a "first class interface" to Hackystat, and although it's already available in several configurations, it is currently an undocumented feature. We will document it in the near future via a docbook chapter in the hackyApp_TelemetryControlCenter module that will show up in the User Guide (or maybe the Administrator Guide?) for configurations including this module. The chapter will explain how to install the TCC (with a link to the .jar file in the download directory of the server), how to write TCC XML files, and some samples.

Cedric has been desperately wanting to write this chapter, but I've been making him wait until I finished documenting how to write docbook documentation. :-)

Finally,...
Eclipse Sensor:
At some point, I would like to introduce client side sensors like the Eclipse 
sensor. I
belive the "Big Brother" issue would be a factor.  One idea that I had was to 
send all
DevEvents to one single Hackystat account. Thus, a developer can hide amongst 
the rest
of the project members.  Would that be a bad idea?  I'm just trying to figure 
out a way
to minimize the "big brother" feel.

That's an intriguing idea. Here's an alternative. Get your "single account" mode up and running and producing anonymous project-level statistics that the development group finds to be of use. This might take you several more months of fine tuning, but just take your time, there's no hurry, we'll still be here. The point is that you want your development team to get used to Hackystat collecting metric data, and you want them to see concrete value from the anonymous data that it collects.

Once you're at that point, then you can show them your _own_ personal data and how you are using it to help manage your own personal productivity and quality. Then, maybe just one developer will want to take the plunge. If so, you're on your way.

Cheers,
Philip

Reply via email to