ZOOM For Run II WBS Breakdown

12/01/98

-----------------------------

ZOOM is an ongoing libraries task force with scope looking past Run II. However, presently ZOOM efforts are dominated by the "ZOOM for Run II" project, which is under the auspices of Run II project management. This is a beakdown of efforts for the ZOOM for Run II project.

This document necessarily discusses effort and not schedule; the missing component for the latter would be concrete allocation of manpower resources.

Development estimates are denominated in units representing one average week of output of one top worker, accounting for missing time from various sources such as vacation days. They do not include administrative and guidance overheads.

Support estimates are denominated in fractions of an FTE. Until a "functional" release of a package is issued, any support needs are subsumed in the development estimates. Support has two components. The first, associated with development and user interaction, should tail substantially some time (say six months) after the user base for the package stops expanding rapidly. The second is proportional to the package development time, times the rate at which new supported platforms are introduced and new compiler versions must be accomodated.

Contents:

1 - Executive Summary
2 - Sub-projects (Packages)
3 - Defined Deliverables and Milestones
4 - Development effort estimates
5 - Support estimates

---------------------
1 - Executive Summary
---------------------

The ZOOM activities for Run II are grouped into about a dozen packages. Among the intended deliverables, many are fundamental to the workings of the packages; others could conceivably be curtailed if resource allocation forced it.

The estimated required work for the fundamental deliverables is 38 FTE weeks. No single step dominates this, though several CLHEP-related deliverables are of appreciable complexity.

CLHEP

13

Error Logger

6

HepTuple

7

LinearAlgebra

4

PhysicsVectors

2

Siunits

2

STLUtility

0

Zmtools

2

Zmutility

2

 

The required work for the remaining deliverables is 80 FTE weeks. The largest single component, at 19 FTE weeks, is preparing a minimal disk-resident Ntuple browser for Histoscope, which is needed to make the histoscope manager a viable resource for HepTuple. Altogether, HepTuple-related deliverables account for 34 of the 80 weeks, and an effort to identify and polish a standard documentaion tool another 22.

 

CLHEP - Vavilov

14

Documentation Tools

22

Histocope Ntuple

19

HepTuple other

15

StdHep

10

 

The support burden for the fundamentals is at this time at 2.25 FTE and will decrease down to just under 2 FTE over the next 9 months.. The remaining deliverables, if all done, will gradually add .75 FTE to this. These numbers assume the present rate of two new compilers or platforms or major OS changes each year; each additional such change one adds .4 FTE for that year to get all the packages working and continue testing them on the additional platform.

(The support burden has greatly increased in the last six months as several packages were released into serious use, and at the current level we are having difficulty meeting it fully while still doing the needed development.)

 

---------------------------
2 - Sub-projects (Packages)
---------------------------

It is assumed the reader knows the general nature of each package. Here we list some of the components that will require effort. Components marked + will be split out separately.

CLHEP
* Support on platforms, as CLHEP versions move forward
* Random package enhancement and validation
+ Vavilov distribution in Random package

Documentation Tools
+ Investigation of available products
+ Polishing selected product for general FNAL use

ErrorLogger
* Development: functional and complete releases

Exceptions
In support mode.

HepTuple
* Histoscope manager (completion is imminent)
* Specific minor feature enhancements required by Run II users
* Coordination with BaBar so as to have a jointly functional package
* Proper working on NT with Histo (libraries issue)
+ Minimal Histoscope capabilities for disk-resident Ntuples
+ Third option on file manager: Root as file manager
+ CERNLIB/thread safe libraries issue on NT

LinearAlgebra
* Significant cleanups still needed
* Requested minor enhancements.

PhysicsVectors
* Minor cleanups

Siunits
* NT compatability
* Issues raised by early users

StdHep
+ Development

STLUtility
In (very early) support mode

Zmtools
* Platform-specific issues
* New tool development or coordination

Zmutility
In support mode
* Modifications to accomodate new splitup of DEFECT defines

This list does not include the following activities, which may be done by ZOOM but are either beyond the time scale of immediate Run II applicability, or have not been requested by Run II:

