Just another flash platform blog 

Reinventing: reinventing-the-wheel

July 4th, 2009 Posted in General

Reinventing-the-wheel gets a bad wrap.

If you’re a freelancer working for a client or a developer on the books, spending time solving a problem that has been solved many times before will no doubt be met with disapproval by those holding the purse strings. And indeed, if you are being paid a rate for a whole job finding open source / free code just means you can get paid and move onto the next job all the more quickly. “Time is money” after all.

So when can reinventing-the-wheel be a good thing? Or put another way: Why are so many problems solved so many times over?

Well I suppose the first thing is perhaps the problem was solved by different people at roughly the same time unaware that someone else was doing the same thing. Ok thats fair enough and if the code is proprietary and beyond budget, its easy to see how more similar free solutions become available.

Taking these situations out of the equation I still maintain re-hashing existing solutions is a good thing. I give three reasons below:

  1. Improving upon earlier attempts
    Ok this is another obvious one, but perhaps you’ve seen other attempts and think you can do better. If you’re the community minded guru then perhaps this is enough, but what about more selfish reasons?

  2. For fun
    Sometimes coding something your way (regardless of the quality of the implementation) can simply be a fun way to spend time. If the typical solution space of your day job is a bit dry (I’m lucky on that score at least) then coming home and writing games or making pretty effects for other devs to swoon over can be rewarding even when you know your work isnt original.

  3. For study
    For me, this is the main motivation. My day job invariably sees me in technical meetings or writing specs for other developers to follow, so I get less and less time actually at the coal face. So coming up with ideas targeted towards a particular coding methodoloy, framework, design pattern or key language feature is a great way of keeping touch with whats happening. Working in any area of IT inevitably means devoting some personal time to study, this is no less the case in software development. Coding up a useful util or making available a fancy widget keeps your hand in. Study is further helped if you can compare your solution with existing ones. Learning how something can be done better is more effective if you’re already intimate with the challenges it brings up.

If you get as far as making your “wheel” available to other people (and providing your wheel doesn’t turn out square!) then a little bit of peer kudos cant hurt either. Add to that the warm feeling you get when you tell your client you’ve already written just what they’re after and reinventing-the-wheel can even be good for your bank account too!

  • Share/Save/Bookmark
  1. 1 Trackback(s)

  2. Jul 6, 2009: Socks, Dregs and Bacon Roll » Blog Archive » SyntAction 1.0

Post a Comment