

Programmer Passion: An Enterprises Most Useful Yet Repressed Advantage - latch
http://openmymind.net/2010/10/7/programmer-passion

======
gvb
Tremendously good quote:

 _If your existing, potentially expensive and off the shelf solution, was any
good then you wouldn’t need to mandate its use._

There have been discussions on HN of what characterizes (in a derogatory way)
"enterprise software". The quoted sentence captures in a nutshell the
discriminator between "good software" and "enterprise software".

FWIIW, I wrote down my thoughts on _why_ "enterprise software" sucks:
[http://jerryjousting.blogspot.com/2010/09/three-ninety-
perce...](http://jerryjousting.blogspot.com/2010/09/three-ninety-percents-
open-source.html)

~~~
kenjackson
I personally think its a horrible quote and seems to rely on fundamentally not
understanding enterprises in any meaningful way.

And its simply a cop-out to say that if what he suggests then hire better
programmers (because practically, you probably already tried to hire the best
programmers you could).

I love the "empowering dev" perspective, but with no data to back it up, and a
very naive sounding post that didn't even, in passing, mention a couple of
reasons why such mandates happen (and effictively exist at companies like
Google and Facebook) it comes off as completely not credible.

~~~
gvb
I spent 24.8 years in a big company (sold three times "up the food chain"
during that time - after the last sale, I made it a serious goal to not make
it to my 25th anniversary). I've lived in an "enterprise" as it went from
fairly entrepreneurial (founded by Bill Lear
<http://en.wikipedia.org/wiki/Bill_Lear>) to stifling (PCs weren't locked
down, but having unauthorized software was grounds for firing... and getting
software authorized was a like a byzantine quest for the Holy Grail).

 _And its simply a cop-out to say that if what he suggests then hire better
programmers (because practically, you probably already tried to hire the best
programmers you could)._

That is dead on in my experience, but from a different angle. The best
programmers aren't interested in working for a locked down stifling enterprise
- witness the exodus from Sun - so enterprises _cannot_ hire them. The
enterprise I left lost a lot of good engineers over the past couple of years
and have not had much success replacing them.

As companies morph into enterprises, the Japanese proverb comes into play: the
nail that sticks out gets hammered down.
<http://en.wikiquote.org/wiki/Japanese_proverbs> The result is they lose most
of the above average people and only retain average and below average people.
The result is their average is below average.

pg talks about this in _You weren't Meant to Have a Boss_
<http://www.paulgraham.com/boss.html> (skip forward to two paragraphs before
the section "Programmers").

~~~
spitfire
Bill Lear? Which company? You can't just throw out a name like that and not
fill in some details.

~~~
gvb
My job history...

Background: Lear Developments created the Instrument Division in Grand Rapids,
MI. Lear and Siegler merged, creating the LSi conglomerate.

The Instrument Division in GR spun off another division in Zeeland, MI that
made the "Mailmobile", an automatic guided vehicle (AGV) that followed a
phosphorescent "trail" on the floor. While I was in college I worked there and
hired on full time after graduating.