- Development of Histoscope column-wise Ntuple browser
- Integration of PhysicsVectors with analogous CLHEP package
- Insertion of ZOOM modules into ROOT
- Vavilov Distribution improvements beyond basic form

---------------------------------------
3 - Defined Deliverables and Milestones
---------------------------------------

We introduce two terms: A "functional release" is one which may not have all its intended features but allows users to move forward with code depending on the package; a "complete release" is one with full features and available on supported platforms, but it may still be in beta testing to shake out problems.

It is not clear how this project planning process accomodates the desirability of contingencies to take advantage of important opportunities. So for example ZMtools will be listed without deliverables for any new tools, but if a good opportunity arises, we will want to extend the project to take advantage.

CLHEP
1.1 Editorship of Random assumed, and ZOOM enhancements fully integrated
(including CLHEP-style documentation)
1.2 Completion of engine validation, including revised N-dimensional minimum
distance test
1.3 Complete set of validations for distributions

CLHEP - Vavilov
1.4 HepSpline functional release
1.5 Vavilov Distribution in CLHEP
1.6 HepSpline complete release

Documentation Tools
2.1 Checklist of availabe products against essential capabilities
2.2 Functional release of selected product for general FNAL use
2.3 All ZOOM code insturmentited for this documentation form
2.4 Complete release

ErrorLogger
3.1 Functional release
3.2 Complete release

HepTuple
4.1 Completion of complete release with histoscope manager incorporated,
jointly accepted by Run II and BaBar

HepTuple Histoscope
4.3 Release of Histoscope capabilities for disk-resident Ntuples

HepTuple Root
4.4 Functional Release with Root as partial file manager (no N-tuple readback)
4.5 Root file manager Ntuple readback

HepTuple NT
4.6 Heptuple with thread safe CERNLIB on NT

LinearAlgebra
5.1 Complete release

PhysicsVectors
6.1 Maintenance-catchup complete release

Siunits
7.1 NT compatability 2

StdHep
8.1 Functional release
8.2 Complete release

STLUtility

-

Zmtools
10.1 Maintenance-catchup complete release

Zmutility
11.1 Modifications to accomodate new splitup of DEFECT defines

--------------------------------
4 - Development effort estimates
--------------------------------

CLHEP

 

1.1 Random/ZOOM enhancements integrated

4

1.2 Completion of engine validations

5

1.3 Validations for distributions

4

Error Logger

 

3.1 functional release

1

3.2 complete release

5

HepTuple

 

4.1 Complete release

2

4.2 Proper working on NT with Histo

5

LinearAlgebra

 

5.1 complete release

4

PhysicsVectors

 

6.1 Maintenance-catchup complete release

2

Siunits

 

7.1 NT compatability

2

STLUtility

 

-

 

Zmtools

 

10.1 Maintenance-catchup complete release

2

Zmutility

 

11.1 Accomodate new DEFECT defines

2

Total -- 38 FTE-weeks for these fundamental deliverables.

--- SPLIT OFF ENDEAVORS: ---

CLHEP - Vavilov

14

1.4 HepSpline functional release

4

1.5 Vavilov Distribution in CLHEP

10

 

CLHEP - Vavilov

22

2.1 Checklist of products against essentials

7

2.2 functional release of selected product

5

2.3 All ZOOM in this documentation form

4

2.4 complete release

6

HepTuple

34

4.3 Histoscope capabilities for Ntuples

19

4.4 Release with Root as file manager

2

4.5 Root file manager Ntuple readback

5

4.6 Heptuple with thread safe CERNLIB on NT

8

StdHep

10

8.1 functional release

6

8.2 complete release

4

Total -- 80 FTE-weeks for these deliverables.

---------------------
5 - Support estimates
---------------------

As discussed earlier, support has two components. The first, associated with shaking out bugs that new users find, and adding features that users learn are crucial, starts when a funtional release is in the hands of the users. As long as the user base is rapidly expanding, this phase continues, but 6 months to a year later (I will use 9 months) this component tails off substantially (I will cut in to a third).

