XP, FDD, DSDM, and Crystal Methods of Agile Development
Software development methods that support the values and principles stated in the Agile Manifesto have received more attention since the declaration in 2001. So far, the most popular has been Scrum, a methodology of managing software projects and developing products with prescribed roles and practices. It focuses on short, timeboxed periods called sprints where self-organizing teams develop working features that are added in small iterations to the software or product.
Another method gaining popularity is Kanban, which also uses incremental improvements to continuously add parts or features until such time that the product is fit to be delivered. The process uses a visual card or signboard that displays to the development team, the customers and other stakeholders the different stages of development, the number of work items to do, being worked on, and completed, which aids the continuity of the work flow.
Alternative Software Development Methods before Agile
Before the Agile Manifesto was published, there were already different development methods being experimented and practiced to find a solution to the failing traditional methods. The waterfall method that was previously being followed was deemed too rigid to take on the changing requirements brought on by an improving technology and a more demanding client. Some of these methods were Extreme Programming (XP), Feature Driven Development (FDD), Dynamic Systems Development Method (DSDM) and Crystal.
Extreme Programming (XP)
Extreme Programming (XP) was introduced in 1996 by Kent Beck when he was working on a Chrysler payroll project. Although the term was new at that time, the methods used such as pair programming, unit testing, and customer acceptance tests have existed before. What XP did differently was to take these best practices to “extreme levels”. It was created to take into account changes that are happening at that time in software development and technology, namely, object oriented programming and the Internet. XP puts importance in co-location of customers and developers, as well as pair programming, which also coincides with the values of interaction in Agile. It also has short development cycles, focusing on the needs of today rather than those of the future, sometimes called the “You aren’t gonna need it!” or YAGNI approach. Kent Beck is one of the signatories of the Agile Manifesto.
Extreme programming’s goal is to deliver software that is needed when it is needed. XP is best used by a small team of programmers, between 2 and 12, working on projects with dynamic requirements or high risk. The XP development team works together with managers and customers. An example project that used XP was Encyclopaedia Britannica available on CD and web subscription.
Reference site: Extreme Programming
Feature-Driven Development (FDD)
Feature-Driven Development (FDD) was introduced in 1997 by Jeff De Luca when he was working in a software development project for a large Singapore bank. FDD was also built around software engineering best practices such as domain object modeling, developing by feature and code ownership. The blending of these practices that resulted in a cohesive whole is the best characteristic of FDD. It consists of five basic activities, namely, the development of an overall model, the building of a feature list, the planning by feature, the designing by feature, and the building by feature. Every project will have its own unique model, which will result in a feature list. The last three activities are short iterative processes, with a feature not taking longer than two weeks to build. If it will take more than two weeks, then it will have to be broken down into smaller features.
FDD’s main purpose is to deliver tangible, working software repeatedly in a timely manner. The advantage of using FDD is that it is scalable even to large teams due to the concept of ‘just enough design initially’ (JEDI). It is a great solution to maintain control over agile, incremental and inherently complex projects because of its feature-centric process. It is used in enterprise projects as well as web projects such as the Mousebraker.com online gaming site.
Reference site: Arrkgroup – FDD Guide
Dynamic Systems Development Method (DSDM)
Dynamic Systems Development Method (DSDM) was published in 1995 by the DSDM Consortium, an association formed by vendors and experts in software engineering to provide a structure for Rapid Application Development techniques brought on by object oriented programming. The Consortium jointly developed and promoted a tool- and technique-independent development framework from best practice experiences of people working in big companies such as British Airways, American Express, Oracle and Logica. It has now evolved into a project delivery framework that is fully compatible with ISO 9000 and PRINCE2. In 2007, it was rebranded Atern after the bird Arctic Tern. However, since 2014, it has reverted back to its original name as DSDM Agile Project Framework. Also, in 2016, the DSDM Consortium rebranded as the Agile Business Consortium.
DSDM consists of eight principles that will direct the team and create a mindset to deliver on time and within budget. Principles include focusing on the business need, delivering on time by timeboxing work, and emphasizing collaboration with end users, team members, business representatives and other stakeholders. As a framework and not just a software development method, it can also be used in non-IT projects. It is often used in government projects where it is paired with project management standards, such as PRINCE2.
Reference site: Agile Business Consortium
Crystal Methods are a family of software development methodologies developed by Alistair Cockburn from his study and interviews of teams. The methods are color-coded to signify the risk to human life. For example, projects that may involve risk to human life will use Crystal Sapphire while projects that do not have such risks will use Crystal Clear. Crystal focuses on six primary aspects: people, interaction, community, communication, skills, and talents. Process is considered secondary. There are also seven common properties in Crystal that indicate higher possibility of success and they include frequent delivery, reflective improvement, osmotic communication, and easy access to expert users. The methods are very flexible and avoid rigid processes because of its human-powered or people-centric focus. Alistair Cockburn is also one of the original signatories of the Agile Manifesto.
Crystal Methods consider people as the most important, so processes should be modeled to meet the requirements of the team. It is adaptive, without a set of prescribed tools and techniques. It is also lightweight, without too much documentation, management or reporting. The weight of the methodology is determined by the project environment and team size. For example, Crystal Clear is for short-term projects by a team of 6 developers working out of a single workspace.
Reference site: Alistair Cockburn site
Many teams and organizations have realized benefits, advantages and improvement by adopting agile methodologies. However, challenges continue to come because of unique requirements and transforming business landscapes, especially difficult in large enterprises. Thus, the problem of scaling agile delivery process continues to be difficult to solve, and is currently being addressed by solutions such as Scaled Agile Framework (SAFe) and Large Scale Scrum (LeSS). Therefore, the goal of all companies to find that repeatable, predictable process that will improve productivity and quality continues on.