• Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other Pie Elite all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Campbell Ritchie
  • Jeanne Boyarsky
  • Ron McLeod
  • Paul Clapham
  • Liutauras Vilda
Sheriffs:
  • paul wheaton
  • Rob Spoor
  • Devaka Cooray
Saloon Keepers:
  • Stephan van Hulst
  • Tim Holloway
  • Carey Brown
  • Frits Walraven
  • Tim Moores
Bartenders:
  • Mikalai Zaikin

Critical path approach !

 
Ranch Hand
Posts: 58
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
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 ?
 
author
Posts: 14112
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
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.
 
author
Posts: 72
6
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

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
 
Ilja Preuss
author
Posts: 14112
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

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
Posts: 58
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
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
 
(instanceof Sidekick)
Posts: 8791
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
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.
 
Ilja Preuss
author
Posts: 14112
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

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
Posts: 58
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
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
Posts: 14112
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

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
Posts: 58
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
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
Posts: 72
6
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
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
Posts: 14112
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

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
Posts: 14112
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

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
Posts: 58
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
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
Posts: 14112
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

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.
 
Thanks tiny ad, for helping me escape the terrible comfort of this chair.
a bit of art, as a gift, the permaculture playing cards
https://gardener-gift.com
reply
    Bookmark Topic Watch Topic
  • New Topic