For a long time software development fought with performance. Performance was the limiting factor for a lot of software systems. The picture shows that complexity of IT-systems is growing much faster than performance. So nowadays the limiting factor for the development of an IT-system is the complexity and not performance any more.
So managing complexity should become the primary focus of software development. There is a need for concepts and technologies/tools/frameworks that help us to get a grip on complexity-management. I think Object-Relational-Mapping, Domain Driven Design, Dependency Injection and Aspect Oriented Programming are steps in this direction. These concepts battle complexity by applying Separation of Concerns, intuitive Modeling and abstraction.
Another trend is Model Driven Architecture and Model Driven Design. I am not yet convinced by these methodologies, since in my opinion they rely too much on tools, which leads just to another dimension of complexity… but I am looking forward to get enlighted ;-)