Showing posts from June, 2016

Paying the Piper, Techie-Style

Growth based on debt is unsustainable, artificial. -- Jose Manuel Barroso
Debt is beautiful only after it is repaid.
-- Russian Proverb
Technical debt.  It sounds like a scary new investment mechanism that too-big-to-fail banks created after the whole CDO/credit swap/Big Short thing ended... poorly.  But it's much scarier than that.  It's the time bomb lurking in every software product, waiting for the right time to jump out and take down your newest beautifully crafted feature.  It's the source of zero-day security holes, back door hacks, and plain old everyday performance issues.  It's a fact of life for every software company and the bane of every application architect's existence.  In my office, it's also the prime catalyst for torrents of muttered (or not) curse words.  Sometimes, it even comes with a name, usually the name of the person who thought he'd found a brilliant shortcut... at the time.

So what is it?  It's old code, shortcuts that felt neces…

In Defense of the Plan, Part 2

I wrote recently about the need for long-term planning, even (perhaps especially) in an Agile development environment.  I left you with a choice: plan or fail.

The fun part about writing on the internet is that you don't really have to solve problems: you just have to point them out so that other people can agree with you that yes, there is a problem there, and someone should do something about it.  I'm a problem-solver by nature, though, so I can't just leave it at that.  If I'm going to tell people they need to do something, then I'm constitutionally required to help them do it.  So we've already covered why you need a plan for your product development.  Let's talk about how.

Let's start with a few objections, because I never met a straw man I didn't like (to poke holes in):

I can't tell you when we'll have a whole feature set done because we're using Scrum/Kanban/Lean Agile/some other Japanese-sounding development process.I can't…

In Defense of the Plan, Part 1

Have you ever sat down with a pile of Legos and tried to build something with whichever pieces came to hand?  I have, and it turned out looking something like this:

I didn't really know where I was going with it, and then I couldn't find any of the round pieces to use as wheels, and pretty soon my car became a house, then it was just sort of this rock/tree stump thing with stuff growing out of it.  When I was a kid, though, I used to buy the Lego kits.  You know, the ones that could build a spaceship or a race car or, if your parents were rich, a medieval castle.  When I followed all of the steps, I ended up with this:

It took a lot of work, and the instructions weren't always helpful, but I had a plan.  I knew what I would have to show for my efforts, and with the application of some patience, concentration, and some judiciously applied glue to fix the pieces that I broke trying to force them into place, I got my spaceship (with bonus moon rovers!).  I had a great sense …