5.3 Design, Development and Validation

There are several methodologies to choose from when developing something new, or when making changes to existing products, solutions or services. Each methodology has its own set of rules, principles, processes and practices, and the selection of the best approach for the task will vary according to development purpose, organisational aspects, nature of the business, skills and capabilities.

The various methodologies apply a trade-off between scope, resources and schedule to deliver the desired outcomes.

Figure 5.3.1 Different development perspectives

 

The Business Technology Standard proposes two types of development approaches: sequential development and incremental development. The following table shows the characteristics of the two approaches:

Sequential Development Incremental Development
Clear deadlines: Estimates development costs upfront, creates project timelines and clear deliverable milestones. Adaptability: Enables shorter development cycles providing the business the flexibility to pivot when it needs to.
Disciplined by design: Each phase has a defined start point and a review gate at the end of it. All tasks must be completed before the project can proceed to the next phase.

 

Immediate user feedback: A strong emphasis on releasing products into the hands of users. Reduces the risk of building a product that nobody wants while increasing the chances to find the feature that delivers value earlier in the project life-cycle.
Documented: Each phase of development requires a specified list of documentation to be completed which makes it easier to follow the logic of past projects and lay the groundwork for future projects. Test approach: Develop and test within the same iteration so a working solution exists at every stage.
Clear communication: Timelines are predictable and well-documented. Easy to provide status updates to management and stakeholders. Fast, high-quality delivery: Iteration leads to fewer bugs and higher-quality releases. A great approach for quicker, higher-quality releases with successive iterations.
Easy learning curve: Requires minimal knowledge or training to start the development work as each person has a clearly defined role in a clearly defined process. Teamwork: Places an emphasis on frequent team communication, face-to-face interactions and interfacing daily with business representatives.

 

Using DevOps methodology

Figure 5.3.2 DevOps methodology

 

DevOps integrates development and operations and is in line with the incremental development mindset and methodology. It enables rapid service delivery through adoption of agile and lean practices in the context of system-oriented approach. DevOps is a set of practices that automate the processes between software development and operations teams.

This way, building, testing and releasing software becomes faster and is more reliable. It also promotes building a culture of collaboration between teams that in a traditional organisation work in siloes. When deploying the DevOps methodology, the organisation usually gets benefits such as: increased trust, quicker software releases, ability to solve critical issues quickly and better management of unplanned work.

The Business Technology Standard has adopted the DevOps mindset by introducing development and operations role names with DEV and OPS prefix.

 

Selecting the best development methodology

The following evaluation criteria can be used as a guide to determine the development approach to be used for a request.

Evaluation criteria Sequential development Incremental development
Is the final request fully defined? Yes No
Should the owner be able to make a major scope change of the request after it starts? No Yes
Is the scope of the request, not the speed of development, the key to success? Yes No
Does the initiative have a high level of interdependencies with other initiatives? Yes No
Will the final product be subject to many future changes? Yes Yes

 

Design

In sequential development, the requirements are used to produce the high-level and detailed-level designs before the development of the solution begins. The design phase has specific deliverables and a review process. The development is then easy to manage due to the rigidity of the model. For example, pure infrastructure projects often require the requirements and design to be decided at the start of a development.

In incremental development, an initial high-level design is often produced upfront in order to frame the solution approach. Detailed design is done within the sprints in parallel with development. Some enabling design stories can be included in a sprint to support or facilitate the development of a later sprint.

 

Validation

When a new or modified service has been developed and is ready to be deployed in a live environment, it must be reviewed against the defined readiness criteria to ensure it meets the agreed requirements. This is to ensure that it can be supported without adverse impact.

The approach to validation varies depending on the selected approach:

  • Sequential approach has a defined validation phase prior to deployment. All associated rework and retesting activities are contained within this phase. The validation is normally carried out by a dedicated test or quality assurance function independent of the development team
  • Incremental approach has a testing and validation phase normally done within each increment, as well as fixes if necessary. Or, if they are not urgent, they can be put on the backlog. Sometimes, however, there may not be a release to live within each increment. Instead there can be a so called ‘hardening’ sprint focusing all efforts on more rigorous testing and defect fixing without any new development. The validation expertise is ideally contained within the development team.

Final acceptance is often carried out by the stakeholders in User Acceptance Test (UAT). The service readiness is tested by the operations organisation together with the service integration team.

 

Industry recognised Development Methodologies

The Business Technology standard enables the use of widely used development methodologies, such as PRINCE2 and Scrum. The tables below provide examples of methodologies for the two types of development methodologies. The list is not an exhaustive list and an assessment should be conducted to ensure that the right methods will be selected.

Sequential development
PRINCE2 Guides you through the essentials for managing successful projects, regardless of type or scale. Built upon seven principles, themes and processes, and can be tailored to meet your specific requirements.
PMI / PMBOK PMI is a project management certification that provides PMBOK, a set of standard terminology and guidelines for project management. It states five process groups that are prevalent in almost every project – Initiating, Planning, Executing, Monitoring & Controlling, Closing.

Note that PMI is referred often as a reference guide rather than an actual project management methodology. However, it can be used to apply best practices to projects.

 

Incremental development
Scrum The goal of Scrum is to develop, deliver, and sustain complex products through collaboration, accountability, and iterative progress. Scrum operates using key roles, events, and artefacts which distinguished it from other incremental project management methodologies.
Kanban Kanban, like Scrum, focuses on early releases with collaborative and self-managing teams. A very visual method that aims to deliver high quality results by painting a picture of the workflow process so that bottlenecks can be identified early in the development process.
Scaled Agile Framework (SAFe) Helps large enterprises realise the benefits of agile while retaining some organisational structure and control over processes. It is the go-to option for large, software-intensive projects where teams are highly interdependent.
DevOps A method that aligns development and operation teams’ activities through communication, integration, and collaboration. It enables the deployment of code to production in a faster and automated way. It increases an organisation’s speed to deliver solutions and services.
Dynamic Systems Development Method (DSDM) A framework made up of eight principles, lifecycle and products, roles and responsibilities and several best practice techniques. The method provides a four-phase framework consisting of feasibility and business study, functional model / prototype iteration, design and build iteration and implementation.