Agile Software Process Models
Agile software engineering combines a philosophy and a set of development guidelines. The philosophy encourages customer satisfaction and early incremental delivery of software, small; highly motivated project teams; informal methods; minimal software engineering work products, and overall development simplicity. The development guidelines stress delivery over analysis and design (although these activities are not discouraged), and active and continuous communication between developers and customers. The following topic categories are presented:
General Concepts and Principles
Human Issues
Agile Methods - General
Extreme Programming (XP)
Adaptive Software Development (ASD)
DSDM
Scrum
Crystal
Feature Driven Development (FDD)
Books
General Concepts and Principles
The Agile Alliance
The center of the agile universe for those who have interest in the philosophy. Voluminous information and resources. Highly recommended.
Manifesto for Agile Software Development
The famous agile manifesto developed by the agile alliance.
Commentary on the Agile Manifesto
Interesting comments on agility by agile gurus Martin Fowler and Jim Highsmith. Recommended.
Agility Principles
Additional commentary on the Agile Software principles.
Agility and Simplicity
This article by Jim Highsmith discusses the relationship.
Agile software development
A worthwhile overview of the topic.
Agile Software Development for the Entire Project
A paper that discusses "innovative techniques from a new agile process developed and used by projects within Microsoft."
The Dynamics of Agile Software Processes, Part I: Characteristics
This article describes the characteristics of good agile software development process design.
pdf: The Characteristics of Agile Software Processes
Addresses what makes a software process agile and how different agile processes
work to allow your project to be delivered more quickly.
Agile Software Development Bibliography
A link-based bibliography for important papers, books and articles on agile development. Also contains pointers to worthwhile resources.
Agile Method Glossary
Like all new processes, the agile process introduces new terminology. This glossary will help. Recommended.
Agile Methods Articles
The Methods and Tools archive contains a wide range of articles that address agile process and methods. Recommended for in-depth study
Using an Agile Software Process with Offshore Development
Martin Fowler discusses "experiences and lessons learned in doing offshore agile development. So far we've discovered that we can make it work, although the benefits are still open to debate."
Step-by-step guidelines for agile development
A brief distillation of the "basic tenets" of the agile process.
Agile Software Development
A report developed by DACS that address agiledevelopment and provides "a comprehensive overview of the current State-of-the-Art, as well as State-of-the-Practice, for Agile Methods."
Video: Transition To Agile Methodology Part 1 - 6
This is the first of a six part series that discusses how to make the transition to agile methods. For other parts, use the YouTube search function.
Video: Agile Development
A lecture on agile development. (55:30)
Video: End User Software Engineering
"In this talk, we will consider what happens when we add to end-user programming environments consideration of the software lifecycle beyond the "coding" phase."
Human Issues
Community-Agile Software Guidance
"This paper presents the values, principles and practices of Community-Agile Software Guidance, a process framework that refactors Agile to incorporate the lessons learnt from the Open Source world." In-depth. Recommended.
Human Issues of Agile Processes
A brief Q&A on human issues associated with agile methods.
Agile Software Development: The People Factor
A discussion of people issues via a vis agile methods.
Agile Methods Incompatible with Human Psychology?
An interesting commentary and discussion.
5Qs on Agile with Gerald M. Weinberg
Q&A with one of the foremost thinker on human issues in software development.
pdf: The Human Side of Agile Software Development
A slide presentation.
pdf: Human Aspects of Software Engineering: The Case of Extreme Programming
A discussion of the human aspects of XP.
pdf: How Software Developers Learn to Interact with People
"We compare the results of studies in 1988, 1998 and 2003 that looked at how UK software developers view the task of talking with stakeholders. We propose a model of the stages that individual developers pass through, as they learn and mature in their agile interactions with individuals at work."
AGILE /SCRUM Fails to get to grips with Human Psychology
Commentary and opinion.
Human-centered design meets Agile Development
A slideshow that shows how both can peacefully co-exist.
User Centred Design in Agile Application Development
This paper argues that by incorporating user-centred design (and in particular using low fidelity prototyping as an iterative model for the application rather than time consuming code) better applications can be developed, delivering business benefit with a focus upon the end user and their experience.
Video: Agile Development Teams: Scope and Scale with Mike Cohn
A discussion of agile teams.
Agile Methods - General
Agile software development
An in-depth treatment at Wikipedia.
Agile Methods - Resources developed by Scott Ambler
One of the more comprehensive treatments of agile methods available on the Web containing papers, downloads and other resources. Highly Recommended.
Agile Process Models and Methods - 1
Excellent resources and links for many agile methods.
Agile Process Models and Methods - 2
Many useful links that address agility, XP, Scrum and other OOAD methods.
Agile Software Development Portal
Pointers all all major agile methods. Recommended.
A Comparison of Agile Methods
Examines XP, Scrum, DSDM and Crystal Orange.
A Practical Guide to Seven Agile Methodologies, Part 1
"In this two-part article, you'll learn all the ins and outs of the seven most popular methodologies so you can pick the one that's best for you. In part 1, we cover XP, Scrum, Lean, and FDD."
A Practical Guide to Seven Agile Methodologies, Part 2
A continuation of the above-noted article.
The Definitive List of Software Development Methodologies
An excellent summary of all major agile methods.
The New Methodology
Martin Fowler presents an in-depth discussion of agile methods with a survey of six important methods. Recommended.
Ten tips on agile software development
A brief article for those about to enter the agile world.
Lean software engineering
A tutorial (including videos) that addresses lean thinking as it appies to software engineering.
10 Key Principles of Agile Software Development
Basic principles and a summary of methods.
Heresy Against the Church of Agile Software Development
An opposing commentary by 'The Crank Project Manager.'
Extreme Programming (XP)
Resources
XProgramming.com
Many useful articles and resources.
XP Resources
Good introduction as well as links to many useful resources.
Extreme Programming Roadmap
Pointers to well over 100 XP Resources. Recommended.
XP FAQ
Useful discussion of important concepts and terminology.
XP Developer
Contains many useful tips and resources.
XP discussion group
Yahoo has one of the largest discussion groups on XP (if you're willing to wade through it!)
Introduction, Papers, and Articles
Introduction to XP
An excellent introduction for those who need a good starting point. Recommended. See also introductions by Armaties Software and Wiki.
A Contrarian's View
Xp has become something of a religion among some software people. A heretic speaks!
pdf: Another Contrarian's View
A slide presentation by Pete McBreen, author of a book entitled Questioning Extreme Programming.
The XP Exchange
Contains worthwhile introductory and advanced essays on XP and related information and downloads.
Refactoring Home Page
Useful links and commentary by Martin Fowler on this important XP activity. See also the Yahoo discussion group on refactoring.
Demystifying Extreme Programming: Test-driven programming
An article that emphasizes the TDD aspects of XP.
pdf: Integrating Pair Programming into a Software Development Process
A paper that discusses how to integrate pair programming into a conventional software process (one in which individual programming is the norm).
ppt: Agile Modeling, Agile Software Development, and Extreme Programming: The State of Research
A powerpoint presentation of these topics.
Video: eXtreme Programming - Richard Buckland
A worthwhile lecture on XP. (44:47)
Adaptive Software Development (ASD)
Adaptive Software Development
A detailed chapter length description of ASD. Recommended.
ASD and the CMM
A critique of the CMM from an adaptive point of view.
DSDM
Dynamic Systems Development Method
An in-depth introduction at Wikipedia.
The DSDM Consortium
Many useful resources, papers, and links. The control point for DSDM usage worldwide.
DSDM in a Nutshell
A useful mini-introduction and links to resources.
Comparison of DSDM to other Process Approaches
Provide downloadable papers that discuss DSDM vs. RUP, XP, and PRINCE.
What is DSDM?
An indepth discussion of DSDM. Includes links to resources, articles and books.
DSDM Slide Presentation
An introductory presentation on DSDM.
Comparing DSDM and XP
Comments and pointers.
Pinnie the Wooh and DSDM
An allegorical discussion of DSDM.
To DSDM or Not to DSDM?
This article "explains some of the benefits of using DSDM (Dynamic Systems Development Method) techniques on e-business projects by describing one project that employed them and another project that didn't, and comparing the two."
Video: The New Face of DSDM
An overview of the latest version of DSDM.
Scrum
Controlchaos.com
A central resource for information on Scrum.
Scrum resources
A collection of historical articles and papers that are relevant to Scrum.
The Scrum Development Process
Useful discussion and step by step process description by Mountain Goat Software.
Using Scrum for 'wicked problems'
An article by Mary Poppendieck.
Introduction to Scrum
A brief introduction with emphasis on team structure.
Scrum Articles and Papers
A list of over 20 downloadable papers and articles about Scrum.
How To Implement Scrum In 10 Easy Steps
A implementation guide.
"Scrum-ban"
Presents a useful approach to lean development using elements of Scrum. From the article: "The idea of using a simple task board with index cards or sticky notes is as old as Agile itself. A simple variation of this is a task board with a simple Pending -> In Process -> Complete workflow."
A Scrum Tutorial
A set of slides outlining the scrum process can be downloaded from this site.
Video: SCRUM in Under 10 Minutes (HD)
A highly rated video introduction to Scrum. Recommended.
Video: Managing your Scrum Product Backlog in a simple Excel (8:40)
A short video that describes how to use excel to manage the Scrum Product backlog.
Video: Scrum Basics
An brief introduction. (5:49)
Video: Scrum et al
A talk by the creator of Scrum, Ken Schwaber. (1:01:04)
Crystal
Crystal methodologies
Develop by Alistair Cockburn, the creator of Crystal, this ite provides in-depth discussion, pointers, and other useful commentary.
Crystal Clear Methodology-I
A worthwhile overview with useful pointers to other information sources.
Crystal Clear Methodology-II
Another worthwhile overview with useful pointers to other information sources.
Cystal Methodology
A informal discussion of Crystal presented in Chet Hasse's Blog.
ppt: The Crystal Methods: How to make a methodology fit
A slide presentation by Alistair Cockburn, the creator of Crystal.
Crystal Clear Applied: The Seven Properties of Running an Agile Project
This chapter (from the book, Crystal Clear) describes seven properties set up by the best teams. Crystal Clear requires the first three. Better teams use the other four properties to get farther into the safety zone. All of the properties aside from osmotic communication apply to projects of all sizes.
Crystal papers
Papers (many by Alistair Cockburn) that address the Crystal methodologies.
Feature Driven Development (FDD)
FDD Overview
A downloadable overview of FDD.
The FDD Community Site
The "community portal for all things FDD."
FDD Processes
An overview of key FDD processes.
A Practical Guide to FDD
Step by step approach along with additional articles, presentations, and information. Recommended.
FDD for UI Development
A paper that discusses how FDD can be extended for UI development.
Books
The overall philosophy and underlying principles of agile software development are considered in-depth in books such as:
The Art of Agile Development
Agile Software Construction
Agile Modeling
Extreme Programming Explained: Embrace Change
Agile Software Development
Agile Software Development Ecosystems
Three books that address the management side of agile development are:
Managing Agile Projects
Agile Project Management: Creating Innovative Products
Agile and Iterative Development: A Manager's Guide
Additions discussion of tpics that recur throughout the agile development world can be found in:
Scaling Software Agility: Best Practices for Large Enterprises discusses strategies for scaling up agile practices for large projects.
Refactoring in Large Software Projects: Performing Complex Restructurings Successfully discusses the use of refactoring when applied in large, complex systems.
Agile Software Development Quality Assurance presents SQA techniques that conform to the agile philosophy.
Software Engineering for Small Teams uses a case study approach coupled with the application of the Unified Process as it is applied for small projects.
A number of books provide a nuts and bolts discussion of XP along with guidance on how best to apply it
Extreme Programming Explained: Embrace Change
Extreme Programming Installed
Extreme Programming Examined
Extreme Programming in Practice
Questioning Extreme Programming takes a critical look at XP, defining when and where it is appropriate.
Pair Programming Illuminated provides an in-depth consideration of pair programming
Refactoring: Improving the design of Existing Code addresses the important XP concept of refactoring in considerable detail
Software Craftsmanship: The New Imperative discusses software craftsmanship and argues for agile alternatives to traditional software engineering
Adaptive Software Development: An Evolutionary Approach to Managing Complex Systems discusses ASD in depth.
DSDM: Business Focused Development, 2/e and
DSDM: The Method in Practice present an in-depth consideration of DSDM.
A Practical Guide to Feature Driven Development presents a detailed treatment of FDD.
Better Software Faster presents another useful treatment of FDD that includes a step by step journey through the mechanicals of the process.
Agile Software Development with SCRUM presents a detailed treatment of Scrum.
The Enterprise and Scrum discusses the use of Scrum for projects that have major business impact.
Agile Software Development discusses agile principles, patterns and practices with an emphasis on XP.
Lean Development: An Agile Toolkit for Software Development Managers provides guidelines for managing and controlling agile projects.