Well, for my Christmas break, I wanted to take that time away from all the day to day time consumers from work and really dig in to developing a solid company intranet site.

I work for an ad agency, so the business goals in this effort have been around developing some solid workflow and online forms for Job Tickets (projects) and Work Orders (cases). I also want to implement secure sandbox "homepages" for client accounts, which would have simple access invitation functionality so that account reps could easily invite (and have the appropriate access granted to) users from the client as well as internal team members.

Those bits of functionality have been the core I have been focusing on implementing.

Through this past week, I have achieved about 70% functional success in this.. I have also collected some 70 custom modules. 70!!!

Okay, looking back now, I think I should have never really looked too deeply at any of the custom modules but simply started right away developing my own very specific modules.

But the thing with Drupal, at least with my experience, it is touted that there are soooo many modules available that this becomes the first place one goes to look to solve a particular problem or implement some functionality. And once one really gets in to this way of thinking, it becomes difficult to pull back and really analyze the cost/rewards ratio of the time spent trying to figure out what modules one really needs, plugging all the wires together, and getting it to work.

I have spent a huge amount of time with that and now have what I think to be a very unwieldy, extraordinarily complex and impossible to 'hand off' to anyone, and buggy system (as a result of one module screwing up another module, naturally)

The public module library is great.. don't get me wrong. But it is a trap. Beware. If you have to create any system of any level of complexity, just take the time to learn the Drupal API and do it yourself. You'll complete your work much faster and have a system much easier to maintain. Trust me. The amount of brain damage I have had to endure trying to figure out this whole module mess and what I need and then oh shit it's all screwed up and I have no idea where this SQL error is coming from or why etc etc..

Once I arrived at this thinking, it isn't too hard of a jump to wonder why use Drupal at all, then. There are so many VERY nice libraries now to pull from such as CakePHP, Rails, Prototype-JS, DOJO, et al... Libraries that are designed from the beginning not to fool you into a point-and-click expectation mentality.

I don't know. I've really admired the spirit in Drupal and the programming brains gone into the architecture and API. But I have just spent a huge amount of time for a very small result. And I know in my heart that if I had approached this project as a pure custom app from the beginning, I would be much closer to success with a system much more maintainable and much easier to understand and "talk about" with others.

As it stands now, despite my best efforts, I have what I feel is essentially a mess.

:(

I'm really not trying to troll here. I have been developing highly functional web applications since 1993. It was in version 3, I think, that I first got exposed to Drupal. This is my first "serious" effort at developing a very custom Drupal implementation.

Comments

reubenavery’s picture

Oh, and the time spent scrolling through windows, clicking back to this module's settings and then to that module's settings and where the heck was that other module's settings anyway...

God, seriously, I thought I was losing my mind yesterday...

Hours and hours spent just clicking on links and waiting for loads (even running locally) and scrolling through long ass pages (the menu admin page, the workflow access permissions page, etc... ugggggg i can't tell you)

keith.smith’s picture

Well, I don't know that your experience is all that uncommon.

I did almost the exact same thing for my first site -- installed a bunch of modules, and then at the end of it, realized that there was a simpler way.

I'll bet that if you were to start from scratch now and rebuild the same site, you could do it in a quarter of the time, with a quarter of the complexity, and probably with a quarter of the modules. So, in terms of how this experience has "ramped you up" on the learning curve, it certainly hasn't been a wasted effort. Every framework will have its learning curve issues.

In my experience, most complex sites these days are built with Drupal core, and several very flexible and well-maintained modules, like CCK, Views, Pathauto, Autonodetitles, Token, etc. Project module and friends if you need that specific functionality. Imagecache and friends for images.

With a bit of custom "glue" code tying these modules together, you can do a lot in a short time.

--keith

reubenavery’s picture

Agreed.

I' ve been wondering to what degree I should use CCK, especially for a site like this which is very much a one-off for my present client. It was such a pain and took FOREVER just to create two separate forms with about 30 fields each. And then I have to come back and figure out how to use Content Templates to get the layout and formatting to any acceptable level.. I'm just wondering why should I bother with that and just straight hook to the Forms API. If I need to change or add fields, I will know where in my code they are defined, right?

sepeck’s picture

Because the learning curve is something you go through once. Tons of other people are using these tools as well so you can leverage their experience over time as well. Also, Drupal upgrades. Well maintained modules have an upgrade path for the data.

That said, nothing wrong with building your own stuff if it's your stuff.

-Steven Peck
---------
Test site, always start with a test site.
Drupal Best Practices Guide -|- Black Mountain

-Steven Peck
---------
Test site, always start with a test site.
Drupal Best Practices Guide

SueCarlson’s picture

With all the mods, they expect us all to know exactly what they are talking about with the drupological terms. If they just tell me, put this in this files, as they do with MOST mods, I am cool, but when you have to consider putting this file in this folder and that file in another folder or changing code here or there then it isn't going to work for my members. While I might know the code, the people I am builidng the sites for will not, so it only makes my job more difficult in the long run.

www.sueswebdesigns.suesman.net