After this "expansion tail off" date, the support is dominated by the need for making the package work on new platforms. Here, a truly new compiler or operating system is much more work than a change to a new version of one or the other, but I lump these together and will assume the current pace of this kind of work will continue. Currently, we seem to have one truly new platform, one new compiler, and 3 new minor version changes each year. This will not decrease.

THE "Ongoing Maintenance" CATEGORY IN THE TABLE IS PROPORTIONAL TO THE RATE OF INTRODUCTION OF NEW SUPPORTED PLATFORMS AND VERSISONS. Also, this category is present as soon as the functional release of a package is reached.

For some packages, for instance the "PRESENT" sub-packages of CLHEP, the support is dominated by this sort of work that will not tail off.

To get these dates, for packages which are not yet at a functional release, I have to estimate their release dates. This of course depends on the assumptions made about resource allocation. I try to use middle-of-the-road estimates.

To the support burden we add 10% overhead for web-page upkeep, release notices, and documentation evolution. Also, writeups and presentations, and review preparations have occupied about 15% of the technical support burden. I will break this out separately as "general maintenance overhead" (GMO). For this computation, for the fundamental steps we count the support and evolution category at 2/3 strength since it drops to 1/3 after a while. For the other steps we only count the support and evolutions category since ongoing maintenance will not kick in for a while.

Package

Date Functional Release

FTE Support and evolution

Date Expansion Tail Off Maintenancd

FTE Ongoing

 

 

 

 

 

CLHEP

 

 

 

 

"PRESENT"

already

--

already

.25

RANDOM

already

--

already

.10

 

 

 

 

 

ErrorLogger

12/98

.10

9/99

.03

 

 

 

 

 

Exceptions

already

.05

3/99

.03

 

 

 

 

 

HepTuple

already

.30

8/99

.25

 

 

 

 

 

LinerarAlgebra

already

.10

3/99

.03

 

 

 

 

 

PhysicsVectors

already

.05

3/99

.03

 

 

 

 

 

SIunites

1/99

.10

10/99

.07

 

 

 

 

 

STLUtility

already

--

7/00

.08

 

 

 

 

 

Zmtools

 

 

 

 

ZMtimer

already

.05

2/99

.05

Zmspline

3/99

.05

12/99

.03

 

 

 

 

 

ZMutility

already

--

already

.10

 

 

 

 

 

TOTAL

 

.80

 

1.05

 

 

 

 

 

GMO for fundamentals

 

 

 

.40

 

 

--- SPLIT OFF ENDEAVORS: ---

Package

Date Functional Release

FTE Support and evolution

Date Expansion Tail Off Maintenancd

FTE Ongoing

 

 

 

 

 

CLHEP Vavilov

6/99

.10

3/00

/03

 

 

 

 

 

Doc tools

5/99

.15

2/00

/01

 

 

 

 

 

StdHep

4/99

.15

2/00

/01

 

 

 

 

 

HepTuple

 

 

 

 

Histo Ntuples

9/99

.15

6/00

.10

Root related

4/99

.10

1/00

.10

Thread safe NT

7/99

.10

4/00

.05

 

 

 

 

 

 

 

.75

 

.49

 

 

 

 

 

GMO for these

 

 

 

.20

 

 

Total Support Profile

 

 

 

Fundamentals only

Full

1/99

2.20

2.20

2/99

2.18

2.18

3/99

5/99

.15

4/99

2.19

2.48

5/99

2.19

2.68

6/99

2.19

2.84

7/99

2.19

2.99

8/99

1.94

2.74

9/99

1.94

2.94

10/99

1.85

2.85

 

Additional FTE per new platform per year: .45

In determining these numbers, I used actual time accounting where available. However, in some cases I had to fill in time NOT spent on activities which we really needed to do, and which we now need to catch up on. That is, for the recent months we have needed to devote about 2.1 FTE to support, and have only actually devoted about 1.4. This discrepancy shows, in the fact that our general overhead such as keeping up web pages and preparing papers is woeful, in the fact that bug fixes and responsiveness are slow, and in cutting corners on testing each package on each platform.

These effort estimates assume we will provide an adequate support pattern.