File APIs for Java Developers
Manipulate DOC, XLS, PPT, PDF and many others from your application.
http://aspose.com/file-tools
The moose likes Agile and Other Processes and the fly likes Critical path approach ! Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login


Win a copy of EJB 3 in Action this week in the EJB and other Java EE Technologies forum!
JavaRanch » Java Forums » Engineering » Agile and Other Processes
Bookmark "Critical path approach !" Watch "Critical path approach !" New topic
Author

Critical path approach !

Vikrant Sahdev
Ranch Hand

Joined: May 31, 2007
Posts: 58
CPM(critical path method) is standard in calculating estimates regarding the project in all industries .
Not many people in software industry are familiar with conventional CPM method.Does your book highlight CPM for estimating the delivery time of a project ?


Coming soon... www.javatales.com
Ilja Preuss
author
Sheriff

Joined: Jul 11, 2001
Posts: 14112
You might find this article to be interesting: http://blog.mountaingoatsoftware.com/?p=7

To me it seems that the critical path is much less important in software development than it might be in other types of projects - simply because software is so "soft". Quite often it's really easy to break dependencies between tasks, and in most other cases it just seems to need some creativity. In my experience, true, "hard" dependencies that cannot be avoided are rather rare - especially in the large scale.


The soul is dyed the color of its thoughts. Think only on those things that are in line with your principles and can bear the light of day. The content of your character is your choice. Day by day, what you do is who you become. Your integrity is your destiny - it is the light that guides your way. - Heraclitus
Johanna Rothman
author
Ranch Hand

Joined: Feb 10, 2005
Posts: 56
Originally posted by Vikrant Sahdev:

Not many people in software industry are familiar with conventional CPM method.Does your book highlight CPM for estimating the delivery time of a project ?


Actually, I think many people in software try to emulate CPM and fail miserably. That's because the critical path in software runs through people, tasks, and sometimes machines. That's not possible to manage in a scheduling tool, so I don't even bother.

Software projects are not manufacturing projects, so trying to determine a critical path for inventing knowledge is not a good use of a project manager's time.

Johanna


Author of <a href="http://www.pragprog.com/titles/jrpm" target="_blank" rel="nofollow">Manage It! Your Guide to Modern, Pragmatic Project Management</a><br /> <br />Coauthor (with Esther Derby) of <a href="http://www.pragprog.com/titles/rdbcd" target="_blank" rel="nofollow">Behind Closed Doors: Secrets of Great Management</a><br /> <br />Author of <a href="http://www.amazon.com/exec/obidos/ASIN/0932633595/ref=jranch-20" target="_blank" rel="nofollow">Hiring The Best Knowledge Workers, Techies & Nerds: The Secrets & Science of Hiring Technical People</a><br /> <br /><a href="http://www.jrothman.com/blog/htp" target="_blank" rel="nofollow">Hiring Technical People blog</a><br /><a href="http://www.jrothman.com/blog/mpd" target="_blank" rel="nofollow">Managing Product Development blog</a>
Ilja Preuss
author
Sheriff

Joined: Jul 11, 2001
Posts: 14112
Originally posted by Johanna Rothman:

That's because the critical path in software runs through people, tasks, and sometimes machines.


That's an interesting statement, and, frankly, I have no idea what it means.

Could you please elaborate? Perhaps you can give an example of such a critical path? Thanks!
Vikrant Sahdev
Ranch Hand

Joined: May 31, 2007
Posts: 58
I dont agree that Critical path can't be applied to Software processes.
May be people in software industry dont understand its full importance.
The likeness in production tasks & times is same as development tasks & times , only machines dont play that big of role in development tasks & times because there is no setup time on computers and they dont breakdown like machines.
In Agile ,once we have task estimation and inter-dependencies, its almost the same as network of jobs. Remember, CPM is a common planning/estimation technique in Project Mgmt. I dont see enough logic to avoid its application in software processes.
But I wont put you on spot for not noticing that .Thanks
Stan James
(instanceof Sidekick)
Ranch Hand

Joined: Jan 29, 2003
Posts: 8791
I tend to agree that CPM doesn't come into play much in purely turning requirements into software. It might be even less important in an agile world than in a sequential world.

I see CPM and complex dependency schedules much more where the software team touches others, e.g. ordering servers, getting approval for new software, upgrading infrastructure, training users and support staff, and so on. We don't involve every coder in this kind of stuff, but some experience making CP driven plans doesn't hurt.


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
Ilja Preuss
author
Sheriff

Joined: Jul 11, 2001
Posts: 14112
Originally posted by Vikrant Sahdev:
In Agile ,once we have task estimation and inter-dependencies, its almost the same as network of jobs.


