Read my latest article: Announcing RailsDeveloper (posted Wed, 01 Sep 2010 17:01:00 GMT)

Keeping the Code Organic

Posted by Robby Russell Sun, 30 Oct 2005 01:30:00 GMT

19 comments Latest by Moncler|Moncler jackets Sat, 14 Aug 2010 03:24:14 GMT

The landscape around us is quickly changing-really, it has been changing for some time now-we’ve come a point where we admit that it’s okay to want more for less. We want more features, in less time. We want more control, for less money. Why? When did we collectively decide that huge monolithic systems could be completed in a fraction of the time it should take?

After years of working in .NET, PHP, Perl, and even a little Python, I have gone down the road of simplicity. I want simple looking code (thank you Ruby). Code that I can hand off to another developer and for them to simply get it—which helps to keep things moving. It’s about getting the project done.

Scenario: The client wants delivery in X days, so you aim for Y days early. Shortcuts get made, tests are forgotten, code is blemished, and deadlines still manage to sneak by unmet. Why do we do this to ourselves?

I say, no more!

Sacrifices Are Okay

What? You mean I can choose to leave something out? I can-dare, I say-tell my client no? Yes! Well, maybe. It’s time to re-think how you view your projects. Have you asked your client, “What is the single-most-important feature of this project?” Every project has one. Your customer will likely be relieved to hear that you care about the purpose of the project. And it gives you an idea as to where not to make sacrifices, which in turn helps to identify the areas where you can.

So, if you haven’t asked them yet… ask them now.

The Big Picture

If things change, how will it impact your timeframe? When your schedule is threatened, it becomes easier to see what isn’t necessary, or perhaps, not necessary right now.

All features in a project are part of the big pictures. If you ask your client what is required they will almost always respond with the all to easy, “everything.” Simply accepting this as fact often leads to shoddy workmanship in favor of giving your client “everything.” To the client it may seem like you aced the test, but that’s because they don’t know you’ve cheated. I’m sure a lot of you know what it’s like to inherit the code of someone who has done this, and you know you’ve probably been on the other end as well.

A Neverending Story

Projects aren’t just instantly created, they evolve. They need to be fine-tuned, maintained and should most certainly be refactored when necessary. Most projects require ongoing work… because requirements do change.

It’s time to stop and really consider how you approach both your clients and their projects. Can the next project be built in an evolutionary fashion? Can you focus on one new feature at a time, maintaining your tests, and avoiding bloat?

“Big fleas have little fleas Upon their backs to bite ‘em: Little fleas have lesser fleas And so ad infinitum.”

I found this in a book that I picked up at the local Library booksale for something like 20 cents. The book, The New Utopians by, Robert Boguslaw was written in 1965 and has some insightful thoughts on systems as organisms.

Keep it Organic

Pesticides are not necesary to produce quality produce. They are a cheap shortcut that can cause other problems in the longrun, and are generally not a healthy addition to the lifecycle of the fruit or vegetable (or to those who harvest it and consume it).

Test-Driven Development allows you to constantly monitor the behavior of your application. Feature-Driven Development keeps your team focused on what is currently the most important piece of your project. Don’t rely on pesticide, let the project flow the way it wants to.

Keep it Flexible

Business Rules should not be flexible… but they should. That sounds confusing, but it’s not. Know where to make that distinction. Add your rules first… build your tests… then code. Maintain flexibility through your rules.

Test First. Code Second. Lather. Rinse. Repeat.

Be Proud of Your Code, But Not Blinded By It

You’re biased. Your code is biased. The opinion that you have about your code is biased. You are proud of your code… but you can do it better and some people are better at somethings than you are. Don’t dwell on it, embrace it.

How many of you are making the mistake of being the only programmer on a project? I’m not a big fan of big teams, but I know that small and focused teams are extremly productive and better positioned for the big projects of tomorrow. Find someone that you trust and trade peer-review time. Not sure where to start? Pick up a copy of Refactoring. It’s time that you RE-think how you are doing things.

