Open Source, Shmopen Shpource

Why isn't everyone writing open source software?

I have to ask myself this question before I ask anyone else. So self, why aren't you contributing to the open source community? I was recently reading a post on hacker news from a fellow UIUC developer (albeit many years my junior) that he was contributing for the first time, and made me wonder why I haven't done this already. I mean certainly there's been opportunity in my earlier days before I was busy with married life. Did I lack inspiration - perhaps. But really it was a lack of motivation, and making excuses that I'd rather take my ideas and market them, make money from them for myself and my family. I have a daytime job, and do I really want to expend the effort at night, coding into the wee hours to help some people who will never contribute to my bottom line? Well yes, maybe I should.

I think back to Malcom Gladwell's book about the biggest names in the industry, the people who made billions from their ideas, and most of them have a couple things in common: opportunity (being born at the right time and place in history) and training. They each had fulfilled a 10,000 hour minimum requirement to become monsters in the industry. Think about the best coders you know, and what can you say about all of them? While they may have a natural technical ability (and let's face it, you need a certain brain to be a good coder), they all have written a LOT of code in their lifetimes. This consists of both code inside and outside their jobs. So really, if you want to become the next Page/Brin or Zuckerberg, you really should get a start on your 10,000 hours now. Luckily hacking doesn't have the same expiration that athletes encounter when their bodies stop working as well. Nope, good coders (Fowler, Martin) can code late in age (no, I'm not calling you guys old). Some people say coding is a young person's game, but I call bullshit on that one. Young people are more willing to work for little or no money, for long hours, and companies, most notably startups, like this. I digress. If you are going to get to your 10k hours, isn't it better to contribute to the community at the same time? Wouldn't you like to help the collective good?

Let's imagine for a moment that the American cutthroat, entreprenurial, dog-eat-dog attitude could be magically transformed into the Ster Trek utopian society. People wouldn't work for profit, they would work on whatever interested them that also benefited society. Before people cry "socialist", doesn't this sound appealing to everyone? Coders would work on whatever project interested them the most, filling the motivational need they have to either solve a ridiculously complex problem, fill a deep personal need for the Frogger Android app you've been missing your whole life, build a better browser (can you hear me Microsoft), rewrite the h.264 codex... whatever, it doesn't matter. It's like that question from Office Space: "What would you do for a living if you had a million dollars". What would you code if you didn't have a day job and had to pay the bills? That's the open source project you should work on. And working on the open source project at night is going to make you a better coder during the day, and could potentially improve your skills enough to make you more marketable and land you a better job. And if you happen to work at a good place like I do where we use many open source libraries to help our for-profit software, you could be helping the open source community WHILE you work. Double rainbow all the way!

So what open source project am I going to work on? I'm actually not sure yet, but I know I'm going to contribute now. I've found the motivation I needed. Will you?

Code Tax

Everyone knows the aphorism "Nothing is certain, except death and taxes." It is with that certainty that I declare a CODE TAX! Can you afford the monthly payments? What is a code tax? It's a concept similar to technical debt. Let's say you have a code base that's in perfect shape, no major defects, no design issues, the perfect set of interfaces, abstractions, OO modeling. Perfect! Now you have a deadline, project management is breathing down your neck. You decided just this once that you'll take a few shortcuts. You'll write some code without tests, you'll just put in a few methods here, a few global variables there to solve the problem quickly without properly handling various situations. You just accumulated some technical debt, and pretty soon, you're going to have to pay some code tax (yes, i know you don't usually pay tax on debt, but just roll with me here for a minute).

So the next set of requirements come down the pipe, and you are short on time again. You haven't had time to go back and refactor those changes, and so they are just hanging out there. In fact, you have to cut some corners again. You've just increased your tax. The more you take (shortcuts, technical laxity, etc), the more tax you owe! Wouldn't you like to reduce your liability?I know what you need, you need a few deductions! TDD - test driven development. Write some tests, or write a LOT of tests, and you can reduce your taxable code income.

Nobody likes the tax man, so please do your best to avoid him.

What does it all mean?

Yes, I know, equilibreal is a misspelling. Those who know me know I would never leave a misspelling on my website or blog if I could avoid it, and I would proof something as important as the start of my blog. Also, right now, the red squiggly is taunting me. I don't have OCD, except when it comes to spelling. Now that the internet has been 'live' for years, naturally most single word URLs are going to be taken, so I knew that to satisfy my need for simplicity, I would have to compromise by utilizing a made up word.

I love the word equilibrium, because that perfectly sums up my feelings on life. I strive for balance, for the static state, the equality, the balance equation. I'm not an extremist in anything, and if I am, then it's only for a while until i can return to an equilibrial state. I believe in the yin and yang, the dark and the light. As Sinatra would say, you can't have one without the other. Don't we as a culture like that dichotomy? We like the hero juxtaposed with the evildoer, the calm before the storm, the sunset and dawn which is that perfect balance of light and dark. Equilibreal is putting the "balance in reality" because that's what I'm about.

I'm interested in technology. I have a computer science degree and have been interested in technology since as far back as I can remember. These days I'm a coder, programmer, hacker - pick your favorite term. I work with an elite group of developers who are as passionate about technology as I am, something I had been missing for a few years before that as I transitioned through some jobs in the industry. Now that I have found a good home again, it has rekindled that passion in my heart and I want to write about it. I'm as likely to write about cell phones and laptops as code and hacking, so hopefully you'll find something you like here. I'll be putting my particular spin on things, which is to find the balance in everything.