Cagao has asked for the wisdom of the Perl Monks concerning the following question:

First off, I have a slight concern with using such tools, in the way they could possibly improve things (dev time seems to a big one), but perhaps I just don't see it yet.

I write pretty good modules/objects to do what I want, and get things out the door quickly, along with testing, so why would I want to abstract all that and create yet another level between what I want and how it does it?

Especially if it'll be a team of 10 developing with me, and 8 may leave in a month, then trying to find people with all those skills, which are certainly a bit hard to come by in my part of the world.

One thought that I believe is that you should only really use such tools/modules once you've done it fully yourself manually. Just like when we all (hopefully you'll agree) started writing CGI program and simply printed HTML, then eventually moved to a templating system, because we knew exactly what it was doing.

I hear a lot of promotion for things like Catalyst and ORMs, but even starting the tutorial in Catalyst I had over 10 directories and sub-dirs not knowing what the hell went where.

Are these tools to be used all the time? Would you advocate them no matter what? or do some other things come in to play?

I'm obviously talking about web-based database systems here, even some pretty huge ones.

I'd really appreciate some straight-up views.