Songs of the Extremos

Lyrics by Doug and Rob Rosenberg, ICONIX
Copyright © 2001, 2002 ICONIX

Download a copy of the songs


Are you struggling to implement agile techniques, and in need of emergency assistance?

Our Agile Triage Workshop might be the answer!


For more really funny stuff check out Software Reality.

Click on the tabs to expand


"Imagine"

imagine there's no requirements. It's easy if you try
just a bunch of coders, reachin for the sky
imagine all the people, coding for today

imagine there's no schedules. It isn't hard to do
no silly project deadlines, no one supervising you
imagine all the people, coding hand in hand

you may say I'm an extremer but I'm not the only one
i hope someday you'll join us and make coding lots more fun.

imagine oral documentation. I wonder if you can
no need for UML diagrams. Just words passed, man to man
imagine just refactoring, playing in the sand

you may say I'm an extremer, but I'm not the only one
i hope someday you'll join us and make coding lots more fun.

"Hey Dude"

hey dude
your code smells bad
go refactor and make it better
remember
that tests are requirements
then you can begin
to make it smell better

and if you say you need design
hey dude
don't whine
make sure you don't put in
any comments

just code what you need today
then go
and play
remember the schedule
is the customer's problem

la la la la la, la la la laaaaaaa

hey dude
your code smells bad
go refactor and make it better
remember
that tests are requirements
then you can begin
to make it smell better

"UML Won't Write My Code"

(sing to the tune of "Can't Buy Me Love")

won't write my code
uml won't write my code
won't write my code
no, no, no, no

say you want me to use UML
i say it's a waste of time
i'd rather go by the code smell
Cause the code is the design
i don't care for UML diagrams
Cause UML won't write my code

won't write my code
UML won't write my code
won't write my code
no, no, no, no

you say you want me to document
well i'll tell you hell no
its a waste of time to document
i'm not afraid to tell you so
why the hell would i want to document
when i could be writing code
just writing code
cause its really all i know
just writing code
go, go, go, go

"Smell The Code, Jack"

smell the code, jack
and don't do design no more
no more
no more
no more

smell the code ,jack
and don't do design no more

woah baby, oh baby my code is so clean
it's the cleanest smelling code that you've ever seen...

"I Can't Get No Architecture"

sing to the tune of "satisfaction" by the Rolling Stones

i can't get no
architecture
i can't get no
architecture
cause i tried
and i tried
and i tried
and I tried
i can't get no
i can't get no

well I'm refactoring my code
yeah I'm movin' this and I'm changin' that
every time I get the urge
but I'm still sittin' here waiting for
the architecture to emerge>

i can't get no
no no no
hey hey hey
that's what I say

i don't need no
infrastructure
i don't need no
infrastructure
cause I tried
and I tried
and I tried
and I tried
i don't need no
i don't need no

when I'm posting to the newsgroup
and a man comes on and tells me
that I should not say YAGNI
but he can't be a man cause he does not write
as much C code as me

i don't need no
no no no
hey hey hey
that's what I say

"Chrysler Knows It Ain'T Easy"

sing to the tune of "The Ballad of John and Yoko"

we're not on the imagined schedule
the goal donor's been gone for a week
won't our faces be red
when the mainframes drop dead
chrysler's really gonna be up the creek
chrysler knows it ain't easy
they know how hard it can be
the way things are goin'
they're gonna cancel C3
think I'd better dust off the resume
the gold owner is getting real tweaked
some people say
the project's goin' away
ya know the mainframe's gonna die in a week
chrysler knows it ain't easy
they know how hard it can be
the way things are goin'
they're gonna cancel C3
everybody here is coding for today
cause we all know that change is free
last night someone said
don't write a thing down
we won't leave nothing for them but the code
project's goin south in a hurry
but I figure "hey, why be meek"
let's go to the press
and just claim success
we'll have four book contracts in a week
chrysler knows it ain't easy
they know how hard it can be
the way things are going
they're gonna cancel C3

"Yesterday"

yesterday
i refactored half my code away
i think i'll do it again today
oh i had fun on yesterday

suddenly
when i told my client change was free
they changed all the stories they told me
my requirements change so frequently

i tried to integrate my new code
but there's no way
i could get it done by five
so i threw it all awaaaaaaaaaaaaaaay
yesterday

"The Lond and Winding Thread"