While I was there, that division was sold to Bell & Howell, then Litton. There
was a lull in business (layoffs, no interesting projects, y'know), so I quit
and went to work at the mother division, which was still part of LSi. They had
fun stuff to work on.

A couple of years after hiring on, LSi was bought by an investment company
(Forestmann Little) and the Instrument Division was sold to Smiths Industries.
It remained SI[1] for about 15 years. About three years ago, the avionics
portion of Smiths was sold to GE.

Bill Lear was an entrepreneur, big time. Thinking back, while I signed on
several years after Bill Lear was kicked out of LSi, the entrepreneurial
spirit was still alive there. We were creating novel interesting products
(e.g. the first solid state crash survivable flight data recorders). As time
went on, the division became less entrepreneurial and more enterprisal (to
coin a word ;-).

The Dilbert Moment[2] was when the VP of engineering called a meeting of all
the engineering departments and told all of us that we weren't going to be
writing software or designing hardware any more. Instead, we were going to be
a Tier 1 Systems House.

[1] Side note, my buddies registered si.com, which Smiths ultimately sold to
Sports Illustrated at a pretty nice profit. My buddies didn't even get a
"thank you." :-/

[2] One of my favorite Dilbert comic strips:

1\. PHB, pointing to PPT slide: "We'll save money by outsourcing our I.T.
function."

2\. PHB, pointing to PPT slide: "Then we'll save more money by replacing our
outsourcing with fulltime employees!"

3\. Wally: "When it's time for us to panic, will there be a warning sound, or
was that it?"

~~~
spitfire
Sigh. Isn't this always the case. Good entrepreneurial spirit gets crushed as
corporations grow. We need more Bill Lears and Burt Rutans in this world.

I chuckled out loud when I heard Tier 1 Systems House. Thanks for that.

------
strlen
It's somewhat of a chicken and egg problem: if you don't give programmers the
ability to choose their tools, you can't hire top talent; if you can't hire
top talent, you can't give programmers the ability to choose their tools.
Recruiting is also a zero-sum game: if you don't hire the best, your
competitors will. That means if technology is an enabling factor in what you
do (it doesn't have to be your core competence), empowering programmers is a
competitive advantage.

I was at CUFP (Commercial Users of Functional Programming) recently where I
had a conversation with Yaron Minsky of Jane Street. He mentioned that due to
their use of OCaml (and being one of the few places in their industry where
software engineers are not treated as second class citizens) they have a much
higher quality of not only hires but applicants. He mentioned a job listing on
a caml mailing list yielding a fairly small number of resumes, but a much
higher percentage of these resumes translated into phone screens, on-sites and
finally hires. I am not sure I'm allowed to disclose the percentage, but it's
a fairly incredible number compared to what I've seen elsewhere; even the
people they passed on, were of high quality.

They are effectively choosing "the best of the best". If someone is willing to
learn spend the time to learn a non-mainstream language (this used to be Ruby
and Python in 2004, but now they're Haskell/OCaml/Scala, CL/Scheme/Clojure,
Erlang; this may change again, I see at least one of Scala, Clojure or Erlang
becoming mainstream) -- and I am talking about actually learn, beyond "fizz
buzz" -- chances are they have the passion and the work ethic to be a good
programmer.

Of course this isn't a bijective map: there are good programmers who aren't
interested in non-mainstream languages (in many cases they have highly
specific knowledge e.g., machine learning where the language used doesn't
matter as much), but I've yet to see someone take the time to learn Haskell on
their own (without being forced to do so for a university course) who wasn't a
good programmer: they may not be best of the best or a good fit for every
position, but they are certainly not the kind of person you're going to regret
bringing on-site to interview.

~~~
tomjen3
>I see at least one of Scala, Clojure or Erlang becoming mainstream

I doubt that, if only because they are so foreign to most programmers.

That said I would love for a Lisp language to become mainstream again.

------
bretpiatt
Passion being the key to success is not limited to programming. If you love
what you're doing you'll give it everything. This could be programming or
carpentry.

If you are doing what you're doing just for the paycheck you'll do the bare
minimum required to achieve your desired performance level (i.e. some may
still work hard enough to get an Outstanding rating to get paid more $ but
hate what they do).

This is the key thing I've learned to look for in hiring.

~~~
gacba
Success in the Enterprise is dictated by throughput and repeatability, not in
coolness of the solution. It's unfortunate, but the nature of the beast. They
want their batch reports run on time, every night, and come out 100% accurate.

That's not sexy, but it helps them make $. The end.

~~~
tomjen3
This is a common misconception: they make money until somebody else comes by
and beat them with tech that outclass their own.

The issue isn't that using better tech is better, but that it is better for
the job security just to go with whatever everybody else does - then if
something goes wrong, you can't be singled out for blame.

~~~
igrekel
I agree that it can be a competitive advantage but it is rarely because of the
technology itself, it is because of the change in business it enables.

But there a lot of software used in an enterprise that is not a competitive
advantage. You could argue that it could become an advantage but often the
advantage would be marginal so you're better off working on where you can get
significant gains or advantages. To see these opportunity, you need to know
your business extremely well, you have to be passionate about the business
too, not just technology.

------
wallflower
> Don’t mandate stacks, languages and frameworks.

I know someone who had to put his job on the line to get use of Spring vs
heavyweight J2EE approved. Seriously. There are entrenched forces who will
spread disinformation if it threatens their comfort zone. A corporate
environment is one where J2EE is just another checkbox on the thousand-item
RFP.

------
edw519
Nice rant, but too bad that OP probably hasn't heard some of the more
reasonable counter-arguments and understood their logic. Just a few
"enterprise axioms":

    
    
      - Stuff must work consistently, regardless of who works there.
      - All data and programs must satisfy corporate audit requirements.
      - All data and programs must be backed up and restorable.
      - All technology must be supported, no matter what.
    

I've seen all kinds of creative solutions to enterprise problems that didn't
satisfy these axioms. And you know what happens? Something goes wrong and no
one knows what to do.

That server under Joe's desk with those cool spreadsheets just crashed and no
one ever backed it up. The nifty little Ruby app that Sue put together; she's
gone and no one else knows Ruby. The open source web server just crashed and
no one is to blame because there is no vendor to blame. The nine new kinds of
smart phones that different sales guys like but no one knows how to support.

It goes on and on. Creative people get creative. Cool solutions help. Until
they don't help anymore. Because the costs suddenly outweigh the benefits.

And one more dirty little enterprise secret than many creative people
overlook: you can solve most problems with many different tools. Sure the old
tools may not be as fun, but they can still get the job done at a lower cost.

In an ideal world, we'd get to work will cool stuff AND help the enterprise at
the same time. But if the trade-off is our intellectual gratification vs. the
enterprise's profits, the enterprise will win every time; count on it.

~~~
gacba
If you are a passionate programmer that wants to work with new tools, sexy
frameworks, and other passionate developers...

 _...you should NOT be working in the Enterprise._

Unfortunately, the nature of the Enterprise will kill much of that because of
the 4 reasons laid out above.

~~~
lkrubner
Still, I wonder how much these limitations could be overcome by good
management? Yes, I agree, most enterprises are sluggish and bureaucratic and,
yes, there are too many meetings and everything gets decided in a committee
and innovative ideas usually get killed by those who are protecting their
territory - but isn't all that just a sign of bad management? Isn't it a sign
of great management when large organizations mangage to operate as if they are
smaller and more nimble than they really are?

When it comes to technology, for sure, innovation often gets killed by those
whose job it is to support the infrastructure. But wouldn't good management
find ways to lessen the stifling effects of legacy systems?

~~~
vog
_> ... but isn't all that just a sign of bad management?_

Using the words of Tom DeMarco, it is first of all a problem with the
company's culture and atmosphere.

Of course manager can setup structures that encourage or discourage bad
behavior, but it's usually impossible for a single manager to change a whole
company's culture. However, a good manager can (and should) try to make the
best of the situation, that is, establish good communication with other
managers and trying in establish a good atmosphere in her/his own division.

So maybe it's all in the hands of the founders and the first managers to
establish a company structure that can both grow and stay healthy. It remains
to be proven whether this is possible or not.

Currently, the only method known to be working it to just keep your company at
medium size. Except for very few kinds of business, there's absolutely no need
to grow beyond a certain size.

