Agile Methodology


Stapleton (1998) claims that during the past decades, developers were constantly struggling, and usually were unable, to deliver their products on time, within budget, or to the exact specifications, when they were designing software using the classic methodologies, such as the Waterfall method. To tackle the problem of inadequacy of classic design methods for today’s software development, a UK-based consortium of businesses decided to put together a modern methodology. They agreed on nine principles.

The Principles

  • Principle 1: User direct and continuous involvement in the development/design process is imperative;
  • Principle 2: The developer team must have authorities to make decisions;
  • Principle 3: The frequent product releases is necessary;
  • Principle 4: Focus on the fitness for purpose;
  • Principle 5: The incremental iteration of development;
  • Principle 6: Reversibility of development;
  • Principle 7: Requirements come first;
  • Principle 8: Testing is an integral part throughout development;
  • Principle 9: Complete collaboration between stakeholders
    (Schuh, 2005).

In 1995, they came up with the Dynamic Systems Development Method (DSDM) which describes some of the best practices and controls for designing software. The consortium is known as the DSDM Consortium and can be found online at the following address: www.dsdm.org; and its methodology at: dev1.dsdm.org.

DSDM, what is it?

DSDM is the UK’s de-facto standard for rapid application development. Developing software following this methodology might engage the simultaneous efforts of IT directors, project managers, systems architects, business and systems analysts, and quality managers and auditors to ensure the design fits perfectly the users’ requirements. Five phases come together and interact to compose this dynamic software development system: Feasibility Study, Business Study, Functional Model Iteration, System Design & Build Iteration, and Implementation. They are overtaken iteratively, i.e., the designers can go back and forth from any to any other phase, depending on the client’s feedback, the changing business requirement, and/or the testing results. Each task in DSDM is confined within a fixed Timebox, between 2 to 6 weeks, to ensure keeping up with the schedule. It wouldn’t be possible to commit to today’s shrinking time-scales if not for using the DSDM, specifically for being RAD-based!

DSDM Feasibility & Business Study

Prerequisites

