How To Program Like Mahatma Gandhi

“Be the change you want to see in the world.”

If you work with software long enough, especially open source software, you’ll find yourself saying the words, “This is great, but it would be INCREDIBLE if it could…” If you work with closed source software – that is, software that you’re not allowed to modify – the best you can hope for is to let the development team know of your wishes and hope and pray they add them to the next release.

If you’re working with open source software, you have an opportunity to make actual change. You may have noticed that I’ve recently posted a couple of downloads for WordPress plugins. I’ve been working on a new site built entirely using WordPress and free plugins, all of which are open source. It’s unbelievable what you can do with just these resources, but there were a few instances where I needed just a wee bit more than the plugin could provide.

Since they were open source to begin with, and since I knew I wasn’t the only one who would need them, I went in and made the changes myself. I’m fortunate in that I’m a PHP expert – making these changes was a pretty trivial process once I understood how WordPress’s plugin architecture worked. Still, it cost me time – probably about five hours total – which does directly translate into time taken away from paying client work. While it did cost me something, it was a rather small price to pay considering how much time I saved by using the original plugins to begin with. I felt these plugins needed something added, so I took the time and added them. Since they were open source to begin with, I re-released them on my own site with my added code intact so that others can use it and modify it as needed. I saw a change I felt needed to happen, I made it happen and now, the world benefits.

But we’re not here to talk about how awesome I am. This idea of improving on something and giving it back to the community is the core of the open source business model. If you don’t have the money to contribute to something, you should contribute your time and talents. If you see a need in the software world, you should take steps to fill it. Too many people whine about what should be, not enough people take action to make it as it should be.

But what if you’re not a programmer? If a project you admire needs your talents – marketing, evangelism, graphic design, etc. – you can build a great reputation by pitching in. If that doesn’t work, why not adopt a programmer? For example, if I was unable to modify the plugins I needed changed for my application, I could have hired a programmer to do it for me, then re-release those changes for all to use, thus strengthening the overall community. If that was cost prohibitive, perhaps I could have pooled my money with other non-programmers who need the same things and together we could hire someone who can make it happen. I could have found these like-minded souls in the comments sections on the plugin homepages – they’re frequently filled with messages saying, “Great plugin, but I need it to…” with no offers of either talent or money.

Open source software is never free. Programmers pay for it with their time and knowledge. They’re compensated either with money from the clients they’re working for or by using other open source code from like-minded programmers. It’s that old time = money value exchange. If you value a project and want to see it evolve to better meet your needs, then take it upon yourself to make it happen!

Leave a Reply




You can use these HTML tags

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>