Where I work, some mainframe guys at another department came up with a little formula for estimating "Programming and Unit Testing" time for their work. They rank tasks according to perceived difficulty (let's call the difficulty levels A, B, C, and D) and according to type [is it a batch program? an online program (green screens and all)? an interface to the core system?]. So, they have a matrix model where cell (say) (B,1) corresponds to a medium-difficulty task in building an online program. (The granularity of the "tasks" is in the range of 1-3 screens, 1-3 programs, up to 30 validations, 1 interface, ~2 reports).
Now, the issue is that our manager wishes that we adapt the above model to a Java/Web world. I.e. keeping the matrix the same, giving appropriate times for each task. And my question to all of you fellow-JavaRanchers is:
1) Do you believe that Java-based development is faster/slower or around the same time as mainframe (say COBOL) development. I have no exposure to the mainframe world whatsoever to make any meaningful conjectures... Is their anyone that has experience in both worlds that wishes to spare a thought here?
2) Would there be any sense in attempting to making a mapping from the tasks in the aforementioned model to tasks in our Java world? For instance, I am thinking on what they term as "online programs" a collapsed View and Controller in an MVC world and their "interfaces" as what we term Model (with an emphasis to connectivity with a core system, rather than with also modelling concepts in the OO sense... Does this sounds reasonable to you?
Many, many thanks in advance! Panagiotis Varlagas - IBM Certified Application Developer - Rational Application Developer for WebSphere Software V6.0 - IBM Certified Enterprise Developer - WebSphere Studio V5.0 - IBM Certified Solution Developer - WebSphere Studio V5.0 - IBM Certified Systems Administrator - WebSphere Application Server V5.0 - Sun Certified Web Component Developer for the Java 2 Platform - IBM Certified Solution Developer - VisualAge for Java, Prof. Ed., V4.0 - IBM Certified Specialist - VisualAge for Java, Prof. Ed., V4.0 - Sun Certified Programmer for the Java 2 Platform
[edited to remove e-mail from post. you can put your e-mail in your profile] [ December 13, 2005: Message edited by: Jeanne Boyarsky ]
Panagiotis, 1) Would it be the same developers? In other words are you comparing experienced COBOL developers to new Java developers? I don't have any experience with COBOL either, but this is something to think about.
2) I definitely think the matrix makes sense for Java. The matrix sounds like a way of measuring the complexity/size of a task. There may be some movement within the matrix on percieved difficulty based on what libraries are available in COBOL/Java and whether the team has done a similar task in Java. After a while, the new matrix would stabilize.
I found things went far faster in the mainframe world because it was architecturally so much simpler and more mature. That is, there were a lot fewer moving parts and we knew what we were doing, and the same went for everyone we had to work with in deployment, configuration, production support, etc. Maybe I'm just nostalgiac.
You'll have to discover what the conversion factors are from the matrix to actual calendar time on your own. I wouldn't make any assumptions about being better or worse than the mainframe timeline until I've tried it.
As an alternative to the matrix, read up on XP (eXtreme Programming), story estimates and the planning game. HERE is how my team looks at it. (This is not the XP Gospel but our adaptation.) The emphasis is on estimating things relative to each other rather than predicting actual elapsed time, and then observing how fast you really get them done. [ December 13, 2005: Message edited by: Stan James ]
A good question is never answered. It is not a bolt to be tightened into place but a seed to be planted and to bear more seed toward the hope of greening the landscape of the idea. John Ciardi