Embrace Heuristics

It’s time to challenge yourself. A new year is almost upon us and we’re all behind on our goals… because things change. This is the time to explore your possibilities. Learn something new. Don’t be afraid to break things. Just learn why the thing broke. Learn to be a good tester. Learn to write cleaner code. Learn to refactor your code. Learn to make it readable.

Learn to learn… and remember to buy organic. ;-)

Subscribe to my RSS feed Enjoying the content? Be sure to subscribe to my RSS feed.
Comments

Leave a response

  1. Avatar
    Tonyazfe Tue, 14 Aug 2007 16:33:26 GMT

    http://adbrgswffbrfb.host.com desk3 [url=http://adbsgswffbrfb.host.com]desk4[/url] [link=http://adbagswffbrfb.host.com]desk6[/link]

  2. Avatar
    wholesale ed hardy Wed, 10 Mar 2010 07:20:26 GMT

    So much wonderful ideas and thoughts here,many thanks.

  3. Avatar
    ed hardy clothing Wed, 24 Mar 2010 02:05:34 GMT

    Wonderful post!

  4. Avatar
    nike air shoes sale Sun, 23 May 2010 15:49:30 GMT

    Find a pair of shoes that suit myself is so simple. Nike Air max is the most famous sports brand. The most stylish shoes are Puma shoes. If you want different feelings, then select the MBT shoes. Everything is so simple.

  5. Avatar
    puma shoes sale Sun, 23 May 2010 15:49:59 GMT

    nike air max nike air max for you Puma Shoes puma shoes sale mbt shoes mbt shoes store puma running shoes puma running shoes

  6. Avatar
    nike shoes Thu, 27 May 2010 09:00:59 GMT

    GJGHJGHJ

  7. Avatar
    zoom lebron vi Thu, 27 May 2010 09:01:27 GMT

    zoom lebron vi

  8. Avatar
    adii 420 top gold foil Wed, 02 Jun 2010 05:35:19 GMT

    tyuytu

  9. Avatar
    air jordan IX Wed, 02 Jun 2010 05:35:29 GMT

    tyu tyu tyu

  10. Avatar
    jordan shoes Sat, 05 Jun 2010 05:18:48 GMT

    uty

  11. Avatar
    mbt sale Sat, 05 Jun 2010 05:18:56 GMT

    uyt t u

  12. Avatar
    2010 world cup jerseys portugal Wed, 09 Jun 2010 01:33:36 GMT

    TY UTYTY

  13. RTY RT

  14. Avatar
    http://www.newshoesonline.com Thu, 10 Jun 2010 04:29:40 GMT
  15. Avatar
    kobe basketball shoes Sun, 20 Jun 2010 03:56:40 GMT

    try

  16. Avatar
    colorful supra muska skytop Sun, 20 Jun 2010 03:56:54 GMT

    ty

  17. Avatar
    air jordan 13 Fri, 23 Jul 2010 04:42:36 GMT
    lebron 3, lebron 3
    air max 97, air max 97
  18. Avatar
    vibram fivefingers Mon, 02 Aug 2010 03:07:00 GMT
    vibram five fingers classic grey, vibram five fingers classic grey

    vibram five fingers classic green, vibram five fingers classic green

    Vibram Five Fingers Classic black, Vibram Five Fingers Classic black

  19. Avatar
    Moncler|Moncler jackets Sat, 14 Aug 2010 03:24:14 GMT

    We are a professional exporter and wholesaler of brand fashion products,Moncler Women’s Down Jackets – Black Moncler Women’s Down Jackets – Yellow Cream Moncler Jura Down Coats – Black Moncler Bady Down Jackets – Blue Moncler Bady Down Jackets – Black ,All products have good quality,fast and safe delivery without shipping fee. Our primary goal is to meet our clients’ requirement and establish mutually pleasant business relationships with you.If you are interested, please do not hesitate to contact us.

Share your thoughts... (really...I want to hear them)

Comments