raganwald
Monday, July 25, 2005
  Heresies, Episode I
Dear reader, you are an intelligent person. So I'm going to save us both some time and skip several paragraphs where I regurgitate what consultants and books on creativity have said for decades, namely that there's a benefit to thinking about things that might be very, very wrong.
Though the wind is not made by leaves flapping, as some children guess, the theory is sufficiently profound that it should not be dismissed out of hand. In fact, disassembling erroneous concepts is one of the best ways to find new ideas.
Nicholas Negroponte, Creating a Culture of Ideas
I'll also skip the part where I list the number of things that were known to be very, very wrong and turned out to be right.
The statements that make people mad are the ones they worry might be believed. I suspect the statements that make people maddest are those they worry might be true.
Paul Graham, What You Can't Say
And so after taking several paragraphs bragging about how much writing I was going to skip, here are the ground rules for this little creativity game:
  1. Find the extremes. We're interested in the outliers, the data points and ideas that live in the fringe. If somebody says that Extreme Programming works in 98% of the organizations that adopted all of its practices for a complete project, forget about what those 98% can teach us. Don't even argue with the number 98%. But those 2% that still failed... What's up with that?
  2. Play the ball, not the (wo)man. Disregard the author of any source I quote. This works both ways: if you respect the author, don't forget they may be wrong. Or right. Or it doesn't matter, because the benefit is in thinking about the idea, not patting yourself on the back for agreeing with or disagreeing with someone else. And this is really the same point: Popularity is irrelevant. Disregard whether an idea is popular. You may be suspicious of anything popular. Let go of that. Again, the benefit is in thinking about the idea, not patting yourself on the back for agreeing with or disagreeing with someone else.
  3. And finally... create extremes. Become a reductionist. Embrace the Tar Pit. Reject postmodernism. Look at an idea. Take one element of it, right or wrong, good or bad. Preferably wrong (see above). Ask yourself: "if this were not just true, but universally applicable, what would that mean?"
Ok, so here is the first heresy: software architecture sucks wind. Or blows chunks. It's resume-driven design.
What do you think?

Labels:

 

Monday, July 18, 2005
  Code speaks for itself
The vast majority of the world won't read long treatises. People will however copy and paste your code. Thus, in addition to good well-designed specs, we also need good samples and documentation.
Koranteng Ofosu-Amaah
 

Friday, July 15, 2005
  Great Reasons Not to Work on Your Idea
"It's been done before"
"The market is crowded"
"There are free alternatives"
"Nobody's making any money off it"
"It isn't Enterprise-y"
"Nobody's funding companies in this space" and/or "It isn't a space"
These are all excellent reasons to procrastinate another year. Absolutely no-one will blame you if you don't get started on your idea, especially if you don't even mention that you have an idea.

Meanwhile, in another part of the forest...
"Yes, similar services already exist. That never stopped me before. I'd like to point out that Fog Creek has been doubling in revenues every year mostly thanks to bug tracking software, and it's not like we invented bug tracking software."
Joel Spolsky
So, if a fellow with a blog can be successful with bug tracking software, what's holding you back?

Labels:

 

Friday, July 08, 2005
  Why You Need a Degree to Work For BigCo
Hello applicant:

I’m very sorry, but I don’t have good news about the job opening here at BigCo. We really liked meeting you, but the bottom line is that you don’t have a degree from the right kind of University.

——What’s that you say? You have learned an awful lot about writing software during the four years that you weren’t carting textbooks around the campus? My dear applicant, thanks for pointing out the obvious.

I can read, you know. I was impressed by the list of projects you have completed. I even took an extra thirty seconds to Google your name and enjoyed the screen shots and links on your home page.

But nevertheless, University teaches you things above and beyond how to write code. And that’s what we need here at BigCo.

——I beg your pardon? You think that you have learned just as much about communication, teamwork, and project management from shipping software in small teams as you would have learned completing coursework?

Please don’t take this personally, but I need a moment to chuckle. Ok, I’m done. University isn’t about communication, teamwork, or project management. If you happen to learn those things, that’s a bonus. I was thinking of something else.

——Look, I admire your enthusiasm, but if you’d let me do a little of the talking I could tell you what we need. But since you bring it up, no I wasn’t thinking of any of that Computer Science stuff.

Just in case you’re thinking of referring any of your friends to BigCo, please let them know that if they learned why S, K, I, and Y are the most important letters in the alphabet, they need not apply. Ever.

To paraphrase Eric Beck, “At either end of the educational spectrum there lies a hacker class.” And we are not interested in hackers, even great hackers. We need those middle of the spectrum folks who are going to live in the suburbs, commute to our offices, and do a decent job for a fair wage week after week, year after year.



Quite honestly, the very fact that you passed on University tells us something disturbing about you. Quite obviously you aren’t stupid. And you knew that people like us would have a problem with your lack of education. But you believed in your heart of hearts that you could make up for this with excellence.

But you know what? That same attitude might have you think “It’ll look bad if I quit this job in less than five years, but I’ll make up for it.” That kind of attitude makes you a little fearless. And while we try our best to build a decent working environment, we like our people to be just a little afraid of leaving the nice security blanket we give them.

This may come as a surprise to you, but we’re looking for people who are looking for us. Of course we know that the educational component of University is a waste. We wouldn’t have it any other way.

Like hazing rituals and wearing dark suits to work in August, attending a certain kind of University is a statement that you want to belong, that you know there is no practical purpose to the exercise but that you are prepared to make the sacrifice just to fit in. And you, dear applicant, would not fit in.

Let me stress this point about what kind of University. We aren’t talking about some aerie faerie place where you build robots or spend your free time writing business plans. Those places exist to skim the cream off the top so we can hire a plain glass of 1% milk.

As a matter of fact, the kind of University we like discourages you from dreaming about the future and keeps your feet firmly planted in the ground. For example, our favourite institutes of higher learning send you to work for companies like ours on work terms. This provides us with cheap labour and has the pleasant side-effect of discouraging the more creative undergraduates from wasting everybody’s time by coming to work for us.

——Look, I really have to go, and I don’t want this call to end on a down note. There are lots of happy people in this world, and most have never even heard of BigCo, much less come to work here. So please consider this a redirection instead of a rejection. I know that’s trite, but it’s no less true just because it has a memorable rhyming form.

It’s not you, it’s us. The plain fact is, you wouldn’t be happy here. So buck up, look around, and see if you can get yourself into something a little more early stage. Consider starting your own company.

Because quite honestly? I’d read your business plan any day. Your résumé would look better on top of a funding proposal than under a cover letter.

Good luck out there.

Labels: ,

 

Reg Braithwaite


Recent Writing
Homoiconic

Share
rewrite_rails / andand / unfold.rb / string_to_proc.rb / dsl_and_let.rb / comprehension.rb / lazy_lists.rb

Beauty
IS-STRICTLY-EQUIVALENT-TO-A / Spaghetti-Western Coding / Golf is a good program spoiled / Programming conventions as signals / Not all functions should be object methods

The Not So Big Software Design / Writing programs for people to read / Why Why Functional Programming Matters Matters / But Y would I want to do a thing like this?

Work
The single most important thing you must do to improve your programming career / The Naïve Approach to Hiring People / No Disrespect / Take control of your interview / Three tips for getting a job through a recruiter / My favourite interview question

Buy Raganwald a Coffee
If you enjoy reading my weblog, please consider buying me a Darkhorse Double Espresso, for just $3.15 Thank you!

Management
Exception Handling in Software Development / What if powerful languages and idioms only work for small teams? / Bricks / Which theory fits the evidence? / Still failing, still learning / What I’ve learned from failure

Notation
The unary ampersand in Ruby / (1..100).inject(&:+) / The challenge of teaching yourself a programming language / The significance of the meta-circular interpreter / Block-Structured Javascript / Haskell, Ruby and Infinity / Closures and Higher-Order Functions

Opinion
Why Apple is more expensive than Amazon / Why we are the biggest obstacles to our own growth / Is software the documentation of business process mistakes? / We have lost control of the apparatus / What I’ve Learned From Sales I, II, III

Whimsey
The Narcissism of Small Code Differences / Billy Martin’s Technique for Managing his Manager / Three stories about The Tao / Programming Language Stories / Why You Need a Degree to Work For BigCo

History
06/04 / 07/04 / 08/04 / 09/04 / 10/04 / 11/04 / 12/04 / 01/05 / 02/05 / 03/05 / 04/05 / 06/05 / 07/05 / 08/05 / 09/05 / 10/05 / 11/05 / 01/06 / 02/06 / 03/06 / 04/06 / 05/06 / 06/06 / 07/06 / 08/06 / 09/06 / 10/06 / 11/06 / 12/06 / 01/07 / 02/07 / 03/07 / 04/07 / 05/07 / 06/07 / 07/07 / 08/07 / 09/07 / 10/07 / 11/07 / 12/07 / 01/08 / 02/08 / 03/08 / 04/08 / 05/08 / 06/08 / 07/08 /