Update on the YAGNI Episode

Sometimes I write a blog post knowing that it’s stupid and just going to get me (justifiably) flamed, but yet I still click “Publish” anyway.  In the whole “table layout vs absolute positioning with CSS vs a jQuery Layout Manager” argument, the “simplest” answer turned out to be the jQuery layout (just pass me the salt for the side of crow I’m eating).  That being said, investing the extra time to make the layout configurable and extensible for possible future requirements?  That’s still a YAGNI.

One thing about “The Simplest Thing That Could Possibly Work” that I forgot is that “simple” to you isn’t the same as “simple” to me.  It’s funny how getting comfortable with new or different techniques or technologies can change your image of what *is* simpler.

About Jeremy Miller

Jeremy is the Chief Software Architect at Dovetail Software, the coolest ISV in Austin. Jeremy began his IT career writing "Shadow IT" applications to automate his engineering documentation, then wandered into software development because it looked like more fun. Jeremy is the author of the open source StructureMap tool for Dependency Injection with .Net, StoryTeller for supercharged acceptance testing in .Net, and one of the principal developers behind FubuMVC. Jeremy's thoughts on all things software can be found at The Shade Tree Developer at http://codebetter.com/jeremymiller.
This entry was posted in Uncategorized. Bookmark the permalink. Follow any comments here with the RSS feed for this post.
  • http://blog.danielfernandes.net Daniel Fernandes

    Indeed, the thing that concerns me with YAGNI is the assumptions lurking down below that are never surfaced when someone mentions it to cut a discussion short.
    So I joked about YAGNI with some guys in my team and told them YAGNI is like a rock-paper-scissors game; whoever says it first wins!
    Daniel

  • http://weblogs.asp.net/fbouma Frans Bouma

    Don’t feel bad about yourself: you stood up and took a stand for what you thought was a thing to explain to others. That some of those others didn’t agree, so be it. Though it seems as if the ‘community’ at large tends to get more hostile over the years: whenever someone speaks up, there will always be flames posted, no matter what the subject is. I find that disturbing, it makes it necessary to have a thick skin to stand up and explain something to others, which is IMHO insane.

  • http://blog.danielfernandes.net Daniel Fernandes

    The point I was trying to make is that YAGNI is one of those things that will always attract criticism whether it’s fair or not.

  • http://blog.dynamicprogrammer.com Hernan Garcia

    I’m so glad to see this follow up post. I specially like your last sentence, since I believe that to be true, and put in context your first post.
    What we try to do in our company when we come up with similar situations is to do the “simples” or “faster” thing at the time, even knowing that is not the best, but we record the technical debt we took, as a case (or user story) for next iterations.
    This allow us to move fast and at the same time to have a clear view of what is going to “probably” slow us down later on. Also comunicates this to the client since get’s recorded in the backlog.

  • http://www.shaneo.ca Shaneo

    Off topic a bit…but your explanation of ["simple" to you isn't the same as "simple" to me.]

    This always makes me think back on how to explain Ubiquitous Language as relates to DDD. This is a great example how easily miscommunication can happen.

    In this case, even though different parties are using the same words, and in the same context even, the words still have different meanings to different people.

    So what’s my point? Well, if I have one, I suppose I’m making a case for the importance of Ubiquitous Language. Sorry to hijack your post :P

    -Shane

  • http://chadmyers.lostechies.com Chad Myers

    The simplest thing that could possibly work needs to account for “A heap mound of unnecessary complexity surrounding an otherwise simple task ” :(

    The table *should’ve* worked and been the easiest, but, due to external factors, wasn’t :(

  • Joe Chung

    jQuery is useless if you don’t have script enabled. Even a table-based layout is better than a script-based one if you don’t have a scriptless fallback.

  • Kent Leach
  • http://www.backlinkschecker.ws/backlinks/buylinks.html Purchase High PR Backlink

    I fully support this blog, thank you.