Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 31 Aug 1995 07:27:00 -0700
From:      "Jordan K. Hubbard" <jkh@time.cdrom.com>
To:        "Rodney W. Grimes" <rgrimes@gndrsh.aac.dev.com>
Cc:        nate@rocky.sri.MT.net (Nate Williams), hackers@freebsd.org
Subject:   Re: /etc/disktab and stuff 
Message-ID:  <10050.809879220@time.cdrom.com>
In-Reply-To: Your message of "Thu, 31 Aug 1995 04:36:20 PDT." <199508311136.EAA10989@gndrsh.aac.dev.com> 

next in thread | previous in thread | raw e-mail | index | archive | help
> I wish.. but I've been trying to pound some common sense into the minds
> of all of FreeBSD about what you do and don't do in a release engineering
> branch of a tree.  It is starting to sink in, but it still has a long
> way to go.

Well, I think this bears further investigation later, but I only have
this to say:

If Rod or anyone else wants to pound sense into the project WRT
scheduling and such, the time to do so is NOT 2 WEEKS BEFORE RELEASE!
At that point, if we're still squabbling about what goes in then the
battle is already lost and you're the captain at the stern of a ship
going down, shouting rudder orders as the foredeck goes under and
looking like a complete idiot.

This is not effective management.  If Rod or anyone else REALLY, TRULY
and HONESTLY wishes to effect the release schedules then the time to
start rallying the troops and shouting orders was 3 months in the
past, not NOW!

I'm perfectly serious.  A release isn't about 4 months of sort of
muddling along like two laconic farmers in a field discussing the
weather ("Ho hum.  We have a release coming soon, don't we?"  [long
pause] "Yup" [long pause] "Gonna be a big one" [long pause] "Yup")
followed by 3 frenzied weeks of activity as everyone rushes around and
Rod climbs the local water tower with his scoped Mannlicher-Carinno to
take pot shots at anyone not rushing frantically in exactly the right
direction.

This is not project management and anything Rod says to the contrary
here is, I hate to say it, complete fertilizer.  He's trying to look
effective by running around slamming doors and making a lot of noise
in the barn about the proper raising of horses, but all the horses
already escaped 3 months ago and are well into the next county by now.
This is just not how it's done and it's utterly ridiculous to pretend
that it is or that we can salvage things by acting like a release team
at the very last minute.  I'm reminded of a couple of 5 year old girls
covered in lipstick and mom's jewlery, pretending to be grown-up in
front of the mirror.  We can pretend, but that doesn't make it so.

Yes, we started 2.1 with the best of intentions.  We had meetings, we
discussed features, we even tried to lock down a tree in preparation.
But we still missed that most fundamental ingredient, the lack of
which rendered the rest entirely moot: CONSISTENT FOCUS.

What do I mean by that?  I mean an awareness *all through* the release
cycle of just what we were doing to get to the release day.  We (and I
do include myself) instead spent the time muddling around with many
different things, got facinated by the occasional cool feature in
-current and dropped everything to go look at it or occasionally just
got bogged down in just the most ridiculous political wrangling over
some petty issue and wiped out everyone's productivity for weeks at a
time.  Now we have a release due very shortly and the usual panic
reaction has set in.

I have been with this project for 4 major releases now, actively
involved in at least 2 of them, and I see this as a consistent
pattern.  A couple of weeks of rest following the previous release, 6
months of general dozing and puttering around with bursts of intense
effort and then a final month where everyone freaks out when they wake
from their Rip Van Winkel sleep and say "MY GOD!  It's been 6 months
since the last release!  We need to do another one RIGHT NOW!!"

It doesn't matter if we had regular meetings every month for the
previous 5 months and in every meeting said "everyone remembers the
release coming up in {5,4,3,2,1} months time, right?  RIGHT?"
([chorus] "Yes yes!  We're not stupid!  We're on it!")  We still don't
ACT any differently!  We leave the meeting and it's really as if it
never happened.

This leads me to pose two alternatives, and frankly I'm still not sure
which one is "most correct" though my preference is pretty plain:

1. We start actually operating like a real team inside a real company
   where tangible progress towards each goal is seriously measured at
   each milestone point by management types who make it their sole purpose
   in life to worry about such things.  Various heads also roll if they've
   been day dreaming or absent at any point in the project, not just at
   the very end when it's time to punish the innocent and praise the guilty
   because everything has gone wrong.  In a "real team" you need to sit down
   with your manager every week while he goes over your little goal chart to
   see what your team has missed and what it's made, and if it's missed
   lots of stuff you get the whole "I'm very disappointed" number and
   have to go back to your team feeling like shit and upset that though
   it really wasn't your team's fault that their development machines were
   scrambled by the EMP from that little nuclear accident they had at the
   Navy base 3 miles away, your boss is right - you didn't make the goals
   and now the whole project timeline is going to suffer.  Only with this
   kind of committed, constant buy-in to the overall project timeline
   do the really big projects succeed in being "commercial quality."


2. We realize that model #1 isn't very much fun and the reason they generally
   paid us so much to be principle engineers at large companies (my own
   background) was mainly because it's a PAIN to be held so accountable
   for one's actions 40 or more hours out of every week.  It might, at times,
   feel kinda nice to be running the team and seeing your ideas slowly
   translated into reality, but it's still nothing more than a whole
   heap of work and late nights at your desk filling out progress reports
   so that your boss can do HIS job the following morning.

   Given that reality, we don't try to pretend that we're anything like
   that and instead just try to RELAX a little and enjoy some of the
   benefits of not being such a team.  We also fully understand that
   "worry" is not transferable or commutative and just because you're
   jumping out of your shoes with concern, you can't transfer it to
   someone else.  You can do that in a real company because somebody,
   somewhere is generally being paid to take on some of your worries
   ("HR!  My paycheck is late!  PAY ME NOW BEFORE I STARVE!!")  but not
   here.  Just because David, Rod or I worry about our release schedule
   doesn't give us the right to try and transfer some of that worry onto
   others and I'd say a great majority of our problems have come out of
   such misapprehensions that we could.  That needs to change, and
   if we take this option then we need to start treating each other more
   like friends and less like each other's managers.


Frankly, I don't think that model #1 is going to work, nor is the
"punishment cycle" that Rod likes to indulge in around this time any
help in even approximating it.  The problems aren't in the release
phase, they're well before it and the only way I could guarantee that
we didn't arrive at this predicament would be to start playing the
manager in #1 and I don't think that any of us would like that very
much, me least of all.

We say this a lot, but perhaps we should repeat it more often: We're
doing this for fun.  We can take it very seriously, but we're still
not a team of highly paid engineers working inside of Microsoft or
IBM, we're a volunteer project.  If we try to warp this group into a
defacto engineering team through intimidation or guilt-tripping then
this is not going to be anything but a very UNHAPPY group of
volunteers and we'll have killed the golden goose in an attempt to get
all the eggs out at once.

I vote for option #2.  Let us treat this project seriously and try to
make a success of it, but let us also not totally lose our perspective
in the process.  In the typical definition of such things, I am not a
manager, you are not a team, this is not a project.  We are a group of
hobbiests that have SOME of the characteristics of all of the above,
but that doesn't make it the same thing and the distinction is quite
an important one.

Thank you.

					Jordan



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?10050.809879220>