The more things change, the more they stay the same.
January 25, 2009
Does writing a parallel program change the way you manage a project?
Based on what I've seen, it will if you develop application without a strong up-front look at program design (architecture).
New technologies, such as graphic user interfaces a couple decades ago, seem to cause more grief for some teams than others. I know one team I worked with had a horrible time getting design and test right in a GUI world.
While multi-core application probably do not fundamentally change what we have to do to manage projects well, they add nuances to different steps.
What can be really annoying, is the nuances they add which may force you to reassess aspects of project management that you are weak on.
I think #1 here - is having a well architected program. I think this is a BIGGIE for many projects. As we increased clock rates, even poorly written programs tended to speed up. As we add cores, poorly written parallel programs won't speed up. Ouch.
A well architected program scales. A poor architected one does not.
Scaling is a name of the game going forward. Those who design to scale will outshine those who do not. Will it make them win? Depends. But when it does, it is going to represent change for those who have not figured out how to write scalable programs.
Will that be an all new approach? Or just doing what we said we were doing all along - writing good programs?