Peter's Gekko

Sponsors

The Lounge

News

Advertisement

Images in this post missing? We recently lost them in a site migration. We're working to restore these as you read this. Should you need an image in an emergency, please contact us at imagehelp@codebetter.com
A program manager should be an architect

What is an architect ? There are many definitions around, varying from "an elitist in an ivory tower throwing down incomprehensible documents" to "a developer more equal than others". In a previous post I quite boldly stated that an architect always should be a coder and nearly everybody seemed to agree on that. But an architect is more than just a coder. Constructing a building is not throwing an amount of bricks and timber on a heap, you need an architect who will split and organize the job in building walls, constructing the roof, laying the plumbing, etc. To construct software you also have to split the project into manageable parts. To get a separation and lineup of user interactions, concerns and dependencies you need a person who knows how to do that. And that's imho a good workable definition of an architect: somebody who gives a technical structure to the project. For this structure to be constructible the architect has to speak the same language as the constructors, he has to code.

In comes the program manager (PM). What are usually his roles ?

  1. Coach and motivate his team members
  2. Organize the work to be done
  3. Report to management

The first role is a matter of personality. The PM might be a total jerk but just one guy on the team with radiating passion and humor can boost the morale and productivity to unknown heights. He (she) does not have to be a technical wonder, just making the workplace a pleasant place is the wonder itself. No PM required.

The second role is the hardest. To organize the work you need to be able to split the work to give each developer a well defined part to work on. This is important for a "junior" or somebody new on the project to prevent them from drowning. But this is even more important for somebody I call the "over experienced developer". They have been everywhere and done everything. But on their way they forgot the main mantra of software development "keep learning" and still write software in the old DOS style. Their lines of code own the machine. In making their lines work they will change and adapt code all over the project. This may sound somewhat exaggerated but I have seen people like this singlehanded completely ruining a project. Several times. The role of the PM here is to restrict these people, give them a well isolated piece of work.

My main point is that to clearly separate the work the PM needs knowledge on how to do that in a technical way. In other words he has to be an architect.

So what to do with a PM who can't get along with his team-mates and doesn't understand architecture ? This leaves the third role. All that needs is a couple of Office macro's and a cell phone. Everybody can do that. So a good PM should have a social personality (having an Xbox might be enough) and be an architect (and thus be a coder). Which is a rare combination. Real good PM's are rare.


Posted 10-12-2007 10:02 AM by pvanooijen
Filed under:

[Advertisement]

Comments

Derick Bailey wrote re: A program manager should be an architect
on 10-13-2007 9:50 PM

I disagree with your 2nd role for the PM entirely, and partially with your 3rd role (the description of, anyway). See my response over at my blog for more info:

www.avocadosoftware.com/.../764.aspx

pvanooijen wrote re: A program manager should be an architect
on 10-14-2007 2:17 PM

Derrick

Good article which makes clear that the company you work for has their things better organized. My lists of tasks for the PM are those whis I observe over and over agaian over here. The combination of tasks is pretty hard, resulting in few good PM's. You are lucky enough to have two distinct people, a real architect besides an organizational guy, to fullfill these tasks. But still the PM has to understand a lot about architecture to communicate well.

But I disagree on the third role you have in store for the PM, that of being _the_ contact with the customer (See Derick´s post for detials). Imho it is quite important for the other people in the team being in direct contact with the customer themselves. To prevent things getting lost in translation. Where a good guidance of the PM helps a lot.

Derick Bailey wrote re: A program manager should be an architect
on 10-14-2007 6:36 PM

"a program manager needs an architect"  - 100% agreement on this.

Looking back at how I originally responded, I think I may not have been considering the different situations that some companies are in. I think I should have stated that the way my company is currently organized, is my ideal setting - where we have a distinction between PM and Architect. In situations where this isn't possible, and there is only one PM/Architect as the same person, then I would agree with your original statement that a PM should be an Architect should be a Coder.

I can see the benefit of certain members of the development staff being in contact with the customer - and this does happen in my company. I don't think the entire dev staff should be, though. Providing the smallest responsible set of contacts for a customer will help to ensure that communication is consistent between the development company and the customer. If the PM is translating things inappropriately, then they need to be trained better or have the Architect / assigned dev point of contact do the initial translation for the customer, or at least review what the PM is sending before it goes out.

pvanooijen wrote re: A program manager should be an architect
on 10-15-2007 3:05 PM

So we do agree :)

