by Leon Rosenshein

Rice and Garlic

Here’s another one from GeePaw Hill, all about rice and garlic. Actually, it’s not about rice and garlic. It’s about generic advice.

As GeePaw tells it, he knows a chef who has a standard answer to the context-less question, “How can I make my cooking better?”. The blind answer is “That’s too much rice, and not enough garlic.” And you know, that’s pretty good advice when you don’t know what’s being cooked. Of course, there are edge cases. You can’t put too much rice in a bowl of rice as a side dish, and contrary to what they say in Gilroy, some things don’t need more garlic.

So what’s the software development equivalent? GeePaw says you should take more, smaller, steps. Again, without much context, that’s pretty good advice. Rather than try to get from 0 to 100 in a single step, try 0 to 1. Then 1 to 2. Continue that approach and you’ll still get to 100. Assuming along the way you haven’t realized that what you really want is 75 so you stopped there. Or more likely, you’ve found that the goal isn’t 100 anymore, it’s actually a close neighbor of 100, but off in a different dimension. Which you couldn’t have known without working towards the goal incrementally.

And not just that. That kind of advice scales as well. It doesn’t matter if you’re going to the moon, building a website, or writing a command line calculator. Make a step in the right direction. Test fire an engine. Get your website to deploy and log that it’s listening on a port. Get the CLI calculator to return an error about invalid input. And you can break those down further into actionable tasks. Figure out what each step is supposed to do. Then come up with a way to tell it it’s doing it, and every time you take a step use that mechanism to see if you’re getting closer, holding your ground, or falling backward.

There’s a name for that kind of development. Test Driven Development (TDD). It has all kinds of benefits. Add in some customer value/feedback and now it’s not just TDD, it’s Agile TDD. Which is great.

Because you get to work with your customer to not only show your progress, but they get value along the way, and you get better understanding of their problem(s) and can focus on that, instead of just trying to get to 100 one fell swoop, because 3 months ago you thought that was the exact target to hit.