Many product groups at Microsoft use a software development methodology which is called the Synchronize and Stabilize Model. One of the earliest software development methodologies created is called the waterfall model. Here the requirements, design, implementation, and testing phases are done once each, in order. This approach is often used for military and medical systems. Another methodology is the spiral model. Here, instead of one meta requirements-design-implementation-coding phase, the multi-step process is repeated several times, with each cycle typically taking two to four months. This approach is often used for commercial software applications. A popular form of software development methodology which appeared about ten years ago is called agile development. Here the same multi-step, requirements-design-implementation-testing process is repeated over and over, with each cycle taking typically about two to six weeks. The synchronize and stabilize methodology is characterized by several things. The requirements-design-implementation-test cycle is repeated over and over until certain milestones are reached. These milestones have different labels such as MM1 (major milestone 1), Alpha, Beta Release, CTP (community technical preview). Often, the test team is separate from the development team, and builds of the system under development are produced daily. This approach has been very successful but requires a lot of resources and money. If you are a software tester you need to understand the differences in software development methodologies because testing approaches which work well in one type of development methodology will often not work well in a different type of development methodology.