Sunday, August 30, 2009

Worse is better

I was reading yesterday about Richard P. Gabriel's classic worse-is-better theory, which wraps a lot of related concepts, such as less is more, good enough is good enough, KISS, and YAGNI. The key intuition is that the more you try to perfect something by adding to it, the less perfect it gets -- so don't try to perfect it. Leave it imperfect, it'll be better that way. Worse is better.

Alas, worse-is-better goes against more entrenched philosophies like "correctness before efficiency" and "completeness over simplicity."

On a business level, it goes against the philosophy of give-the-customer-every-damn-feature-he-wants. It says let's leave a large number of ultimately unimportant features out, and concentrate on making the rest do what it's supposed to do.

A prototype or proof-of-concept that slam-dunks the desired functionality, but sucks at the code level because classes aren't cleanly factored, is an example of worse-is-better. Chances are, when the POC is later discarded, then reimplemented "correctly" by a team of GoF acolytes, it will morph into an overfactored, underperforming pig with unexplainable memory leaks and a hard-to-describe odor. (But hey, it'll scale.)

Is worse always better? Of course not. Better is, by and large, better. Just not in the software world, where "better" tends to take on unexpected meanings.

8 comments:

  1. Anonymous7:41 AM

    A man to my own mind. I adapted the slogan "Progress Before Perfection" about six months ago.

    ReplyDelete
  2. You shouldn't forget though that this only applies to "better" as defined by "more functionality." Not to "better" as defined as "the same thing, but actually working."

    That's the problem with many PoCs -- they don't really work (...if only because they don't scale.) Actually building that functionality, but getting it to work is usually a painful experience (especially if you start by using the "working" code from the PoC.) I think the problem with a lot of PoCs is "but we already had it working, didn't we, so why are we spending time on this?"

    Likewise, I think "Progress Before Perfection" is a very dangerous slogan (sorry Brady.) Perfecting existing functionality to actually work is usually not seen as progress. Adding functionality, however, ís seen as tangible progress, even if nobody takes the time to make it work...

    So if you boil it all down, "worse is better" means "less functionality (but working) is better than more functionality (which doesn't work or isn't needed)." If you translate that, you end up with "less is more," but we already had that paradigm, so why not stick with it? :P

    ReplyDelete
  3. Availing the services of the best movers packers Hyderabad prove to be beneficial in terms of expenses as well as ease of moving. They bring the packing material and equipment necessary to move your items safely.
    Movers and Packers in Gachibowli
    Movers and Packers in Kukatpally
    Movers and Packers in Chanda Nagar
    Movers and Packers in Manikonda

    ReplyDelete
  4. You can forget your stress and anxiety with the help of best movers and packers in Hyderabad who take on the responsibility of shifting your household goods.
    Packers and Movers in Miyapur
    Packers and Movers in Sainikpuri
    Movers and Packers in Hyderabad
    Movers and Packers in Jubilee Hills
    Movers and Packers in Banjara Hills

    ReplyDelete
  5. Indian Packers and Movers in Mumbai give packing and moving services like loading & unloading, packing & unpacking, car carriers, transportation, domestic &local shifting, international shifting, Industrial shifting, corporate shifting, Warehousing, etc. Packers and Movers in Mumbai achieve conceit in offering great packing and moving services at reasonable costs. We deal all types of packing and moving services in Mumbai and other main cities of India.
    Please Visit Our Website : https://indianpackersmovers.in/
    Movers and Packers in Chembur
    Movers and Packers in Jogeshwari
    Movers and Packers in Kharghar
    Movers and Packers in Dombivli

    ReplyDelete
  6. Indian Packers and Movers in Mumbai is the best packing and moving company in Mumbai. Of course, the credit goes to our hardworking team in Mumbai and world class infrastructure. Customer satisfaction is a great asset for the company. We appreciate the feedback of our clients that ultimately help us to improve. Indian Packers and Movers in Mumbai have a long list of reputed clients who assign their projects to relocate. We offer our customers all-in-one packing and moving experience with suitable & affordable moving and relocation or packers movers services. We offer our customers the best of the deals, highly competitive quotes, and availability of our professional Packers and Movers in Mumbai.
    Movers and Packers in Chembur
    Movers and Packers in Jogeshwari
    Movers and Packers in Kharghar
    Movers and Packers in Dombivli

    ReplyDelete
  7. Indian Packers and Movers in Mumbai Provide Services Of Industrial Packing. We Can Transport Any Industrial Product. We Transport Machinery, Goods And Various Products.
    Packers and Movers in Vidyavihar

    Movers and Packers in Mumbai
    Packers and Movers in Ghatkopar
    Packers and Movers in Vikhroli
    Packers and Movers in Kanjurmarg
    Packers and Movers in Bhandup

    ReplyDelete
  8. We are known manufacturers of modern classic chair. The designs are so attractive that you will be confused among which one to buy. Our products are well appreciated by top interior designers, esteemed customers and architects.
    Visitor Chair Supplier in Mumbai
    Chair Dealers in Mumbai
    Top Chair Manufacturers in Mumbai
    Best Chair Manufacturers in Mumbai

    ReplyDelete

Add a comment. Registration required because trolls.