sing to the tune of "The Long and Winding Road"

the long and winding thread
leads me straight
to your code
that you wrote sitting here
a long long time ago
you thought your code was clear
and then went out the door

many times i've read your code
and many times i've cried
i wish i had a diagram
because my brain is fried

but bugs still bring me back
to that same
piece of code
that you refactored here
many years before
then you stopped working here
a long long time ago

many times i've read your code
and many times i've cried
i wish i had a diagram
because my brain is fried

"Refactor"

refactor, yeah, yeah, yeah.
refactor, yeah, yeah, yeah.
refactor, yeah, yeah, yeah, yeah.

you say you wrote some code
and it smells pretty bad
your pair programming buddy
is lookin kinda sad

you just refactor
and then you're having fun
refactor
don't worry bout getting done

you've coded it ten times
but no one seems to mind
it passes unit tests
but its never been designed

so just refactor
cause its all about havin fun
refactor
cause software's never done, oooooooooooooh!

refactor, yeah, yeah, yeah.
cause if your code smells clean your client won't get mad.

doesn't matter when it's done
or even what it does
cause you're doin XP
and it's the latest buzz

so you refactor
cause you know you will be glad
refactor
and you never will be sad, oooooooooooooh!

refactor, yeah, yeah, yeah.
refactor, yeah, yeah, yeah.
cause if your code smells clean your client won't get mad.
cause if your code smells clean your client won't get mad.
cause if your code smells clean your client won't get mad.

yeah, yeah, yeah!
yeah, yeah, yeah!
yeah, yeah, yeah, yeah!

"8 Builds A Week"

livin in a timebox
guess you know its rough
gotta build every day, babe
even half baked stuff

build it, ship it
build it, ship it

aint got time for design, babe
8 builds a week

build it every day, babe
build it right on time
one thing i can say, babe
no time for design

refactor it, test it
build it, ship it
aint got time for design, babe
8 builds a week

"A Day in the Life"

i read the code today oh boy
half of my classes have just gone away
refactored by some other pair
but i don't mind
i wasn't really gonna need em anyway
and i'll just rewritem in the morning

i read the code today oh boy

"Big Projects Got No Reason to Live"

(sing to the tune of "Short People" by Randy Newman)

big projects got no reason
big projects got no reason
big projects got no reason to live
if you got too many coders
to fit in a room
you know that your project
is destined to doom
so we don't want no big projects round here

big projects got no reason
big projects got no reason
big projects got no reason to live
when you smell the code

you know you got to inhale
we like small projects
cause xp don't scale
so we don't want no big projects round here

"I Can't Code Alone Cause I Need My Pair"

sing to the tune of "She's Got a Ticket to Ride"

i guess i'd better go home
its time to go play, yeah
that pair programmer i had
called in sick today, yeah

i can't code alone
cause i've tried
gotta have my pair by my side

i can't really write any code
cause i need my pair
cause i need my pair

when i'm refactoring code
he always sits right, always sits right by me
when we're runnin our unit tests
he always sits right, always sits right by me

i can't code alone
cause i've tried
gotta have my pair by my side

i can't really write any code
cause i need my pair
cause i need my pair

"Code Together"

sing to the tune of "Come Together"

you got: no requirements
you got: no schedules
you got: pair programmers
you got: lots of pepsi
you got: goal donors tellin you stories
one thing i can tell you is you can't code in threes
code together
right now
with xp

you got: ree-factoring
you got no documentation
you got: cases of pepsi
you got index cards up to your knees
go ahead and change that cause you know change is free
code together
right now
with xp

"We're All Extremers"

sing to the tune of the Monkees - "I'm a Believer"

we're coding face to face
cause we're all extremers
not a trace
of written design
there's just code
oooooooooh
we're all extremers
cause the code is the design

"Yagni"

sing to the tune of "Let It Be"

if you think of building architecture
but you're feeling lazy
you can just skip it
yagni

if you think you might need infrastructure
you don't have to worry
go ahead and skip it
yagni

yagni
yagni
yagni
yagni

don't worry bout tomorrow
yagni
you aren't gonna need it
yagni

"Test and Shout"

you failed a unit test baby
failed the test baby
but do not shout
do not shout
you failed a unit test baby, now
failed a test baby
go on and rip that code out
rip that code out, oooooooooooooh

