The other day I posted the following on Twitter:
Continually frustrated that addons are the first suggestion for functionality that can often be pulled off with native code.
This tweet kicked off a busy discussion that really just proved (yet again) that, while Twitter can be a great tool for communicating sometimes, other times a quick tweet can just create a hotbed of misunderstanding.
So let me say what I really meant:
Continually frustrated that addons are the first suggestion for functionality that can often be pulled off with native code.
Hmm. Not that different. Let’s dissect what I did say:
Continually frustrated
Yes, this is a frustration of mine. I have a somewhat unique position in the EE community in that I teach more people to use EE than most other EE developers. I’ve had many students come to class with either preconceived notions about EE given to them by previous experience with other CMS or by the EE community in general. I get students coming in with a site built by someone else now tasked with taking it on both from a content management perspective and system management perspective. I’ve seen sites loaded up with screen after scrolling screen of plugins, extensions and modules - with no documentation of their use from the developer. I’ve had to evaluate sites loaded up with both commercially available add-ons and custom-developed add-ons, and tell the client that it would be easier to re-create the site in EE 2 than it would be to migrate it.
I often think about how much more quickly I could get someone up to speed on EE if they came in with good HTML & CSS skills but no other knowledge about EE. Sometimes I need to tear down their preconceived notions so that I can lay a foundation for better development approaches with ExpressionEngine.
addons are the first suggestion for functionality that can often be pulled off with native code.
In my time on Twitter and in the forums I often see newcomers to EE ask a “how do I” question and the first response they get is that they need an add-on. I’ve always thought - and taught - that they should look to see what they can do with native code first and start there. Why? Simplicity. If the desired functionality is achievable with native code to the point where the end client is happy with the approach and outcome then this is a win for everyone involved. The install, the support model, and future upgrades are simpler.
Now let’s talk about what I didn’t say. I did not say to never use add-ons. I did not say any and all functionality could be always be achieved using native code. I know there are parts of EE that benefit from add-ons. I use add-ons on most of my sites (but do note this interesting response from Les Camacho of EllisLab). I appreciate the aftermarket for EE and the greater degree of client projects I can do using EE + add-ons.
I simply meant what I said. First look to native code for a solution. At least figure out if EE can do what you need without an add-on. This decision will obviously be a quick one where the required functionality is large (the site needs an eCommerce section that can accept credit cards) or not so quick where the task at hand is much smaller (the client wants to manage meta content for SEO purposes).
If for your particular need the choice isn’t immediately clear then take the time to model a solution using native ExpressionEngine code. Get feedback on it from your client. If then for any reason you or your client aren’t happy with the results by all means look to an add-on for a more advanced or elegant solution.
However - keep in mind that no one in the EE community is formally vetting add-ons. Being listed on the Devot-ee.com is no indication that the add-on was written well, by someone intimate with EE, with security and scalability in mind, that you will get any sort of support from the developer, or that it will be available next time you need it. Some add-ons are created by developers new to EE and possibly just not aware of existing ways to produce the required functionality. Other add-ons are created by developers to satisfy needs or clients that aren’t exactly your needs or your clients.
This add-on will become part of your work, your deliverable, your abilities, and your face to your client. Be smart about taking on that risk. A good add-on can make you look like a hero, a poor one can make you the villain. Being careful about this process is part of being a responsible developer and business person.
Comments are closed, but you can read the comments other people left.
Steven Grant on March 15, 2011
Boyink on March 15, 2011
Sean on March 15, 2011
Rob on March 23, 2011
Boyink (Author) on March 23, 2011
Rob on March 24, 2011
Boyink (Author) on March 24, 2011
Ira Salsberg on May 11, 2011
Boyink (Author) on May 11, 2011
Ira Salsberg on May 11, 2011
Anna Rebbeca on March 11, 2012
Boyink (Author) on March 12, 2012