A software process, or methodology, defines the steps required to create software successfully.
Teams have been writing software since the 70's. Clearly time has brought about many improvements in technology, language, and tools. While these advances are exciting, the most important part of software construction is "the how" not "with what".
In the late 80's, three engineers Dr. Ivar Jacobson, Grady Booch, and Dr. James Rumbaugh each published a software development process. Each had its own strengths and weaknesses. The software industry fell into several camps, each holding to one of these methodologies as better than the other.
Grady Booch was a founding employee and chief scientist of Rational Software. In the mid 90's Rational successfully negotiated the addition of Dr. Jacobson and Dr. Rumbaugh. The three leaders, affectionately called "The Three Amigos", were now under the same roof and working together. Their collective intellect brought about two revolutions in software methodology.
The first was in 1997 when they published the Unified Modeling Language (UML) specification. This was a combination and improvement upon their previously disparate forms of diagram notation. Finally, a diagram could be drawn and its intricacies immediately understood by software developers across the world.
The second achievement was in 1998 when the Three Amigos published the Unified Software Development Process (UP) which was proprietarily implemented as the Rational Unified Process (RUP) 5.0. This process combined the best points of the three other processes into one cohesive whole that could guide a project successfully from inception to completion.
It would take several years for the significance of these works to permeate the industry. Even today many software teams are ignorant of these ground breaking works.
To the uninitiated, these methodologies look to be opposing. News groups across the internet hold numerous debates on which method is better than the others. The truth is that they are wonderfully complementary, each addressing different aspects of the inherent difficulty constructing software.
There are four basic principles of the unified process: that software should stress use cases (which show how it interacts with users), that the process is architecture-centric, and that it is iterative and incremental. UP defines what steps and artifacts (documents, diagrams) should be expected in the four phases of a project:
The three fundamental points of Kent Beck's Extreme Programming are: that changes can be made to software both early and late in development with no increase in workload, that code should be written in pairs so it is constantly under peer review, and that software should be implemented as simply as possible (no over engineering in anticipation of future uses)
Obviously Microsoft has been writing large scale software for over 20 years. Hundreds of thousands of software developers are enlisted in their Microsoft Developer Network in addition to their Certification programs. The latest version of MSF provides a flexible framework for organizing a team, the roles, and responsibilities throughout a project.
The customizable nature of these processes and their different focuses allows them to be combined into a cohesive whole within an organization.
Read how Nuway adopts these methodologies in Nuway's process
If you have always done it that way, it is probably wrong.