There are two different ways to approach code. Generic, fits anything and everything for everyone. Or custom and as easy to use as possible, but just for one client.
Most of what I do is the latter. An image carousel I've been working on made me think about the dichotomy between these two a lot. The way I build applications for concrete5 seems to be completely at opposite with what most people doing things for the marketplace
I know a lot of people who work with concrete5 use image sliders out of the marketplace. I've used several myself. Often, it's a quick jump up to buy a 15 dollar add on that has what you need and call it good. If it's just "put a carousel on the home page" then you can do that with no problems at all. If there are things that need to be tweaked, that's often pretty easy. The GUI for editing the form will have tons and tons of different options. There will be 30 themes to use as starting points. Perfect for a developer.
This works if you're looking at a small site. The 'brochure' style marketing site that c5 excels at. Or your grandma. Whoever is running it.
That's not always what a site really needs. The end client is often given way too much power and control over their site.
At the end of the day, the designer knows what it should look like. If you are hiring one, then you don't want them giving you a tool that can let you break your site and make it look ugly. When the design is critical, and you have a lot of editors, then the number of options in the editing interface HAS to get simpler. Every aspect of the experience for the editor has to be thought of.
It may be a bit different than other developers, but what I get when I work on a site, there's typically a very specific layout for everything. You can't pick the width. You can't say "This slide is going to use 40 point green text and a 5 second transformation using the swipe left cube scatter animation" or whatever other stupid crap. Does anyone even care about that stuff? Will they buy more products because your animation of ________ was a little bit smoother on the page load? Prefer televisions over stereos because of vertical vs horizontal bars in 3d rotation?
Nobody cares about that stuff at all but people that are paying for a 15 dollar add on vs a 20 dollar add on.
I should care about that market, but I don't. The stuff that I sell in the marketplace, really, it's not for them, it's for other developers that are building things for them. I try to make sure that the code is as easy to work with as possible, really easy to extend or turn into something else. But the editing interfaces aren't totally overblown like some of the marketplace things that I've seen. They're stripped down, completely the opposite of what the others do.
Take this, the latest slider I've worked on:
There are a lot of little things here that most developers wouldn't think of.
It's kind of weird to feel pride over something so mundane. The design is pretty minimalist. There's not a lot there. Yet what is there is the anticipation of every action the end user will take, and what it will mean to them. How that will work with the overall theme of the site. I really like working on stuff like this, honestly.
Really, if you want a quality website, you don't want to give the end client the ability to make something like this.
What really sucks, though, is that people look at the options (not just sliders, but themes, extensions, whatever) available on these 15 dollar programs and then lose sight of the value of quality code. Why pay when you can just go buy a plugin. What's missed is the process of actually understanding who will be using the site and how it will fulfill their particular needs.
The tailored fit.