Ellie Codes

On "Reinventing the Wheel"

I ranted a little bit on Twitter today about being told about things having been done before when expressing my ideas to others. I wanted to expand a little bit on that, because on Twitter there usually isnt enough space to fit all of my thoughts. I tend to get a little wordier than I want to be sometimes. Anyway.

Essentially, what I wanted to say was that, when I have an idea, I usually like to express it to people in order to get their opinion on it. These are people I interact with usually on a daily basis. (I guess you can blame me for the disappointment then, because I opened myself up to it, but thats not the point Im trying to make.) The majority of them are supportive, but some of them respond with something like, that sounds like insert thing here, or thats already been done Im not going to name people, mostly because I cant remember who made these observations, but also because Ive already forgiven them.

I also want to point out that Im not talking about reinventing things like systems and frameworksthat ship has sailed. Im talking about recreating high-level things, things that we dont have ready access to the source code of, like Facebook or Twitter.

If someone had told Zuckerburg not to create Facebook because Friendster and MySpace already existed, the world would be very different right now. (Whether or not the world would be different for the better is an entirely different discussion.)

The thing is, developers love building things, even if it hurts us. We will spend countless hours exploring new ways to do things. Its just our nature; were born tinkerers. If we are stuck doing the same mundane thing for a long time, we get bored. Its a passion I havent yet been able to adequately describe, and definitely not as eloquently as Fred Brooks.

This is especially true for the young and maybe more shy developers, who have yet to learn how or may not be comfortable to argue against you. Do them a favor: let them play, learn and create something. Tell them its a cool idea and you cant wait to see it in action. By creating something that exists, even if what they build is almost the same, they will come out of it having learned something useful.

I have finally learned that just because a thing exists doesnt mean I am incapable of making a better version of it, especially if its not open source. When I was told that the things I had thought to create already existed, it discouraged me from pursuing them. Every time I gained the energy to restart the work, I remembered what I had been told and stopped working again. I restarted the same project at least four times. In hindsight, I ended up wasting more time after becoming discouraged because I didnt even finish any of it.

I guess its just something to consider next time you hear someone say, Hey, I think I might build this thing and I was wondering what you think about it.

Ellie Strejlau

Ellie is a programmer, wife and mother from New York. She currently works as a Senior Developer at Phase2 Technology and has a bachelors and a masters degree in Information Systems.