Agile teams typically work hard to not work with (technical) tasks at the project level, but with what is called a User Story in XP. One important characteristic of a good story is that it is independent - that is, stories can be scheduled in any order. This ideal is not always reachable, but I haven't yet seen an example where you couldn't come so close to it that all the remaining dependencies were trivial. (See http://xp123.com/xplor/xp0308/index.shtml for more on User Stories.)

That's why I'm saying that the CP can be made much more trivial in software development, so that CPM becomes near to a non-issue.
Vikrant Sahdev
Ranch Hand

Joined: May 31, 2007
Posts: 58
Ilja : You completely missed my point !
I work in Agile environment and am familiar with stories & use cases.
However, when the project is broken into user stories, they always carry dependencies. Just a common correlation will show you that :User interface has no value without service layer and service layer needs user to validate its logic and gratify the user.
This is most basic example. In real projects, dependencies between environments make tasks overlap or delay.
So my question was that how do you estimate your project delivery time in wake of such dependencies known at the onset of the project ? Thats why I said CPM can be applied in a slightly differnt color than in mfg/prod. industries.
Ilja Preuss
author
Sheriff

Joined: Jul 11, 2001
Posts: 14112
Originally posted by Vikrant Sahdev:
Ilja : You completely missed my point !
I work in Agile environment and am familiar with stories & use cases.
However, when the project is broken into user stories, they always carry dependencies. Just a common correlation will show you that :User interface has no value without service layer and service layer needs user to validate its logic and gratify the user.


No, you missed my point In my opinion, a user interface is *not* a good User Story - exactly because it doesn't have business value in itself and depends on other "stories" to make sense to the end user.

What I find much superior is a "vertical" work break down, where every User Story goes "through the whole system" and provides visible value to the end user.

Coming up with such a work break down is a skill that needs to be learned, but it's a very valuable skill.

If you like, we could discuss this on an example.
[ November 14, 2007: Message edited by: Ilja Preuss ]
Vikrant Sahdev
Ranch Hand

Joined: May 31, 2007
Posts: 58
I would have expected an example if you could prove your point.
Anyways, seems you got stuck on my example of user story which I think I didnt put in right way before you.
I was trying to highlight the interdependencies between various stories & tasks. It would be naive to imagine stories having no linkage or dependancy on previous stories, in which case it would be mistake to not come with a good estimate.CPM helps come with the most realisitic schedules in such situations. I agree, it doesnt happen much often that one story has dependancy on 3-4 preceding stories but ofcourse, I am not talking about school projects but complex applications developed in fast-pace ,big-money , high-risk environments.
Johanna Rothman
author
Ranch Hand

Joined: Feb 10, 2005
Posts: 56
I said: That's because the critical path in software runs through people, tasks, and sometimes machines.

Originally posted by Ilja Preuss:


That's an interesting statement, and, frankly, I have no idea what it means.

Could you please elaborate? Perhaps you can give an example of such a critical path? Thanks!


I'll try. Imagine you're working on a database application. You're supporting one previous version, one version in development, and one version that's prototyping new functionality. You have 3 projects. You have one DBA. The critical path for all three projects (yes, they are independent for tasks), all have a dependency on this one DBA. How do you manage the dependency on the DBA?

Is that clearer or did I muddy the waters?

Johanna
Ilja Preuss
author
Sheriff

Joined: Jul 11, 2001
Posts: 14112
Originally posted by Johanna Rothman:
Imagine you're working on a database application. You're supporting one previous version, one version in development, and one version that's prototyping new functionality. You have 3 projects. You have one DBA. The critical path for all three projects (yes, they are independent for tasks), all have a dependency on this one DBA. How do you manage the dependency on the DBA?

Is that clearer or did I muddy the waters?


Much clearer, thanks!

We have experienced such critical paths through people in the past, mostly because not everyone was able to work on every part of the code, or so we thought.

We more and more ignore this constraint - after all, everyone *can* work on every part of the system, just not as effectively as the person who has the best knowledge about it. With the effect that our estimates aren't as accurate for now, but everyone learns more about more parts of the system, and the critical path has become even more trivial than before.
Ilja Preuss
author
Sheriff

Joined: Jul 11, 2001
Posts: 14112
Originally posted by Vikrant Sahdev:
I would have expected an example if you could prove your point.


You can't prove something by example. All you can do is disprove something by a counterexample.


It would be naive to imagine stories having no linkage or dependancy on previous stories


I'm not saying that stories never have dependencies.

What I'm saying is that, in my experience, a project can be broken down into stories in a way that there are very few, very obvious dependencies that you don't need to put a lot of emphasis on.

Joe Rainsberger has a nice example on this in this (non-JavaRanch-) thread: http://tinyurl.com/2txrjh


I am not talking about school projects


Me neither. My experience in the last six years is on extending a complex 1 MLOC project, with currently eight developers working on it. In my experience, size or complexity of the project has virtually no impact on this practice.
Vikrant Sahdev
Ranch Hand

Joined: May 31, 2007
Posts: 58
I think you explained my point : Johanna Rothman with a good example. Thats one example of running into dependancies. It can happen with resources as well actual tasks on the project. With resources, its more multi-tasking that raises the bottleneck issues. But with the tasks, its direct linkage that makes some tasks critical to completion for others to follow.
Ilja: I was trying to get some ideas on why CPM would /wouldnt be a good choice in agile software projects. Seems we can avoid applying CPM mostly bcos of how stories can be made independent but I guess there might be certain complex projects which can ask for CPM.
Thanks Johanna & Ilja for good & thoughtful discussion.
Ilja Preuss
author
Sheriff

Joined: Jul 11, 2001
Posts: 14112
Originally posted by Vikrant Sahdev:
Ilja: I was trying to get some ideas on why CPM would /wouldnt be a good choice in agile software projects. Seems we can avoid applying CPM mostly bcos of how stories can be made independent but I guess there might be certain complex projects which can ask for CPM.


I seriously doubt that it will ever be inherent complexity of the project that will ask for CPM in sofware development.

And even with the DBA, I don't think we need to accept that situation. I don't see any reason to not educate other team members to be able to take over those tasks from the DBA, for example - other than political reasons.
 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: Critical path approach !
 
Similar Threads
need help for critical path analysis in java
how to make sure project doesn't fail
unclosed string literal error
The case against Congress (India)
Data Structure