Meditations on programming, startups, and technology
New Relic

Jenga Driven Development

Over the years I’ve coined a few new programming related terms that are meaningless to other people, but which make sense to me (as they concisely describe certain programming concepts). Sometimes these homemade words have taken off among my colleagues as well, however others remain for the most part just tokens of my own nomenclature.

One of my personal favorites is the term Jenga Driven Development (JDD). I define it as the act of developing complex software without the aid of automated testing. It’s essentially the radical opposite of Test Driven Development.

I call this concept as such because performing maintenance and introducing code changes to large code bases that were developed in such a manner usually leads to the same hesitation and feelings one experiences when trying to remove a piece from a tower of Jenga blocks.

Jenga Driven Development
Copyright © egarc2

I think it would be cool if this term were to ever catch on, and as such I’m throwing it out there for you to use if you’d like.

What programming terms, if any, have you coined over the years? Feel free to share them in the comments.


If you enjoyed this post, then make sure you subscribe to my Newsletter and/or Feed.

receive my posts by email

15 Responses to “Jenga Driven Development”

  1. Dan Martin says:

    Nice, I’ve been working on some code at work that I’ve referred to as a “Jenga Fix” because of what you talk about above.

    I’m sure I’m not the first, but I’ve used the term “Troll-Driven Development” several times before. This is in reference to code written so poorly, that I have to imagine it was written as a joke or with the intention of provoking others.

  2. joserwan says:

    Meaningful!

  3. Steven says:

    Haha, very nice! I too worked at a company where we would wonder what would happen to the system when we started to introduce code changes to the system. We could test, afterwards, what we knew, but never everything. I will start using this term now. TY.

  4. Jorge Dias says:

    I worked for company where they actually told me they did “Exception Driven Development”. So you develop a feature, deploy it and if you get an exception email then you fix the problems.

  5. If ‘spaghetti code’ catched, I don’t think ‘jenga projects’ would be a bad choice: A lot of the code I write feels like this!

    Cheers,

    Ruben

  6. BHP says:

    I like the term “empirical programming”. You just keep trying stuff until it works.

  7. Jon says:

    I’ve called that same practice “refucktoring.”

  8. jms says:

    We used the term “poke and hope” in college. Rather than spending time to figure out what was wrong with a piece of code, just try some of the obvious tricks based on intuition, compile, and see if it works.

    I never was a fan of poke and hope, but my friend used to use it all the time.

  9. Edward Kmett says:

    Jenga has been a common referent through a number of software development positions I’ve held.

    When considering a block of code, depending on whether or not there was a not of code built on top of it, we’d talk about it in terms of how easy it would be to “slide that block out of the codebase” entirely.

    Now, in my case I tend to rely on very strong typing disciplines (a la Haskell) rather than test driven development to ensure correctness, because I find there is a reduced level of ‘scaffold shearing’ when I make an architectural change, but the basic goal is the same.

  10. Chris says:

    In the embedded work I’ve been involved with, we used “crashemathics” for any mathematical operation we found in code that was carried out by bit-twiddling hacks, casting between types and so on, sacrificing safety for space.

  11. Karthik says:

    Jenga somehow sounds perfect for this feeling :D

  12. Avdi Grimm says:

    Not a bad description., I may use that from time to time.

    I’m not sure who first used it, but I’m also fond of the phrase “working by accident” to describe code that happens to work (today) but doesn’t have any tests around it to exercise and verify it.

Leave a Reply

I sincerely welcome and appreciate your comments, whether in agreement or dissenting with my article. However, trolling will not be tolerated. Comments are automatically closed 15 days after the publication of each article.

Current day month ye@r *

Copyright © 2005-2012 Antonio Cangiano. All rights reserved.