When it comes to contact with the customer I don't beleive in consistent communication, only in communication which works well. The kinds of interaction you need with your customers is so diverse it is hard to formalize that. Again the same, your company seems to have your things sorted out pretty well. The chance to review what is going out is great. I've seen far to ofeten a PM (or sales) promising customers the wildest things (often not hinderd by any knowledge on the matter) leaving the developper wandering how in earth he's ever going to implement that.

In the end it all boils down to good people (whatever their formal role) who know how to communicate. Not enough of them around. You're a happy  man to work in a place who has them.

Derick Bailey wrote re: A program manager should be an architect
on 10-16-2007 4:44 PM

it wasn't always this happy place, though... the history of this company has been plagued by the exact scenarios you talk about. Fortunately, as we have grown (from me being the 9th developer hired, to how having 40+ developers a year and a half later, and looking to double again) we've been able to bring aboard very strong leaders with a lot of experience to help correct the course and set us in the right direction. i just hope it continues to improve like this, as time goes by.

FYI for anyone that is wondering where such a dream job exists: http://www.mclaneat.com :)

Auto Modellista » A program manager should be architect wrote Auto Modellista » A program manager should be architect
on 11-14-2007 2:14 PM

Pingback from  Auto Modellista » A program manager should be architect

Paul wrote re: A program manager should be an architect
on 12-29-2007 9:18 AM

Sorry, if one examines PMBOK as well as leading edge PM universities, you will find that a PM is not a SME and that a failure in a project is when the PM believes they are the architect . . . . sorry to burst the bubble but no person is an island onto themself, it requires team work and bringing together a series of professionals

Priti wrote re: A program manager should be an architect
on 12-21-2008 2:10 AM

I agree with Paul, it definetly require a lot in bringing together a series of professionals and work as one cohesive team. At the end , Customer's expectation from the overall program needs to be met. Any leakages in knowledge transfer is protected by PM's. Architects are knowledgeable resources who must be put to work or bringing out best solution. PM doesn't need to be an architect but yes they should understand technology. PM with excelent grasp, memory and organization delivers successful projects

pvanooijen wrote re: A program manager should be an architect
on 12-22-2008 7:56 AM

OK. But I still stress my point that a PM should have the qualities of how to divide and conquer a project. Technical qualitiesof an architect. In case a PM cannot understand the architect he/she will loose grip.

Rob wrote re: A program manager should be an architect
on 12-28-2008 11:15 AM

You write about 'a project' then proceed to discuss 'the program manager'. Before debating what kind of person fulfills the role, it is important to define the role and thus far, it seems that the common mistake of confusing a program with a project has been made.

A Project Manager manages a project.

A Program Manager manages a collection of Project Managers who manage project which are part of a programme.

It is wonderful if an architect has the ability to understand and perform all program duties which relate to:

   * Programme Management Process

   * Programme Organisation and Governance

   * Programme Planning and Control

   * Benefits Management

   * Stakeholder Management

   * Management of Risks and Issues

   * Programme Assurance and Quality

   * Configuration Management

   * Internal Communications

   * Programme Accounting and Financial Control

   * Management of Scope and Change

   * The Programme Office

   * Programme Knowledge Management

   * Programme Management Maturity

However, in my experience around the world, 90% of techies who believe they can manage a program, lack the qualities required and are not even aware of most of what I've just listed above.

It's the nature of the beast :-)

pvanooijen wrote re: A program manager should be an architect
on 01-13-2009 3:38 AM

All I am saying is that a program manger should have a profound understanding of architecture to be able to manage a project well.

I am not saying that every architect should have all the qualities of a program manger.

A=> B

^B=>^A

^A=>^B False.

Denis wrote re: A program manager should be an architect
on 05-23-2009 4:44 AM

I have to say I agree with Rob, in that there seems to be some confusion here about the roles of Project Manager and Program Manager, which are very distinct and different roles in my eyes.

I disagree with point 2, that a Program Manager should organize the work to be done. A Program Manager should provide guidance to the Project Managers to facilitate them in putting their plans together, but it is Project Managers who plan and organize the work to be done, with the Program Manager managing dependencies between projects.

There is more information about what I think the different between a Project and Program Manager is on my blog here:

www.expertprogrammanagement.com

I can see that there is some advantage to the Program Manager having some of the qualities of an architect. It’s always good to understand how things work. Also, many of the problems I encounter when getting my programs up and running are structural problems within my program organization, and fixing these could almost be considered “architecting the program organization”

Denis

Add a Comment

(required)  
(optional)
(required)  
Remember Me?