Tag Archives: Programming

Wordcamp Seattle 2011: The Beautiful, Ugly World of Open Source

Hagget Hall during Wordcamp Seattle 2011

Seeing actual Automattic employees at Wordcamp Seattle gave the event a different vibe than the ones I had been to before. When you watch Scott Berkun or Andrew Nacin talk about the software and the open source community that created it, you get the feeling that they’re not just making money from this neat little serve-side toy. They are making a TON of money and changing the face of publishing on the web  while they are at it.

Whether I was learning about plug-in development best practices or the trials of the theme marketplace, every presentation I went to stressed the importance of the open source community in moving the industry forward. However, I found the most interesting talks of the day were at the lunch tables. It turns out all is not well in the worker’s paradise of open source.

Automattic is the company that runs the WordPress project. It decides which features are included by default in the next release of WordPress. This could be a bad thing for the community. As Trevor Green from Azure Creative pointed out, while the software is open source, the WordPress brand is not.

For instance, their plug-in called jetpack installs a slew of features that some say could be handled more competently by other plugins. Because Automattic has such a strong hold over the WordPress.com brand, a plugin like jetpack could discourage further development.

I have no delusions that Automattic is secretly planning to turn WordPress into a closed-source gulag. That would be spaying their golden goose. However, their momentum as a corporation and within the community makes it impossible for them to make a move without affecting the software ecosystem. Could the same thing happen to other open source projects, like Ruby on Rails? Rails 3.0 already includes its own test suite by default. Could edge out “competitors” like cucumber or rspec?

It’s fascinating that even in the game of open source, there are still winners and losers. For smaller developers, it’s just another chapter in the constant battle against commoditization and obsolescence. If we want to eat, we’ll just have to move on to some other more open framework.

Much thanks goes to Trevor Green and Torey Azure from Azure Creative, Curtis Mchale from SFN Design, Srinivas Penumaka of ReadyPulse , Christine Rondeau of Bluelime Media, Jacie Landeros, and all the other attendees at WCSEA for providing such scintillating conversation.

Courting the Passionate Programmer

The Passionate Programmer

If you are a programmer, designer, tester, or in any way tangentially related to the software industry in your job, you must read The Passionate Programmer by Chad Fowler. Don’t fooled by its bad bodice ripper title. It is the first real career management book I’ve seen for programmers, and it is absolutely essential.

The problem with programming is that it’s a really young vocation. The first large-scale generation or programmers is only just retiring. You can find volumes upon volumes of heuristic wisdom for other professions like lawyers, teachers, and even blue collar trades like carpentry. We need our own philosophies to deal with the unique challenges of our industry, like the constant threat of obsolescence and the off-shoring of our jobs. The Passionate Programmer teaches you how to deal with all these issues and more. The chapters are short, but each of them ends in a concrete action plan. You’ll learn when to be a generalist, when to specialize, how to network, why it’s a good idea to automate IN to a job and how to search for your next indispensable skill.

I’m glad for books like The Passionate Programmer, and not necessarily for the strategies inside. Uncertainty and change are a way of life in the software industry. Every decision you make affects your future. Sometimes though, it’s just enough to know other people have faced that kind of uncertainty before. You need confidence as well intelligence to properly make your mark in the world.

Stack Overflow

Just in case I’m not the last person on earth to hear about it, stackoverflow.com is one of the most useful programming sites on the internet. If works a lot like Yahoo! Answers, where questions are asked, answers are posted by humans, and the answers are voted on for their effectiveness. Unlike Yahoo! Answers, the questions are less “How is babby formed?” and more of the “How do I get this *bleep*ing code to work?”. All manner of programming subjects are tagged and categorized, from ESRI to fortran.

Most importantly, by answering questions on the site, freelancers can show off their skills or keep certain areas of expertise fresh . Unlike posting on programming forums and blogs, stackoverflow has the potential to reach more people from multiple disciplines. If demand for one technology goes down, clients and recruiters don’t have to go look far to see what else you are capable of.

The Joy of Not Knowing How

The computer industry implants in the minds of many the legend of the lone programmer, sequestered in a parents basement coding the next paradigm shift of technology. The myth is not that far from the truth, since many of the big names in software, Microsoft, Apple, and Google, were all created by hobbyists charting unknown territory in code.

I’m sure that everyone working in computers today, everyone, has some crazy project roiling in the back of their heads. But the majority of us don’t even start, let alone finish these projects out of fear that we aren’t qualified to do this, that we should let someone with “expertise” eventually make that app we want.  What we fail to realize is that the “experts” rarely know more than we do what unwritten programs look like. The only reason they are experts is that they’ve made their fear work for them. The frustration and uneasiness that comes from a new language and technology drives them forward instead of holding them back.

So if you’ve got an app or a script or whatever on the back burner, get it up on the monitor right now. Find that spot where you left off and feel that mixture of rage, terror, and embarrassment that made you shelve it. That feeling isn’t telling you that there is something wrong, it is telling you that you are working on something challenging and worthy of your skills. That feeling, right there, is the frontier of software development.