One time I was on a bus in Seattle on my way to a software convention. I sat next to a computer science professor from Israel. We talked about various CS related subjects but I remember one thing the most. I asked him what was the biggest problem in CS. He simply responded with "Dealing with complexity".
Every system I've worked on seemed to approach a critical mass where changes get harder to implement and bugs take longer to fix. Problem is dynamic users like "business" need systems that can change rapidly.
I've been paying attention to what the Ruby on Rails folks are doing. Simple things like programming by convention and code generators seem like perfect tools for tackling the complexity problem.
Programming by convention is really a neat way to keep the bits clean. In typical systems every programmer adds their own "interpretation" of how things should be done. This even changes for the same person over time. If the framework works via convention, say any table with a primary key gets a dynamic class for setting up CRUD screens, it will result in less code to maintain along with less variance throughout.
I would love to see what the real dynamics are like with the Rails project. In addition I would love to see the project after it's been hammered by bug fixes, time, and post implementation programmers. Would it turn out any better?