Lazy Programmers
The best programmers are lazy programmers. Drupal, more than many other systems holds that maxim to be true. Why do lazy programmers have an advantage?
Because Drupal is not a traditional software framework. It is a framework, but it is a community first and a framework second. There are over ten thousand existing modules to choose from and thousands more blog posts and online resources to copy code from. Add to that a thriving community on IRC channels, forums and commercial support companies like Acquia and there are many ways to find solutions. The last thing you should resort to is writing custom code.
Custom code is expensive to maintain, risky to a project and creates a dependency on the people who wrote it. So while it is necessary to write some code on the vast majority of large Drupal sites, strive to practice configuration before coding. You can accomplish a lot just by picking the right modules and configuring them to suit your needs.

Comments
Amen!
This is one of the things that attracted me to Drupal. And when I tell other web developers about Drupal, it is the hardest sell. So many people in our industry think they have to reinvent the wheel. Not so with Drupal. Thanks for putting words to my thoughts!
Hi Reed,
Hi Reed,
Thanks for stopping by!
Great!
So true, which is why the answer with any drupal question is always yes we can
I'm torn
I have a mixed response to your article.
For starters, when I saw your tweet linking to this article, the title made me think you were going to have a rant about all the terribly lazy programmers out there.
When I read your article, I realised what you meant by the term, and overall I had to agree with the principle and its various reasoning. I've always been a major fan of top-down stepwise refinement of a project, and the modular concept of Drupal fits in well with that, as does the principle of reusing things that are already out there that work.
But the flip side is my own experience: I've spent just over three years now working on custom code for Drupal. It's now almost 10kB of code in my main module (no, most of it isn't comments, and, yes, I know it needs breaking up into sub-modules - in fact I've been calling for a major redesign for over half of the three years). This has evolved from a tiny prototype, and whilst we do use a few outside modules, mostly we don't because the client has had a very particular idea of how things should work and what features and behaviour should and shouldn't be there. As I've pushed for the chance to step back and redesign, I've thought for a long time about how I could separate the very specific requests that apply only to our own specialised field from the more general functionality, and work towards releasing that latter into the community and finding ways it can fit in with what others are doing (including, for example, full compatibility with the media API).
And so at last we're about to close up on our current version and start thinking about the next major version. It seems in the end that we're going to be even more radical than I was pushing for. I understand we're going to go back to the drawing board, and in what is probably a very wise move, my newer colleagues are going in first, looking through the requirements and the modules that are out there in the community now and working out how they could be matched up, before bringing me back in to work out what needs to be coded to fill in the gaps for our (client's) needs.
Of course that is a wise approach and - for many of the reasons you gave - it will stand us in better stead than having such a huge custom code base. As I face up to that, though, I have to say that my heart sinks. I'm a programmer at heart, and the idea of becoming a researcher and evaluator and admin/configurator - with actually coding only as our last resort - just doesn't appeal.
So whilst I endorse and embrace the concept of lazy programmers, both in general and in my own specific context, as a keen programmer I feel rather stranded by the idea. Maybe I need to become a module or core developer at a more general level rather than be involved in a project implementing one specific requirements set...?
I'll keep pondering this - thanks for bringing it up!
PS - Assuming you're either already here or on your way, welcome to England, and almost to my home town (I grew up about 2.5 miles away from the Fairfield Halls and am staying there with my parents this week in order to be at Drupalcon). Have a great convention and maybe I'll see you around!
You know you hit a chord when
You know you hit a chord when the comments are longer than the post.
I hear you, and I too know the siren call of building the next great application. I guess a less pejorative way of saying it is that programming should be like a martial art. You can kick anyone's ass, but you need to have the disceplin to not use violence unless aboslutely necessary :)
I have to say
Totally agree with your last comment Jacob, isn't the main reason of using a framework "Build your applications, not your tools".
It's also true when working in middle to big size projects it's necesary to write some custom code, but in most of the cases the desired functionality can be achieved. As you said "picking the right modules and configuring them to suit your needs".
This is so true
LOL! I believe that too. Lazy programmers are the best programmers, just look at Steve Jobs inventions., ideas and creativity because he is lazy he wants things done more effeciently and faster.
Yes, I gree with you, now
Yes, I gree with you, now programmer more lazy because have many CMS and Framework. But they have little time to code and more time to think the solution :)
Glad to see you in my blog :) <a href="http://howtoknowifyouarepregnant.org/" rel="external">How to know if you are pregnant</a>
Agree with you. Lazy
Agree with you. Lazy developers cannot hide specific problems for weeks. Every day you have to explain your progress.
agree ...
I agree with Jacob.
In real world at major branded companies this is not the case.
As per my experience till date:
In large projects where there are groups of developers (with mixed skill set) involved I see people preferring to write custom code rather than learning or developing the advanced drupal skills.
Eg: If there are some client requirements which can be solved using 'Rules' & if the majority of team is unaware of usage of rules - people in this team prefer to write custom code rather than learning the usage of rules irrespective of availability of people knowing rules within the same team.
This case should be minimised as much as possible to attain the real benifits of using open source softwares.
Totally. I had an experience
Totally. I had an experience talking to a practice lead of a large (very large) software company who said "give me two weeks and I'll get you 40 Drupal devs". Yeah right. For Drupal it's all about context, not just about knowing the APIs. That's why teaching it is so hard. It takes a lot of experience to discern best practices.
Using obd2 code scanner DIY
In 1996 the EPA(Environmental Protection Agency) mandated that the computer interface for all vehicles sold in the United States should meet a common standard. This means that consumers could go to an auto parts store and pick up an inexpensive scanner to pull the codes from the ECM themselves.
Developers vs Programmers
Spot on.
I think the differentiation between developers and programmers is becoming a bit clearer these days.
A good web developer is not necessarily a programmer, although the likelyhood is that they can write code. A good web developer is often a lazy programmer but is just as likely to be someone who hasn't written a lot code but knows how to configure the hell out of Drupal, or Wordpress or any other associated web framework.
I know people will argue this! The likelyhood is that most projects will require some programming, thats what a good programmer is for they shouldn't necassarily be the guys configuring the framework though or marking up the html for any templates.
Post new comment