Hoskins, et.al. (2006), states four of the important prerequisites for starting the design of a business multimedia application:

  1. Objective: to know the exact objective(s) of the application. This is very essential because if the designer misses the objective(s), the resulting application won’t satisfy the requirements of the users.
  2. Target: to know the targeted audience. By knowing the application’s audience, the designer will be able to satisfy the needs more accurately.
  3. Resources: to take note of the resources available for designing the application. This will help the designer to plan the project scale and time.
  4. Skills: to list the available technical skills. This will help in the technical design of the application, for example, to choose the implementation languages (C#, C++, Java …).

After considering the prerequisites, the designer can move on to the Feasibility study.

Feasibility Study

Questions asked in Feasibility of an application might be: is the application technically achievable? Which design methodology should be used? Many projects are considered feasible, not just for technically being possible to built, but also if they can be completed within the defined time-scale. Note that it is becoming increasingly difficult to commit to today’s shrinking time-scales, so it is very essential to choose the most suitable methodology (Stapleton, 1998)!

Business Study

The Business Study establishes the business awareness for the application. It defines the business functionality that need to be automated and its underlying information. It investigates the users and their roles vis-à-vis the system. All of these can be done through a type of analysis known as the Business Area Definition (Stapleton, 1998).

In DSDM is that the Business Study prioritizes the business functions by business need and technical constraint (or difficulty), usually, following the MoSCoW rule (see definition at the end of this section), so that the most important ones can be automated first and delivered to the customer. Afterward, incrementally, the rest of the functions can be added and delivered.

Functional Model Iteration

The Functional Model Iteration divides into four activities cycles. These activities are done to: firstly, identify functional prototype (what is needed to be done in the application); secondly, agree schedule (how it is going to be done); thirdly, create functional prototype (do it); fourthly, review prototype (test and demonstrate application). Along this iteration, business functions will be prioritized, as described in the Business Area Definition, and they keep getting refined as fits best to the plan. Non-functional requirements will be considered, such as usability. Risk analysis and management are also addressed here.

Design/Build Iteration

The Design and Build Iteration divides to the same four activities cycles as above. After the Functional Model Iteration, current iteration results in the actual application that will be delivered to the users. Still between both iterations, there might be back and forth movement depending on the Review prototype activity, where users’ suggestions and feedback are considered. For example, some issue of functionality and functions priority may need to be revised in the first iteration, the Functional Model, and accordingly, it comes back to the next iteration, the Design and Build, to be refined.

Implementation

The Implementation is the delivery of the complete application and its documentation to the users and has also four activities cycles. It starts with user approval and user guidelines, goes through business review (assessing the product vis-à-vis satisfying the business requirements), then the implementation (installing the product in the business operational environment), and ends with user training with the help of a user manual. Certainly back paths from the Implementation toward the second iteration, the first iteration, or even to the feasibility and business study might be taken, and as usual, depending on the testing, users’ comments, business review, and/or the evolution and the changing of the business itself!

MoSCoW

The MoSCoW rule prioritizes the requirements of the application in the DSDM projects. The letters of MoSCoW, except the o’s which are there to complete the acronym, stand for:

Must Haves: necessary for success
o
Should Haves: important but possible to live without
Could Haves: can be easily discarded if necessary
o
Won’t Have: left out for later versions of the software to consider
(DSDM Consortium, 1995)

The Future

The demand for more complicated software is logically anticipated to grow in the future. This will continuously increase the pressure on the designers to fully satisfy the requirements. To cope with evolving requirements, designers need to evolve as well. They need to keep an eye on the new technologies frequently emerging. They need to update their knowledge with newer techniques and train themselves on newer tools. Most importantly, they need to follow sound design methodologies, like the one mentioned above, the DSDM, to build their software. A design needs to be logical and fully explainable scientifically. Ad-hoc designs should be avoided at all costs. As these are very difficult to comprehend and later to update, scale, or change!

What is it?

Unified Modelling Language (UML) is a standard language in software engineering for object modelling. This modelling language was introduced by Rational Rose Corporation. The term Unified in UML signifies the unification of two previous modelling concepts: the object-oriented analysis and the object-oriented design. The developers of UML promote what is known as the Unified Process as a method based on UML for developing software (Bennett, et.al., 2006). To emphasise its importance, IBM integrated this process as the Rational Unified Process in its Rational Software, which is a suite for software development (Kruchten, 2004). Using UML for designing a business multimedia application gives it a high level of clarity in ensuring that all users’ requirements are being considered. Three categories of models can be constructed. These are the Functional, Object and Dynamic models. The Functional model represented by Use Case diagrams presents the functionality design of the software as it relates to its users. The Object model represented by Class diagrams presents the system’s objects, their functions and their relationships. The Dynamic model represented by Activity, Sequence, and State Machine diagrams presents the behavioural design of the software. In addition, a design for the overall system that might include the application, devices, servers, workstations, firewalls can presented using Network diagrams.

Why use UML? (Advantages)

a. Design Abstraction

 The history of software development is a history of raising the level of abstraction (Balcer & Mellor, 2002).

UML designs help the designer of an application to visualize the general design of the application. This will aid the designer in focusing first on satisfying the users’ requirements before getting involved with the overwhelming technical details.

b. Design Dynamicity

Building an application nowadays, in the continuously evolving business world, forced the development process to take different design approach than that provided by the Waterfall model, which doesn’t provide the ability to modify the requirement on the go (R. Reed, 2001). Failure to successfully design and deliver an application that satisfies the needs and requirements of the user might stem from the fact that developers fail to learn and adapt along the way of the development (R. Reed, 2002). Business multimedia applications that are object-oriented in nature, make use of the UML, which through the Unified Process Model, help improve the adaptability of the design process to changing business needs (R. Reed, 2001).

UML Models

a. State Chart

 The State chart extends the basic finite state machine by adding concurrent and nested states. It is based on David Harel’s work in that area. State charts show the path of execution between different states. Applications’ interface and business processes make use of the State charts to describe their behaviours (R. Palmer, 2002).

b. Case Diagram

Case Diagrams (or Use Cases) are used to partition the functionality of the system and separate it into actors, use cases, and associations. The actors, which can be humans or other systems, signify the roles of the users in the system. The use cases show the behaviour of the system (C. Martin, 1998). The association is a line between actor and use cases representing the interaction. This kind of diagrams would help the designer of an application to visualize the users interacting with the application, and how the application behaves accordingly.

c. Activity Diagram

Activity diagrams represent the ongoing activities along the states. Basically, they are detailed flowcharts. Similar to the case of state chart, applications’ interface and business processes make use of the State charts to describe their activities in more details along the states (R. Palmer, 2002).

d. Class Diagram

Booch (2005) mentions an interesting modelling technique term: “modelling the vocabulary” of software. He means modelling within the abstraction layer using classes and their relationship. This would help the designer of an application to visualize the technical component of the system, which is a very essential corner stone to start the actual implementation. By using the UML’s class diagram, the designer can move to the implementation confidently.

e. Sequence Diagram

Serving both the design and analysis purposes, the sequence diagrams visually validate the flow of logic. They can model the usage scenarios and the methods or services logic (W. Ambler, 2004). In any application, such representation is extremely useful to follow the sequences and effects of users’ interaction with the system in order to make sure the users’ requirements are accomplished.

f. Network Diagram

Network diagrams depict hardware nodes and their connections (W. Ambler, 2004). They are useful to enable the designer of an application to visualize the type of hardware (workstations, servers, routers …) needed for the application to satisfy users’ requirements.

What is it?

Prototyping for a software application is the development of functional (or semi-functional) software that satisfies the main users’ requirements. A prototype should give an idea how the application will look like when built. Prototypes can be developed using Rapid Application Development (RAD) tools.

Advantages

A prototype demonstrates some of the basic functionalities of a system. Mainly it shows the look and feel of the Graphical User Interface (GUI) which takes the desired shape when considering the Human-Computer Interaction (HCI) issues, particularly, when considering the feedback from its users. Prototyping is a very essential process in designing applications because it improves understanding the insight of the requirements by both the user and the designer. Vonk (1990) considers it as an approach for requirements definition.

Follow

Get every new post delivered to your Inbox.