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.|
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.
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|
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.
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:
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.
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.
|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.
|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.|