If you are constantly looking for third party Drupal modules to solve all your problems then you need to understanding that you need to think outside the box ( or inside what is packaged ). Drupal 7 is now packaged with basically all the tools you need for most cases.
It comes with jquery, views and cck.
Everything boils down to requirements, work flow and usability. This will cause you to look torwards a module or custom build. For most of the simple issues, just going with a module is great but what is “great”?
Cost vs time vs learning curve vs quality.
It’s really easy to make a dirty drupal site loaded with 20 different modules with a lot of dirty PHP code and horrible html structure that isnt semantic or validates. In doing so, cost over time can be great due to updates and changes to these modules.
Out of the thousands of “High-Quality” modules out there, only about 10% of them are worth the time. Most of those modules have dirty PHP code with improper hook fucktions (this is a pun). The other reason why it’s so easy to do dirty coding in Drupal is because drupal is PAC not MVC. If you don’t know than google it and refer to these resources.
Does drupal have a MVC? – http://stackoverflow.com/questions/4418552/does-drupal-comply-with-the-mvc-paradigm
Some people use about 30 different modules for a simple Social networking site. (they must love loading up their file system with un-used jargon and killing their processing speed). Memory usage in general for drupal is high, which is why you use caching (depending on how huge the site is). Every time you do a page query on the serverside, it’s processing every variable possible.
Again, I am not saying to solve your problems with code all the time. What I am trying to say is that you need to understand the technology driving the Drupal cms (any cms for that matter) and what is packaged with it. I am not saying that you should NOT use Drupal or Drupal Modules. (hell, turn Drupal into a MVC – http://dsheiko.com/weblog/building-a-site-on-drupal-using-mvc )
All I am trying to say is that you should try your best to avoid overloading with modules, do code review on the modules you are using and don’t blindly just trust any module that is out there. Just because it’s opensourced doesn’t mean everyone follows best practices.
Pro’s and Con’s to Open Source ( don’t assume, just say “maybe”) – http://www.netc.org/openoptions/pros_cons/comparing.html
Drupal Best Practices – http://drupal.org/node/1141442
If you arn’t constantly looking for improvement and re-evaluating process then you are doing it wrong. Be minimal, be exact and code with a clear direction of flexibility with as less dependencies as possible.
( this post is really just intended for the people on this discussion)