Monday, October 27, 2008

Portfolio and To date analysis

Member-level telemetry in portfolio page

Now when user click a
sparkline in portfolio page, it will go to the associated member level telemetry analysis, which provides more detail about that sparkline. Actually, the analysis used to generate the sparkline is the member level telemetry. These analysis will return multiple streams, then the sparkline is generated by merging these streams. New attribute "merge" is added to portfolio definitions. Currently the system support "sum", "avg", "min" and "max" merge methods, but only "sum" is actually being used.

At the beginning of trying to implement this feature for portfolio page, I was trying to associate a telemetry analysis to the portfolio measure, and when user click the sparkline, it will invoke the associated telemetry analysis rather than the analysis used to generate the
sparkline. But after some coding I found that, the associated telemetry is most likely to have different parameters from the original analysis. That means either the associated analysis has to use default parameters, or we need to add parameter configuration for the associated telemetry. Neither of these choices satisfy us, so we discard this idea and use merging.

To Date Analysis

Portfolio page now is mostly done at current level, so it is good time to start to date analysis page now. Surprisingly, to-date page is pretty much the same as portfolio:
  • It has few input: projects only.
  • Each project we generate some analysis and list them in a table.
  • It has a configuration panel to configure these analysis.
So after copying code from portfolio, I just need to do some small change and it will work.

There are two major issue we need to address:
  1. Which analysis should use cumulative value and which should use latest value.
  2. When should the accumulation start.
The first one is easy because it can be tell from the cumulative parameter in telemetry definition. If a telemetry has cumulative parameter, that means accumulation make sense to it, therefore it should use cumulative value, and the others should use latest value.

The second one is more difficult to answer. A quick idea is to start from the start date of the project, but that will cause the serious performance issue, especially when requesting the Default project, which start date is set to
2000-01-01 by default. The other problem is, even if start from start date of the project is doable, is it make sense to do so? May be it will be better to let user select the start date? This is the first research question for to-date analysis.

No comments: