Steve Yegge hits a homer: Your requirements are stupid.

August 12th, 2008 § 11 comments § permalink

Lately, I’ve been rumi­nat­ing on require­ments and require­ments man­age­ment (also known as dis­as­ter con­trol). I was actu­ally typ­ing some­thing up on this, but Steve Yegge hit the nail on the head — then he rammed it through the board and into the house next door:

Any­way, there you have it: the slightly expanded ver­sion of the email I sent that CEO guy. Gath­er­ing busi­ness require­ments is hokum. Hooey. Horse­shit. Call it what you want, but it’s a sign of orga­ni­za­tional (or indi­vid­ual) clue­less­ness. If you don’t already know exactly what to build, then you’re in the wrong busi­ness. At the very least, you should hire some­one who does know. Don’t gather busi­ness require­ments: hire domain experts.

Also, FWIW, here’s the hack­ernews dis­cus­sion. Here is a link from one of the com­ments point­ing to some­thing Linus once said about specs:

they’re dan­ger­ously wrong. Real­ity is dif­fer­ent, and any­body who thinks specs mat­ter over real­ity should get out of ker­nel pro­gram­ming NOW. When real­ity and specs clash, the spec has zero mean­ing. Zilch. Nada. None.

I think one of the com­ments also added some­thing spec­tac­u­lar — not­ing that “build­ing some­thing for your­self” is why so many open source projects flour­ish. If you’re build­ing some­thing use­ful for your­self — there’s a high chance that some­one else is going to want to A>Use it B>Buy it — “build­ing for your­self” is also in some ways, “keep­ing the vision clear”

One of the key con­cepts which seems to be the under­cur­rent to what he talk about is vision. You need some­one who can stand up and say “this is what the prod­uct is, does and where it is going”. You need that vision­ary who can clearly out­line what itch you are try­ing to scratch. In open source — that’s the project “core” — in busi­ness, it’s the CTO or founder. It’s always the per­son that had the itch, they’ve “walked a mile in the shoes” so to speak.

That vision has to be the core of both the prod­uct, and all of the require­ments — this “clar­ity of vision” (some might say “sim­plic­ity of vision”) is what makes so many projects and prod­ucts successful.

Sure — as you grow you’ll add fea­tures: You don’t want to stag­nate — but those fea­tures have to make sense — they have to mesh with the core vision of the prod­uct. You don’t add a source code man­age­ment ser­vice to say, twitter.

Why? Because even if 1 cus­tomer thinks “that it would be AWESOME” — you’re going to spend $X hours of engi­neer­ing time glu­ing a volvo on the side of your bat­tle­ship, and unless those $X hours are com­pen­sated by the amount of money the cus­tomer is will­ing to pay (it never is) you’ve wasted time, and mud­died the func­tion­al­ity and phi­los­o­phy of the prod­uct. It’s about as use­ful as a screen-door on a submarine.

When you’re think­ing about require­ments ask your­self this: If at the start, you can not describe exactly what your prod­uct does in under a minute — you’ve already got a prob­lem. If adding this fea­ture makes it even harder to describe/encapsulate the vision and capa­bil­i­ties of the prod­uct you’re rapidly run­ning towards wronger-than-wrong.

If you your­self would not use the fea­ture: Does it really make sense? When a cus­tomer requests a fea­ture — does it make sense for any­one out­side of them? Would you be bet­ter served by pro­vid­ing an API and an SDK?

This is the beauty of things like a clean API — you can keep the phi­los­o­phy and core of the product/project clean and empower your users to build any num­ber of things they want on top of your prod­uct. Keep it sim­ple, keep it clean. Empower your users to “mashup” as they need or want to.

Think of it terms of cook­ing: If you wouldn’t eat it your­self, in all like­li­hood your cus­tomers won’t like it, at best it will be mediocre. The best chefs taste and con­sume what they cook.

Right now I’m wish­ing Brian Fitzpatrick’s keynote from pycon: “You *can* Fool All of the Peo­ple All of the Time” was online in video form.

See also: THE TECHNOLOGY OBSESSION by S. Lott

The Abstract Cheetos Attack.

June 18th, 2008 § 7 comments § permalink

I need to write a CERT paper for this —

  • Name of Attack:The Abstract Chee­tos Attack
  • Type of Attack: Pass­word Vul­ner­a­bil­ity / Local Exploit / Brute Force
  • Known fix: Lack of Cheetos
  • Attack Vec­tor: Food[1]/Social Engineering
  • Exploit Details: It is pos­si­ble to deter­mine the most-frequently used let­ters on a given key­board on the target’s com­puter by pro­vid­ing the tar­get with a “friendly” pack­age of Chee­tos at some reg­u­lar inter­val, and then exam­in­ing, over time, the build up of dan­ger­ously cheesey residue on the target’s key­board. Armed with the most fre­quent key­strokes, it is pos­si­ble to per­form a reduced brute-force attack on the target’s account pass­word. Due to the reduc­tion in keys, it is pos­si­ble to grossly reduce the time and resources required to iden­tify the target’s pass­word. This attack also enables the attacker to deter­mine other per­sonal infor­ma­tion includ­ing fre­quency of hand-washing, like/dislike of said “Food” and fre­quency at which the tar­get cleans their clothes.

[1] Note that Chee­tos may not be clas­si­fied as “Food”

Sausage on the brain.

May 15th, 2008 § 3 comments § permalink

Man­del­braut: Ren­der­ing Sausages.

These are the ideas I get when I’m cod­ing and think­ing about food.

Pep Turds

May 6th, 2008 § 11 comments § permalink

I’ve finally been given the “gift of time” to work on the pro­cess­ing mod­ule PEP — when I was review­ing the text tem­plate, I ran across this:

— Leave the lit­tle Emacs turd at the end of this file alone,
includ­ing the form­feed char­ac­ter (“^L”, or \f).

I should really switch to a turd-friendly edi­tor. I think VIM or Text­mate are scat­o­log­i­cally disinclined.

The T in IT: Mr. T endorses Hitachi Gear

August 22nd, 2007 § 0 comments § permalink

Before I give the links to the videos, I want to give the typ­i­cal disclaimer:

Dis­claimer: The opin­ions expressed here are my per­sonal opin­ions, views, dis­cus­sions, etc. Con­tent pub­lished here is not read or approved in advance by HDS, my wife or any­one else for that mat­ter and does not — in any way — reflect the views and opin­ions, positions/etc of my employer. This is my per­sonal, largely python-related blog. Not my employers.

That being said: A few months ago, I dis­cov­ered (much by acci­dent) that HDS (Hitachi Data Sys­tems) has started a viral mar­ket­ing com­paign involv­ing Mr. T — yes, the man from the A-Team (whose face graced my lunch­box as a child). Note that mas­sive “lulz” were attained when watch­ing these.

With­out pass­ing judge­ment or in any way stat­ing a direct opin­ion, here are the videos, in order of creation:

For addi­tional amuse­ment, I will direct you to the Archivas (before we were bought by HDS) viral/spoof/etc video that made it to youtube, here.

10 Great Tips on How Not to Be the Obnoxious Newcomer in Your Workplace

June 25th, 2007 § 0 comments § permalink

10 Great Tips on How Not to Be the Obnox­ious New­comer in Your New Work­place: “You’ve just joined a new com­pany and are all fired up to change things—stat. While your enthu­si­asm is com­mend­able, you might want to pro­ceed slowly at first. It’s too easy for your help­ful (and very pos­si­bly dead-on) obser­va­tions and sug­ges­tions to be seen as crit­i­cisms and demands.”

My ques­tion: Can they do a fol­lowup, “how not to be the embit­tered cyn­i­cal old coot” or “How not to eye­ball new tech­nol­ogy with dis­may, dis­trust and a long sto­ries about how “you used to have declare vari­ables in the con­struc­tor back in the days and you loved it””?

(Via digg.)

On the Hobo Visitor Pattern.

May 29th, 2007 § 0 comments § permalink

Speak­ing of the Hobo:Visitor Design Pattern.

Zing of the Day

February 25th, 2006 § 0 comments § permalink

(Iron­Python pre­sen­ta­tion, dis­play­ing access­ing the CLR fea­tures in Python mak­ing win­dows and things in the UI)

Pre­sen­ter (Microsoft Employee): “What’s you’re favorite color?“
Peo­ple: “Blue Blue Pur­ple Blue… etc“
Pre­sen­ter: I’ll use green
Per­son in back (para­phrased): “Typ­i­cal Microsoft response to Cus­tomer requirements!”

Another Quote
Pre­sen­ter (Microsoft employee): The rea­son we called this CLR is because we… Oh, I’m being taped aren’t I? Uh, we used a cer­tain search* engine and found all ref­er­ences of Python + CLR pointed to IronPython.

* GOOGLE.

Apple Inside, best switch Video — Ever.

January 11th, 2006 § 0 comments § permalink

I won’t go into all of apple’s new offer­ings that came out yes­ter­day — if you missed them, then you have to have been in soli­tary confinement.

I am really excited about the intel lap­top (mac­book pro) — I’m under­whelmed by the name, but I am excited about the specs, and most of all, that if I can get my paws on one of them, I’ll be able to prob­a­bly com­pile a lot more Unix/BSD/Linux appli­ca­tions, and I think that long term, we’ll see a rise in vir­tual machine sup­port (and Wine sup­port) for the platform.

As a Developer/QA per­son, I’m really quite happy with the tran­si­tion. This might make get­ting more OS/X Python bind­ings and libraries into the core Python dist eas­ier, and actu­ally open quite a few doors.

Well, that and it has awe­some specs, and will play World of War­craft 100x bet­ter than my cur­rent box.

Mean­while, I saw this switch video on giz­modo. I spit coffee.

Lord Jobs… RISE!

Google KAI is the name of our SON

October 21st, 2005 § 0 comments § permalink

These peo­ple named a new­born Google. Google-Kai. wtf, over.

Where Am I?

You are currently browsing the Comedy category at jessenoller.com.