Open Source blessings and curses

One of the huge advantages of Open Source is that rather than re-design the egg every time, we can take advantage of code that's already been written and use it in our own project. In theory we can just drop it in and forget about it.


So OSS is really great, being able to re-used another's code, or in general improve on existing ideas. That is the foundation of many OSS projects. But maybe things are not quite as simple as that. Well, they really aren't. To be honest, it rarely works like that.

Code designed for one context may not fit another, and more often than not, it takes more time to re-work the original code than to implement it from scratch. I personally have also found copying ideas can be more trouble than it's worth because it can pollute one's own creativity. It's far better to really understand a problem and plan a solution. With that approach, code design is a new experience. Looking at similar examples can help one understand the issues at hand, but before designing our own approach, we need to really forget it all and start fresh.

This same principal comes into play with one's own code. Sometimes we find our original design just isn't working, and maybe we forgot something important. We can spent hours hacking to make it work, but what we as humans often forget is that starting again with the experience you just learned can be faster and more efficient. We are curious creatures, we get attached to our ideas and the products of our effort, even if that effort is leading no-where. Sometimes we really need to take a step back.

Have you ever considered the one thing money really can't buy? They say you can't buy happiness, but if you look closely that might just be some Holywood concept - certainly life below the poverty line makes life very difficult. Money certainly might not buy happiness, but it's sure a lot easier when you have enough.

But there really is one thing money can't buy you, well, it can't get it back... and that is time. So whatever we do in life we should always be aware of the time we spend wasting that we can't get back. If we went down the wrong path, better to backtrack now, than keep on going stubbornly because we already invested time we don't want to waste. In the end, it's less suffering.

So next time you realise your code just isn't working, stop for a moment and ask yourself: "should I stop this and start again"?


Share This | Print

Trackbacks

(The URL to TrackBack this entry is: http://blog.zikula.org/index.php?module=TrackBack&id=26,1-57). If your blog does not support Trackbacks you can manually add your trackback by using this form.

Comments

Comment by:
Mateo Tibaquirá's Avatar
Mateo Tibaquirá
01 Nov 2009 - 03:08AM
Agreed
Wow, very nice thoughts icon_smile
Anyways, i guess there's some time to waste playing here and there, but the main path needs that deep question.

Should I start again?
hard one! icon_razz
 
Comment by:
Lobos's Avatar
Lobos
21 Jan 2010 - 01:25PM
In my opinion it all depends on the way you do your programming. Adhering to the MVC approach we can create agile solutions that can be re-used again and again.

I tend to prefer standalone libraries as opposed to tightly coupling applications to any given type of framework.

In saying that the framework can be great to deploy your view and controller from, but in regards to model and helper functionality I feel these should be very agile and adaptable to any given environment.
 

Add a new Comment









 
Close

You don't have permission to e-mail this story - please login