I’ve been working with Python/Zope/Plone for humm… more than 3 years
now. When I started, I had just left a small ISP where I worked as
sysadmin and php-master. We started a new company, me and 4 friends
from university, a guy that worked with me on the ISP and another guy
that worked with those 4 friends in a small web shop.
By the time we started, nobody had any Python knowledge, but everyone
could write some PHP. I think we were just like every other web shop
out there: a group of people trying to get some jobs done, everyone
trying to do it’s best but no notion of cooperative work. Everyone was
able to carry a project on its own, but for several reasons we haven’t
worked together on the same project except in extreme fuckup
cases. That was our notion of extreme programming. Program to the
extreme to try to revert the fuckup ;)
I’ve learned Python on my own, and I’ve learnt Zope quite
fast. Looking back, I can see how smart of a decision it was to drop
ZClasses right away. I think I only prototyped a small project in
ZClasses, say, for a week, and then never touched it again.
One of the main problems we had at that time was that I learnt way too
fast. While they were busy working on the orphaned projects from their
previous company, I was spending the whole day with Zope and
Python. Soon, I was the only person able to fix major fuckups, and the
only who could dig comfortably inside Zope. There was a huge gap of
knowledge that we didn’t had the time to fill, because we were all
busy doing real work. If we only knew that would mean slow death to
I’m pretty sure most of you have been through this, or are living it
right now. Just stop for a second and look around and you may
understand what I’m saying.
Now here I am. More than 3 years later, working for Enfold Systems,
a company in Texas. My closest co-worker lives 1000km from me, in the
same timezone. Another two in a timezone -3h from me, another in a
timezone -7h from me and another in a timezone +11h from me. I bet you
can imagine how hard it is to communicate within this
environment. Either you work late hours, or you send an email and wait
12h to get some feedback. Sometimes you just have no clue about what
everyone else is doing, unless you keep your irc client open and watch
the backlog closely.
Now, my question: is anyone out there experienced in working on this
kind of environment? How do you manage communication within the team?
And most importantly, how you spread knowledge within the team?
I can see the Ubuntu team, for example, facing a similar problem. It’s
even worse, because they are more and more far apart. Of course, they
have their own conference, but that only happens every couple
months. How do they manage those issues mentioned?
One thing I can say for sure. If you can identify you or your company
being on a situation like described above, you better take
action. Those modern days require dynamic teams, which can learn fast
and share knowledge. Everyone must be aware of what everyone else is
doing. The one-man-army cannot survive for long. Even worse for several
one-man-armies working inside the same company on the absence of a
general. Sooner or later they may turn against each other. And you may
find yourself alone, and jobless.