The Microsoft Solutions Framework
The Microsoft Solutions Framework (MSF) is based on a group of models, principles and guidelines that aid in developing .NET applications by continuously managing team members, technologies and design processes. One reason I endorse the MSF as a design process is the success of those who use it: The MSF has evolved from the experiences of both Microsoft developers and external customers, vendors and developers throughout the IT community. This is important, as a pattern created in a classroom or textbook that has no real-world application is a waste of everyone's time and resources.
Process Models - The MSF Process Model attempts to combine the best of both worlds by taking the best parts of the Waterfall and Spiral models and merging them into a workable design process. Waterfall models excel in scheduling and task assignement, while spiral models tend to generate a cohesive team between developer and client by involving the customer in all stages of the product lifecycle.
Instead of a straight-line model, imagine a spiral line with milestones at specific intervals along the path. This is Microsoft's image of the MSF process model. This allows the project to iterate over n cycles until the product is deliverable, while maintaining aggressive but achievable milestones along the way. In my experience it is necessary for developers to have short-term goals, else the direction and destination of the project become murky in a never-ending queue of tasks. Talk with a developer that hates their job, and I'll bet they aren't being challenged by their project load. Or they're coming off a nasty 12-hour Mountain Dew high.
The process model is separated into five phases: Envisioning, Planning, Developing, Stabilizing and Deploying. Think back on the last few projects you have worked on. You've probably been working through these stages, even if you didn't know it. If you didn't spend enough time on one of these stages, you've probably spent quite a chunk of time in the Stabilizing phase. We've all been there, putting another Band-Aid on an app that you KNOW wasn't the way to handle the issue, but project constraints have forced your hand. The MSF attempts to limit desperation code by allowing a flexible project lifecycle.