To code or not to code,┬áthat is the question. The more experience I get, the less code I try to write. Seems weird right? Not that writing code is bad, it just doesn’t make sense to solve problems that have already been solved. I find it much more rewarding for my clients to integrate open source solutions into the technical fabric of their architecture. That way, they piggy back on the countless hours of effort open source developers have devoted, and I can concentrate on seamlessly gluing together the integration points in a way that still leaves flexibility if/when certain parts of the system need to be replaced. Implementing open source solutions is definitely more of a mind frame than anything else. If you truly want to make it work, you need to make each component fully fit into the development process. Probably the most important thing to consider is “How easy is it going to be to upgrade when a new version is released?“. That is where a good understanding of source code version control systems comes in handy. If you are using git, you should definitely get familiar with submodules and Subtrees. Similarly, if you are using subversion, you should check out Vendor Branches. Using these techniques, you can make it easier to keep your project up to date with each of the third party libraries that you are using.

highlanderBefore I start writing code for a project, I try to ask myself if the problem I am trying to solve is specific to the project. If it is not, I try to tap into the arsenal of open source frameworks/projects that I have become familiar with. There is definitely a learning curve involved with learning a new framework. A couple of years ago, I learned Drupal and WordPress which are leading php content management frameworks. I will have to confess, that things didn’t really click that fast. I had come from an object oriented background with most of my experience in Java and Ruby frameworks. The patterns that Drupal uses to override and extent functionality seemed like a step backwards in evolution. After a few years and many projects, Drupal and WordPress have a special nook in my bag of tricks. Because I have experience with them and have lists of proven plugins, I can produce some pretty amazing content management systems in a short amount of time. The steep learning curve is definitely a deterrent, but it was not long before I felt like the “Highlander” absorbing the power of a slain immortal.