Reinvent What You Have Not Seen

I.

One can make the case that there is "nothing new under the sun" in the world of software. All of it has already been done. If this is so, it is a waste of time to try to do anything new. Someone else already beat you to it. Whatever is the problem, what you should do is find the existing solution, RTFM, and adopt it.

That is wrong, and it is not hard to see through. If there can be nothing new then either (1) anything that you want, you should to be able to find (because it already exists) or (2) it is impossible for what you want to ever exist.

Suppose that you want, and you cannot find, something that is simple, quick-to-learn, and easy-to-use. Is it the case that software has gone as far as it possibly can go in terms of minimalism, learnability, and usability? No, not even close. Will there ever be better solutions? Yes, of course.

So if you do not find the software that you want and you are inspired to make it happen, then why should not you go for it? Someone has to be the one to move things forward.

II.

In the world of software, there are ideas. There is the idea of a text editor, a compiler, a macro processor, etc. There is no one single realization of an idea that ends things for all time. Ideas get realized again and again in new ways. People write new text editors and compilers; they reinvent them anew. It happens naturally, and is to be expected.

But why should it happen? Because successful software creates problems as much as it solves them. Say you write a graphics package, using a terminal-based editor. You have created the problem to write a GUI-based editor. A sorting algorithm optimized for speed creates the problem to make one optimized for memory. The editor and the sorting algorithm both get reinvented in a new way to solve a new problem.

Now, if whenever we found new problems, we could infinitely reuse or extend what we already have, then there would be no need for reinvention. It can be possible to reuse or extend for a long time, but not forever. There is software that has been around for decades. This does not change the fact that other solutions have reinvented the same idea and are now in use. Those reinventions would not be successful if they did not better solve some problem.

So, there is no question that reinvention will happen. The question is when it will be more worth it to reinvent and pay the cost for it, rather than pay the cost to adopt an existing solution. If you can recognize that this represents a decision to be made, and others do not recognize this, then where others are making the wrong choice, you can make the right one.

Some may see nothing new under the sun. May you find opportunity to be everywhere.


« index »

« subscribe »