Let me start by telling you a little about my background and then get
into the opportunity that has presented itself which is why I am
seeking advice here.
I am a computer scientist with about 10 years experience in new
product design and development in an internal research and development
capacity. I have filled roles from systems engineering (interface
definition, requirements ellicitation and allocation, etc.) to coding
in ASM, C, C++, Java etc. both on bare HW such as ARM and PPC and on
top of commercial and open source RTOS's (Greenhills Integrity,
VxWorks, ecos) to Technical leadership of an IR&D team of as large as
10 people that contained mechanical, HW, application SW, and low level
SW (BSP) engineers as well as everything in between. Most of my
background is in the US DoD realm focused on Information Assurance
within a CMMI 3 organization. I have also been pretty heavily involved
in the organizational process improvement efforts as a SEPG member,
internal ISO 9000 auitor, etc.
I recently began working at an academic research instituton and have
been asked if I would like to act as the Configuration Manager for a
large multi year project with multiple subcontractors but my
organization is the prime contractor. The effort will involve roughly
50 engineers of different varieties dispersed geographically to
develop a rather large and complex system consisting of HW, SW, and
VHDL (sort of in between the two). So this brings me here. Not having
been a Configuration Manager before I am trying to decide if this is
something I would like to do and also be good at. I suspect that
although I have not done this sort of thing before a lot of the skills
I have developed will transfer well to this role and I am also a very
detail oriented and meticulous person which I think would help. I
would need to develop everything from scratch as there is no one in
this position at this point and the work has yet to begin, clean slat.
I would likely begin with what does existt, a Task Plan, and develop a
CM plan that attempts to address the project needs and defines the
tools and processes to be employed as well as clearly define the
responsibilities of all involved. So what I am looking for is some
light reading on the subject and any input from those of you who have
been doing this sort of thing for a while. I have begun compiling a
list of book which follows:
Implementing Configuration Management: Hardware, Software, and
Firmware, Fletcher J. Buckley
Principles of Configuration Management, M. A. Daniels
Configuration Management Principles and Practice, Anne Mette Jonassen
Hass
I have also set up an account on http://www.cmcrossroads.com/ to
attempt to get some further information. Anything furhter I might do?
I have to decide by Monday if I want to take this opporunity or pass
on it but I am sort of leaning towards giving it a shot as I think it
will be somewhat challenging and a change of pace for me. It also is a
high profile project within my organization and will afford me an
opportunity to get some visibility which is good, assuming I don't
screw it up, given that I am new here.
Thanks for any input
Apologies beforehand for not offering any advice ...
...
> I recently began working at an academic research instituton and have
> been asked if I would like to act as the Configuration Manager for a
> large multi year project with multiple subcontractors but my
> organization is the prime contractor. The effort will involve roughly
> 50 engineers of different varieties dispersed geographically to
> develop a rather large and complex system [...]
...
> I would need to develop everything from scratch as there is no one in
> this position at this point and the work has yet to begin, clean slat.
> I would likely begin with what does existt, a Task Plan, and develop a
> CM plan that attempts to address the project needs and defines the
> tools and processes to be employed as well as clearly define the
> responsibilities of all involved.
A bit worrying that they're placing a new guy defining something
crucial which they haven't been doing before. Did they no CM at *all*
before? Did they save backup copies of the source code on floppy
disks, or what?
(This is where I go off-topic.)
What kind of projects need a full-time CM, anyway? What does such a
person do all day?
I've been in teams of a handful of people where some of us have
defined how to do it, and then it has been a shared responsibility.
After that first step, CM is part of everyone's daily work, and
the tasks that remain are to:
- know which areas people are working in, so two different guys
aren't restructuring the same file in different ways (if they
are stupid enough not to check with the version control system
first).
- help solve tricky situations and tool problems
- resolve dependency/timing conflicts "No, *my* stuff is more
important, it should get merged first!"
- slap people on the fingers when they get sloppy
- invent improvements to the way everyone works
It's not obvious to me that this is the full-time job of one person.
Different people can handle the different parts. They need to be deep
inside the project, too -- not someone external who you talk to once a
month.
Maybe I'm too negative, but my experience is that if someone says "we
need one person doing foo", that person will inevitably define foo so
that it generates enough work for him.
Maybe it is like this? Once you say you need a CM, you suddenly need
one. Building becomes so hard that only that guy can do it;
understanding the branches or whatever you have gets complex; there
will be mandatory weekly reports which the CM has to fill in manually
...
I guess what my rambling is really about is this: when I hear the word
"Configuration Manager", I hear that I (as a programmer) should stop
worrying and leave all thoughts of such issues to that guy. I don't
want to do that -- CM is a tool for *me*, in my daily work.
/Jorgen
--
// Jorgen Grahn <grahn@ Oo o. . .
\X/ snipabacken.se> O o .
This is a new project and the only work done to date has been to
develop a task plan. The project is currently staffing up for a
January/Febuary start and they want a CM on board now befaore the rest
of the team starts so that they have everything defined by that point.
As of now there are some technical leaders in place for different
subsystems so they will have input as well during the initial
planning.
>
> (This is where I go off-topic.)
>
> What kind of projects need a full-time CM, anyway? What does such a
> person do all day?
Good question and I am not 100% sure I know the answer to what they
will do all day but it does seem to me that give a project of this
size and scope, ~50 engineers from various discilines and sourced from
~11 different companies working with ?? different languages and
technologies, some of your comments that follow seem to be a bit
problematic. I agree that each engineer needs to have a role in CM but
in a situation like this it seems to me that there may indeed need to
be someone to oversee all the activities related to CM on an ongoing
basis.
I tend to speak of SCM, actively contrasting
it to traditional CM, as its offspring and its
antithesis.
Marc