'Fad Driven Development'

by Chris Maloney
Published 10-2-2014

We find fads around us everyday. They arrive in the form of diets and exercise, music, clothing styles, tech devices, and the topic of my interest, programming languages/frameworks. If you've spoken with other web shops or developers I'm sure you've heard frameworks and methods thrown around such as Ruby on Rails, Node.js, Mustache, Handlebars, MongoDB, and many others.

The nerds of the world will try to convince you in no shortage of words why their chosen framework or programming technique is so different and better than anything else. But at the end of the day, they all do the exact same thing. Web applications populate a database with information provided by users or external connections, allow users to login and view the data, search it, manipulate or interact with it, and save the data back to the database. I just described to you Google, Facebook, Zillow, Twitter, Ebay, Wordpress, and everything else. Almost all of them were built on differing languages.

And believe it or not I know of a fad diet too that I'd like to present to the world. Burn more calories than you take in and you'll lose excess fat. That can happen through exercise, metabolism, food intake, or a combination of all 3. Earth shattering discovery! And you know what, programming and web development has a similar conclusion.

One of my favorite quotes regarding software development is by a british software engineer:
"Any fool can write code that a computer can understand. Good programmers write code that humans can understand."
-Martin Fowler

So with this in mind, my approach involves the following

  • Write code and use methods that aren't going to leave another development scratching their head and banging their fist.
  • Don't go around chasing every brand new framework or technology that hits the streets. They're untested, unrecognizable by other developers, usually involve difficult setups in the beginning, and you have no reason to believe it will exist 1 year from now
  • When doing client work, use the programming language and techniques in which you're most proficient and that you know work. You're doing a disservice unless the client is aware of the lack of proficiency
  • Once newer methods are tried, tested, and have a large support base, seriously consider learning and switching

At the end of the day it's about being accurate, efficient, responsible, and trustworthy. Give me a shout and you'll see the difference.