I've been meaning to ask about why those were setup, to better
understand how to setup the telemetry streams at our company.  We have
the following setup:

- Three source code repositories (subversion)
- One nightly build machine
- About 20 - 25 components, and several major projects.

We marked each repository as a workspace root.
We placed each component at the first level of the repository.
We moved each subdirectory of the components into the "ignored" workspaces area.

We created a Hackystat project for each component, choosing only its
workspaces (and the branch workspaces such as component-1.0).

For one of our several major projects we created a new Hackystat
project that included the workspaces of the 4 components we used.

Using this setup, we can see the telemetry for a particular software
component, and for a particular project.  The member active time
stream (from the July stable release) shows the email address of each
individual who submitted time to that project, and so we get a good
idea of who was working where when.

What advantages do we get by defining a telemetry stream that shows
each toplevel project?  To me it seemed that Hackystat projects were
best defined for software components and that "business level
projects" were best defined by composing themselves from other
hackystat projects -- we just had to simulate it by defining it using
the same workspaces.

For us, several software modules are shared across several projects. 
Business projects have a shorter lifespan than software projects. 
Consequently a software module may be improved several different
times, each as a result of different business projects.  So we may
want to see the entire timeline when looking at a software module, but
when looking at the effort for a business project we may only want to
see the timeline during the begin/end period for that business
project.  I guess that's why using the Hackystat projects the way I
described earlier makes sense to me.  How could we use the projects
differently, and what benefit would this new templating setup bring to
us?

Thanks,

Tim


On Thu, 23 Sep 2004 13:06:15 -1000, (Cedric) Qin ZHANG
<[EMAIL PROTECTED]> wrote:
> Please check the attached html file, and comment. Thank you. -Cedric
> 
> 
>  
> Hackystat Developer Documentation 
> Hackystat Telemetry Language 
> 
>    
> 
> Version 1.1 
> 
> Qin Zhang
>  Collaborative Software Development Laboratory 
>  University of Hawaii  
> 
> $Id: HackyTelemetryLanguageSpecification.html,v 1.9 2004/06/29 13:08:22 qzhang Exp $ 
>   
> Abstract 
> 
> This document describes the problem we encountered with Hackystat Telemetry Language 
> Version 1.0, and the proposal to solve the problem. 
>   
> 1. The Problem 
> 
> Suppose we are interested in ActiveTime in all top level packages of Hackystat, then 
> we need to define a telemetry stream for each of the package: 
>  
> 
>  streams ActiveTime-hackyKernel = { ActiveTime("**/hackyKernel/**" } 
> 
> ... 
> 
> streams ActiveTime-hackyTelemtry = { ActiveTime("**/hackyTelemetry/**" } 
> 
> The situation got even worse when we are interested in active time that each project 
> member has spent on each module (ref: MemberActiveTime). Then we have to define a 
> telemetry stream for each member/module combination. The exponential increase of 
> definitions has created usability issues, as well as maintenance nightmare (just 
> take a look at telemetry management page on the public server).  
> 
>   
> 2. Proposed Solution 
> 
>  C++ template-like mechanism is ideal for solving the problem. Following example 
> will illustrate the proposed solution: 
>  
> 
> streams MyActiveTime = { template<pattern, member> MemberActiveTime(pattern, "true", 
> member) } 
> 
> charts MyChart = { template<member> (MyActiveTime<"**/*.java", member>, 
> MyActiveTime<"**/Test*.java", member>) } 
> 
> Notice that: 
>  
>  
> MemberActiveTime is a reduction function. 
>  Two templates (i.e. "pattern", "member") are used in defining 
> MyActiveTime. 
>  
> MyChart shows two lines, one for java code, the other for java testing code. It 
> instantiates one of the two templates in 
> MyActiveTime. 
>  User can use 
> MyChart<"[EMAIL PROTECTED]"> to see qzhang's individual active time. 
>  The proposed solution is backward compatible with Hackystat Telemetry Language 
> Version 1.0. 
> 
>   
>

Reply via email to