the evans center for sleep deprivation studies
« prev | current | next »
dec 22 2004 11:56am
also, it helps to throw out as much as possible.
also, it helps to throw out as much as possible.

broken windows.

We've spent the last four weeks or so prepping our house for sale. We started with bigger things and worked our way down to little stuff. Fortunately we've kept up with this house pretty well, so even the big tasks weren't so big -- finally paint this room, finally fix this hose spicket, finally dispose of this body, finally replace this little bit of carpet. Note all the "finally". We're fixing broken windows. And after every one that I fix, I ask myself "why didn't we do this before?".

The answer's obvious -- we're busy as hell. And hey, we've done a pretty good job of keeping up with potentially big broken windows. I've seen lots of other houses where the place has gotten away from its owners so badly that you wouldn't even know where to start.

Same goes for software. There's code that has a pile of unwashed laundry in the corner and a sink full of dirty dishes, and then there's code that has four years of termite damage and a leaky tub that has destroyed subfloor and joists for two years. The former is always a few weeks away from being nice and tidy; the latter is years away and it's getting worse. I know which projects I'd rather work on.

So every time you decide "I'll get to that later" or "we'll go with this solution for now", you have to ask yourself Will we really get to this later? And if we don't, what will happen? Maybe the lack of automated tests will allow subtle regressions to slip in months down the line. Maybe you'll bring on some new team members and they'll adopt what they see as the "team style", when in fact what they're seeing is accumulated neglect. Maybe you'll find yourself spending so much time firefighting that you can't work on new features.

I guess the lesson is that broken windows have scale. There are always tasks that you're neglecting; the question is, how bad will the ripple effects be?