Steve Jobs Doesn't Put up Crap and Neither Should You
Since returning to Apple ten years ago, almost everything that has come out of Apple has been amazing. Not everything has been successful (the Cube) but everything has grabbed people's attention in ways no other technology company has. The primary reason is that Steve refuses to put out (or put up with) crap.
And neither should you or I.
Sadly most software you use, see or interact with every day is crap. If you imagine the oft-repeated quote, that 70% of all software projects fail or are cancelled before completion, sometimes you wonder if 90% of the rest should have been.
Working for Steve can be a nightmare for the unknowing. Like a perfectionist chef dropping dishes in the kitchen that don't meet his requirements Steve will tell you your life's work is crap. Of course by now he has surrounded himself with a staff that understands that it's not personal, Steve really cares about the whole project being the best it can be, and you better care as well. In many places having the CEO personally look at everything would be a disaster, but in this case Steve not only cares but has an eye for what is not crap and a willingness to push, prod, poke and even kick you into doing it the right way.
If everyone had such a vision (though I would hope a bit more tact, but maybe that's necessary) then the software and other technology we interact with everyday would work so much better.
For myself, I also hate crappy software, crappy tools and crappy methodologies; not being the CEO though means having to carefully find some way to encourage better development, better decision-making, and just better thinking in the place I am working. It's not easy.
In some places I have worked the enviroment was so poisoned that many developers just give up, produce crap, take their paycheck and go home. When managers get promoted after mis-managing projects that end in disaster (see my disaster posts) it's hard not to give in. Sometimes (been there twice in the last year) you just have to go elsewhere.
I worked at Apple in the year before Steve returned, and I know that accepting mediocrity was commonplace. My two favorite Steve quotes from around that era:
"The products suck! There's no sex in them anymore!"
"The cure for Apple is not cost-cutting. The cure for Apple is to innovate its way out of its current predicament."
At that point Apple was in danger of dying completely. During my tenure there Apple lost $750,000,000 in a single quarter. Since Steve returned the stock is up something like 1,000%. By refusing to release crap, he has turned Apple into a completely dominant company.
So what's the lesson for us mere mortal, non-CEO, possibly peon-ish programmers? Fight crap, fight mediocrity, fight the easy way out. Use innovative technologies (if they aren't crap). Fight stupid management if you have to. Don't let the broken down machine in your company break down your desire to produce excellent software.
If all else fails, go work at Apple and see what Steve thinks of your work.
Just don't produce crap.