Inventing things that already exist

I think Al Gore still gets flack for claiming to have invented the internet, and it’s been pretty well established that he didn’t actually say that, but that’s OK, because I’ve invented a few things in my career too.  The difference is, my inventions already existed.

I invented relational databases. It was 1993 and I was writing dBase III+ apps for the federal government, IT inventory stuff I think, and I wanted to find a way to reduce some of the duplication I was seeing, so I came up with this “crazy” plan to make two different tables and tie the rows together with some kind of identifier.  Two years later I took an actual course on databases and a lightbulb turned on.

I invented the blog. It was 2001 and I wanted to start a website that was kind of like Slashdot, but a bit more personal.  Their code was open sourced, but it didn’t look like there was any way to run it under the shared hosting plan I had, so I started my first ever CGI scripts on a Sunday morning and got something rudimentary online by that evening.  Note that I’m not trying to brag; I had to support that core code for many years as I built around it and learned a whole lot of what not to do.  It turns out there were other systems out there that could do what mine did, but the internet was more scattered back then and I hadn’t seen them.  Interesting side note: there were at least 2 other people who created a very similar “Slashdot for [my niche at the time]” site within a month of me.  There are probably 87,000 new blogs per topic started per day now, but ten years ago I remember a clear sense that the future was happening.

I invented hellbanning. I just saw this post by Jeff Atwood, which inspired this little writeup, where he describes hellbanning: the practice of flagging abusive or troll-like users in a community so they can see their posts and comments but nobody else can.  The trick is that they don’t know they’ve been hellbanned, so they just figure that everyone’s ignoring them, and without attention, they tend to leave, and in the meantime the community flourishes without the added troll noise. My constantly evolving “blog” code I mentioned above (which had user journals and forums by then) had a feature much like this, but I never knew it had a name (or started on BBSes in the ’80s!)  It remains something I recommend to all my clients when we’re talking about building community features.

Now, Jeff’s post mentioned something about, well, here’s how he put it, “Like so many other things in social software, it keeps getting reinvented over and over again by clueless software developers [emphasis mine] who believe they’re the first programmer smart enough to figure out how people work.”

Ouch.

I don’t know anyone who’s worked in this industry long enough who hasn’t inadvertently reinvented the wheel.  In every case I’ve heard of, we didn’t think we were the first smart person to come along; we just needed to solve a problem so we could go home and sleep.

I think there’s value in some of this rediscovery.  The trick as more algorithms become public is to figure out how much is normal in a productive, efficient product cycle, and how much is an unfortunate waste of time.

In all the “inventions” I mentioned, I had mixed emotions when I found out my discovery wasn’t exactly unique, but none of those feelings had anything to do with a sense of a lost fortune had I only commercialized any of it.  If anything, there was a sense of validation, that my “crazy” idea actually was a valid approach to a problem.  It’s a backwards version of what I imagine “real” inventors must feel when their idea gets an audience of actual users who find value in the concept.

Of course, the other feeling was a profound sense of lost time.  Most of my “discoveries” could have been found in a book or on a website, had the information been more readily available to me, and I could have made more progress with the actual problem.  But as students, we spend considerable time working out problems that have known solutions (they’re right in the back of the book,) and this is how we learn.  Of course, we can accomplish a lot more with the right shortcuts.

To me, the real danger is to assume everything’s been done and end up spending all your time researching the perfect combination of building blocks (and keeping up with new discoveries) instead of actually doing something.  Re-inventing the wheel, but with a few small variations, is where innovation can be born.

I worry a little that there’s a gap between the small scale doers that approach technology as a hobby and the big picture thinkers who know all the stuff that’s being found but don’t have time or, possibly, motivation, to actually implement. That space in the middle is where startups thrive, but the founders and staff need to have the rare combination of awareness of best practices and motivation to launch, and the right mindset to prioritize on one or the other as needed.

Photo by hatwoman

Comments

One response to “Inventing things that already exist”

  1. Jason Avatar
    Jason

    Oh, and I should point out that yes, dBase III+ could probably do relational stuff out of the box. Remember what I said about a lack of information? That included any documentation on the product. I was given a desk, some bad code examples from a previous co-op, and a wish list. And probably my first intro to the concept of a department getting a summer student quota and not wanting to lose it, even if they didn’t really know what to do with me…

Leave a Reply

Your email address will not be published. Required fields are marked *