Agile software development is a conceptual framework for undertaking software development projects free of process intensive and document heavy practices. A number of agile software development methodologies have evolved under the agile umbrella, such as:
Agile methods became popular in the mid 90s with the Agile manifesto being created in 2001. The Agile manifesto is regarded as the standard definition for agile software development. The principles of the Agile Software Development manifesto are to value Individuals and interactions over processes and tools; working software over comprehensive documentation; customer collaboration over contract negotiation; responding to change over following a plan.
The agile methodology lacks any prescriptive guidelines and instead it is comprised of a number of key recommendations.
Developing software in short cycles or iterations, usually lasting one to four weeks, reduces risk and creates an immediate goal/focus for the project team. Each iteration includes the necessary tasks to release an updated piece of software: planning, requirements analysis, design, coding, testing, and documentation. A single iteration may not add enough functionality to warrant releasing the product, but new software must be released at the end of every iteration. At the end of each iteration the project is reviewed and priorities are re-evaluated.
The agile approach is better suited to small teams of senior developers, usually a team size of less than 10. Agile teams are encouraged to be grouped together face to face with all the people necessary to complete a project. Usually the team will consist of programmers and customers, but may also include testers, technical writers etc. Grouping the team together encourages ongoing communication and ensures that all members are focused on the current priorities and features.
Agile methods recommend the use of working software releases as the primary measure of progress.
Agile Alliance <http://www.agilealliance.org/>
Microsoft Solution Framework (MSF) was developed and released in 1994 by Microsoft to provide organizations with guidelines for solution development and delivery. The framework is defined by a set of principles, models, disciplines, concepts, guidelines and proven practices for technology based projects.
MSF was developed from best practices used by Microsoft Consulting Services and Microsoft's Product development group in combination with well established industry standards to provide a flexible framework that can be adapted to any project or organization regardless of size or complexity.
MSF and the Microsoft Operations Framework (MOF) are designed to be used in conjunction throughout the technology life cycle.
Previous versions of MSF contained two process models, one for application development (AD) and one for infrastructure deployment (ID). Each of the processes was comprised of four phases and four major milestones. Depending on whether the project objective was AD or ID, the phases and milestones had different names and definitions. The AD model and ID model have been merged into a single process model for MSF v.3.0. Merging the two process models has resulted in the addition of one phase to the AD process model; this phase is to accommodate the end of the development phase and the beginning of the deployment phase.
The process model for AD was developed first. It's purpose was to consolidate the best practices and processes used by Microsoft to build the software offered to customers and partners.
Once the AD model was established the need for a similar process to guide the large-scale deployment of products and servers within enterprises arose. Microsoft adapted the AD model to create a process model for ID.
The need for a single, integrated process model became evident for the following reasons:
MSF Homepage <http://www.microsoft.com/technet/itsolutions/msf/default.mspx>