User interface design remains a strong area of interest, and there is increasing enthusiasm about design patterns and component-based development. However, I've encountered projects that have more than a million lines of code but virtually no architecture or other design documentation. Some may argue that explicit design activities are no longer necessary, but I don't agree. I've worked on projects in which the time spent on design resulted in a simpler and more robust solution than if we had just written code based on the detailed structured analysis. Increasingly complex, distributed, and multiplatform systems demand more thought about how best to construct them, not less.
Sound designs can facilitate effective component development, use, and reuse.
Documented and well-communicated architectures enable developers to safely make enhancements that don't compromise the system's quality. Perhaps college students don't learn about classical design approaches, and when they enter the workplace, their older colleagues aren't using the newer design techniques. Caught in a time warp between methods, many new grads don't do any design at all. Perhaps a new hire's role models treat design as some quick whiteboard scribbles on the way from the requirements elicitation workshop to the source code editor. The rush to whip out code doesn't seem to leave time to contemplate how best to structure software that will address the user's needs effectively.