DSDM is an iterative and incremental approach to software development or DSDM can be thought of as an iterative and agile method. DSDM lifecycle was developed in the United Kingdom, by a consortium that included IBM, the UK Government’s Central Computer and Telecommunications Agency (CCTA), ICL, SDL, Hewlett Packard and BCS.
The first DSDM course took place in June 1993 with five people on the course; within twelve months over 400 people had experienced DSDM training.
1) Experiments and defined projects should be divided into short (2-4 week) cycles called “Sprints”. Each Sprint ends with a working demo to stakeholders . At this point feedback is gathered from all stakeholders which can then be used to influence what items will be refined during the next Sprint. This process continues until the project is deemed complete.
2) Timeboxing , a technique used to force a project to be completed by a predetermined time without compromises on either scope or quality . Projects start with an initial timebox of between 1 and 3 months, depending upon the size and complexity of the “product”. This process continues until the product is deemed complete. Please note that this does not apply to projects which have been handed over from one development team to another as part of a larger program – those items can continue as long as required by other teams.
3) Ranked Priorities , each item being worked on has a rank number associated with it. The lower the number, the higher priority it has . Items are first assessed for their value/benefit ratio and then the value/cost ratio : – Value is what we think we’ll get out of it and can be positive or negative depending upon circumstances. For example: The more people that use a feature, the more valuable it will be to those users. The elimination of a major security risk would have a very high value. However, some items may actually reduce security (by having less code etc) so such an item has a negative value .
-Cost is what we will have to put into this item in order to accomplish our goal. If the sum total of all costs exceeds the value then it probably isn’t worth doing – at least not straight away . Costs include development time, testing time, design changes etc. For example: The development time necessary to implement a new security mechanism may be very large.
-Value is what we want out of this effort. In other words, it’s the situation if we do have this item or capability. For example: We would have a better product that people would use more and thus create more value for us as a company. This is a “good thing” from a business perspective.
The first step in using the Security Cost Benefit analysis is to determine which threats you are going to try to address with your system, and then compute the value of each threat being addressed . Next, determine how much each will cost (you might not know yet). Finally, compare the benefits (threats that you stop) against the costs (the cost to build the security) and see if you come out ahead. For example, let’s say that you have a user that downloads files from the Internet using their company’s PC, and they don’t know how to secure it. There could be viruses or worms on those files which might infect your corporate network if not stopped by antivirus software running on the user’s computer.
Start with the market, understand what the customer wants; look at how you are going to provide that. (Translate Business Requirements into Capability Statements). Then the team thinks about the solution – this involves involving analysts and designers in order to visualize what is needed to deliver on those capability statements. (Design Solution Building Blocks). Once we have designed our building blocks, we need to agree which ones will actually be built (Build Solutions).
The following four principles describe the key elements of DSDM:
1. The project should be viewed as a creative, structured and disciplined process of continuous improvement rather than a set of disparate elements or procedures.
2. A key role of the project manager is to create and maintain a process that enables frequent delivery of valuable software.
3. The best-value requirements will emerge from an interactive prototyping approach with the customer in which software has been proven at each stage by demonstration.
4. The best way to produce high quality software is to involve skilled people, working together effectively in self-organising teams who have the freedom to manage their own work flow within agreed limits.
5. To be “future proof” by ensuring that it can support new requirements as they are identified – through the use of building blocks which can easily be composed into larger structures.
6. DSDM should be simple to learn for new team members (i.e. less than three man months training for a typical project team member), but also provide the depth of knowledge necessary to support an experienced practitioner.
Some other principles of DSDM:
1. A good process helps to deliver a successful project and a successful project enables the delivery of a good process.
2. A disciplined approach to software development is essential if we are to learn from our successes and failures, rather than repeating past mistakes , but this can only happen if we have an effective system for capturing experience of what works.
3. The foundation of a quality-focused culture is built on trust which, in turn, requires open communication within self-organising teams.
4. Individuals learn more effectively by doing something that is real – not just playing with models or studying theory about reality – which makes it important that they understand and accept not just the overall goal and objectives but also their role in the achievement of that goal. The role of a leader is to support and enable team members to become self-sufficient and capable, not just at their current level but also future levels and potentials .