you got no requirements
no requirements
you got no design
no design
just rip up and refactor now
rip up and refactor
and you'll be feelin fine
feelin fine

"Your Pair Will Hold Your Hand"

sing to the tune of "I Wanna Hold Your Hand"

when you're coding something
that you don't understand
you don't
have to worry
your pair will hold your hand
your pair will hold your hand
your pair will hold your hand

and when you're coding you feel happy inside
the joy of coding is just one you can't hide

people say
we need requirements
they always make a fuss
we think
that requirements
should be in c plus plus
should be in c plus plus

and when you're coding you feel happy inside
the joy of coding is just one you can't hide

when you're unit testing
and you find a bug
you don't have to feel bad
your pair will give you a hug
your pair will give you a hug

and when you're coding you feel happy inside
the joy of coding is just one you can't hide

"Cancelled Inexplicably"

sing to the tune of "Yellow Submarine"

oh the project called C3
was cancelled in-explicablee
kent and ron
claimed victory
but at chrysler
they didn't quite see
it was cancelled inexplicably
inexplicably, inexplicably
it was cancelled inexplicably
inexplicably, inexplicably

"In the Bigtime Now..."

sing to the tune of "Political Science" by Randy Newman

run the compiler
run the tests
you got no requirements
your project's a mess
your goal donor
has just left town
and i think the gold owner's
gonna shut it down
look at everybody flee
from the project called c3
got a book contract for you baby
and another one for me
we'll claim victory anyhow
cause we're in the bigtime now....

"Short Iterations"

sing to the tune of "Revolution"

you say you want short iterations
well, you know
you really shouldn't skip design

you say since you got pair programmers
well, you know
that everything will come out fine

but when you skip writing your requirements down
you know you're just setting yourself up to look like a clown

dont ya know its just xp
all right
all right

you say you like to do refactoring
well you know
you could do it right the first time

you say you don't need documentation
well you know
because the code is the design

you're gonna have code that doesn't smell too great
but you got no schedules so you can't be late

ya know its just xp
shoo be doo bop
all right
shoo be doo bop
mm hmm
all right
shoo be doo bop
Project's not going too far
sing to the tune of "Back in the USSR" by the Beatles

Overtime is evil when you do XP
gotta leave at 5pm each night
schedule's not our problem because change is free
man, Kent really got it right

project's not goin too far
find out how lucky you are, boy
cause your project's not goin too far

this code has been refactored by a chimpanzee
maybe it needs a rewrite
what he was thinkin about i just can't see
maybe he's just not too bright

project's not goin too far
I dunno how lucky you are, boy
cause your project's not goin too far

we put code in and we rip it out
we leave a mess behind
refactoring's what it's all about
aint no time for design-nine-nine-nine-nine-nine-nine-nine-nine

going round in circles each and every day
is not a cause for alarm
when we throw the stack of index cards away
we're not doing any harm

project's not goin too far
I dunno how lucky you are, boy
cause your project's not goin too far...

the man with kaleidoscope eyes
(sing to the tune of Lucy in the Sky with Diamonds)

picture a waterfall run through a blender
all your iterations so tiny in size
somebody tells you that change is not costly
the man with kaleidoscope eyes

endless refactoring day after day
while deadlines are slipping away

suddenly you hear a saying that makes it okay

schedule is the customer's problem...

"All the Lonely Coders"

sing to the tune of "Eleanor Rigby"

jojo and loretta
coding in pairs
trying to get the payroll to run
they're having fun

look at them working
coding and testing and coding and re-factoring
then going home
at 5PM
so they can do it again and again endlessly
that was c3

all the lonely coders
where do they all come from?
all the lonely coders
where do they all belong?

printing out paychecks
more than a coder should ever attempt by himself
wait, that code smells
time to refactor
wondering if the big project will ever get done
but they're still having fun
and they've got lots of pepsi.....

all the lonely coders
where do they all come from?
all the lonely coders
where do they all belong?

its been four years
some paychecks are printing
but its only the payroll that runs once a month
everyone else might not get paid
what will they do when the mainframes die on Y2K?

all the lonely coders
where do they all come from?
all the lonely coders
where do they all belong?

its the millenium
the project is cancelled
seems like the mainframes at chrysler didn't really drop dead
hey, we'll write books instead!

all the lonely coders
where do they all come from?
all the lonely coders
where do they all belong?