FOSS Changes The Build vs. Buy Equation

by Mike Levin SEO & Datamaster, 05/08/2012

Relying on pre-built tools always felt a bit icky to me. In the contest between build and buy, my heart always lands on the build side, because only then do you have complete understanding (no manuals necessary), complete control, and unique differentiation and competitive advantage. But it’s a fallacy, because we all really buy anyway—nobody burns their computers from sand, for example. and build is only for special cases. It’s just a question of which components we build vs. buy.

So, I’ve been using Wordpress a lot lately, and am being nudged onto Drupal. Both are on PHP and both are the sort of software I’ve written in the past for “internal” use. So, there’s two strikes against each in my heart: I already built such a thing, and it’s on a language I’ve been avoiding. Yet, I am embracing both, coming to grips with this eternal internal struggle. There’s just not enough time in the day, or in our lives, to not be taking these shortcuts and getting the advantage of the “buy” route… yesterday.

So, when do you build? Why not just buy everything and simply make better use of the tools as a user, rather than burning resources and getting into the feature-development and code maintenance rat race? The answer is two-fold: First, just buying is the correct route so long as your needs are met by what’s available, and your skill as a user lets you transcend the tool’s limitations and “signature”. Second, if those very limitations viscerally stifle you each and every time you use the tool, and research has yielded absolutely no better solution, then it may be time to build.

Now the paradox here is that by spending all your time as a tool-user and not a tool-maker, you have never developed, or have allowed to get rusty, your build-skills. So, when the time finally comes to build, you don’t know where to begin and are totally reliant on others to do your building—which is almost as bad as buying, because you are now simply buying something else (dev services) and will forever be dependent on them.

This is where computer literacy and NOT choosing a programming language like C++ or LISP comes into play, by not having to make a life-time commitment to achieve mastery and spring into action at any time. I’m endeavoring in my life to bring Python into play in more and more places, so it’s not relegated to those few times I have to build my own software. Instead, I crank out a task here and there, keeping my skills sharp, and continuing on a lifetime journey of learning, collecting recipes and patterns.

So I’m basically programming as little side-projects to automate things here and there in my life. It’s not a major endeavor, and doesn’t require expensive servers, or for me to get into the feature arms race, nor maintain a programming code-base that other people rely on and have me on the hook for. Instead, I’m enjoying the fruits of products that have really miraculously matured. Better-still, they tend to be open source, so the question isn’t really even “build vs. buy” so much as it is: build vs. use pre-built stuff that I can modify as I like, conserving my energy for where it’s really important.