[LA.pm] contrasting London and LA

Benjamin J. Tilly ben_tilly at operamail.com
Fri Aug 18 18:07:26 PDT 2006


"Adam Pisoni" <apisoni at shopzilla.com> wrote:
>
> Ben,
> 
> I concur on Perl being best for teams of really smart people.  In 
> my  experience, one junior programmer can more than do his/her 
> weight in  damage for a long time to come.   We just fixed a bug on 
> our site  last week caused by an engineer who was let go of 2 years 
> ago.     That's why its even MORE important when hiring Perl 
> programmers that  you hire very skilled engineers (even if their 
> not Perl gurus).

I think our policy is to blame all bugs on the person who
most recently left the team.  Right, Eric? :-)

Based on lots of theory, I believe that a good solution to
both problems is to use lots of code reviews - don't let
any code go into production without having it reviewed.
This both limits damage from junior programmers and causes
lots of mentoring to happen.  Which also means that junior
people don't remain junior for long.  There are other
benefits, for instance IBM's research indicates that code
reviews are the most cost effective form of QA.

But as great as the theory is, I don't have much practical
experience with that approach.  And there are drawbacks.
Primary among them being the fact that many programmers
will get upset when their code is reviewed by someone else
in detail.  Plus the visible overhead is hard for a lot of
people to swallow.  Still I'd like that environment.

> Do we know anyone who's worked in a team of Ruby, Python and/or PHP 
>   engineers to see if they have similar sentiments?

Important caveat.  Do we know anyone GOOD who has worked
in those languages to see what their sentiments are?
There are lots of programmers out there.  Most aren't
very good.  I'm only really interested in the opinions of
the good minority.

PHP in particular attracts lots of bad programmers.  Not
their fault - it comes with being the most popular entry
language for non-programmers who want to do cool stuff.
A few years ago Perl suffered from the same phenomena.
(Still does to some extent, but not as badly.)  That
isn't to say that there aren't some really, really good
PHP people out there.  There are.  But I'm going to
discount anything I hear from a PHP programmer until I
get convinced that they know what they are doing.

In fact we do have someone who can offer an opinion.
Robert, speak up.  I understand that you've been working
in Python at Google.  That's relevant experience.  Say
something. :-)

> Thanks,
> Adam

Cheers,
Ben

> On Aug 17, 2006, at 3:49 PM, Benjamin J. Tilly wrote:
[...]
> > Ah heck, since I'm responding, let's wander off to talk about a  
> > question that Nicholas raised.
> >
> > About mentoring new programmers.  One problem with Perl in  
> > particular is that Perl is very well suited to working with small 
> >  teams of very good people.  You want your team size to remain 
> > small  enough that communication overhead doesn't destroy 
> > productivity,  and also small enough that you can depend on 
> > everyone having enough  personal discipline to avoid doing some 
> > of the spectacularly stupid  things which Perl allows you to do.  
> > However such teams have very  little room for including and 
> > mentoring junior programmers.
> >
> > By contrast a language like Java is geared towards having larger  
> > teams of less productive people.  In that kind of environment you 
> >  simply cannot insist that each and every person be top notch.  
> > And  once you've accepted that fact, it is much easier to work 
> > junior  programmers into your team, and therefore is easier to 
> > mentor  them.  Oh, and a side benefit, there wind up being more 
> > Java jobs.
> >
> > Incidentally this is not meant as a slam against Java - it seems 
> > to  be a deliberate design decision.  If you're going to have a 
> > large  team work together, you need to limit the damage that one 
> > bozo can  do.  Those barriers also limit productivity, which in 
> > turn pushes  team size up.  And, of course, once team size 
> > reaches a certain  point, you need to organize it to avoid having 
> > too many lines of  communication out of self-defence.  (Else, as 
> > Brooks noted, people  wind up wasting more of each other's time 
> > than they can personally  contribute.)  At which point 
> > productivity drops even further.  But  now you can scale pretty 
> > well - add enough people and you can get a  lot of throughput.
> >
> > In Perl teams that I've worked on, by contrast, the goal is to 
> > get  as much done as possible with a small team.  This philosophy 
> > is  *great* for a startup since a good small team of highly paid 
> > people  is a lot cheaper and faster than a large team of less 
> > well paid  people.  I haven't personally experienced it in the 
> > context of a  large company, but if I stay at Rent long enough, 
> > I'm sure I'll  find out.
> >
> > Cheers,
> > Ben
> >
> > PS Like everyone else, we are looking to hire another Perl 
> > engineer  and another QA person.

>



More information about the Losangeles-pm mailing list