Mod 1 > Week 2 > Day 1

Overview of the day

Today we look at the Implementation (Deployment) stage of the SDLC.


Learning Objectives

Lesson

Inputs to the Implementation stage

The input to this phase is tested software.

Purpose of Implementation

The purpose of the Implementation stage is to make a new system operational. This is achieved through the transfer of the tested software modules to the live environment, along with setting up of the data required for the new system.

It is critical that earlier stages of the SDLC have included rigorous configuration management (version control) of software components so that it is clear exactly what bug fixes, features and improvements the final 'release package' contains.

Planning for Implementation

Planning for implementation should happen as early as possible. Consider must be given to:

Roles

Role Responsibility
Project Manager Plan the implementation activities and oversee the resolution of an 'Early Life' issues (operational issues which occur just after the release)
End-Users Help to identify training needs. Advise about best way to transition to the new system.
Business Analysts Carry out user training. Advice on business processes to manage impact. Ensure documentation is available.
Service Manager The Service Manager supports the IT infrastructure and understands how any outage will impact on service level agreements (SLAs)
Developers, technical support staff What order the technical release tasks should be done. Handle data migrations. 'Early life' support (dealing with operational issues which occur just after the release)
Project Sponsor Gives the ok to the implementation taking place having weighed up the impacts on business

TASK - Can you identify members of your team who fulfil these or similar roles?

Deployment

There are 4 different ways to deploy software.

Direct Changeover (Big Bang)

This approach is relevant to the Waterfall methodology where each stage of the SDLC is fully completed and signed off and finally the software is deployed live.

the big bang method

Pros Cons
Clean break High risk if failure
Everyone start with new system together No going back point fix forward only
Usually less expensive Unanticipated effects

Parallel Running

parallel running two systems

Pros Cons
Less risk, old system still operates Expensive (have to maintain two systems)
Transition users gradually or in phases More complex sharing state across two systems
Can validate operations through comparisons Users may not use new system

Pilots

run pilots

Pros Cons
Trials/pilots to identify potential issues Can’t find problems at scale
Can eliminate problems before full scale deployment Pilot software likely to be different to final release
Can use feedback from pilot to improve the product
Catching errors early is cheaper and more efficient

Phased implementation (Feature releases)

This approach is relevant to the Agile methodology where each sprint delivers a release of software.

feature releases

Pros Cons
High priority requirements delivered sooner Users may lose interest in limited early version
Introduce complexity gradually Users may not like new features being regularly introduced
Users can learn at a steady pace Users may not use new features sticking to original limited work flows
Can fall back to previous version (without new feature) if there are problems

Traceability matrix

A traceability matrix keeps track of the relationship between a requirement and its artefacts (test, code, deployment, version). This way features can be tracked across teams, throughout the SDLC.

Semantic Versioning (Semver)

Semantic Versioning (Semver) is a naming convention for versioning software. It is made of three components:

Major.Minor.Patch

e.g. 10.13.6

10 is the Major version
13 is the Minor version
6 is the patch number

The Major version is incremented if you make breaking changes.

The Minor version is incremented with new features but no breaking changes.

The Patch number is incremented with bug fixes and improvements.

TASK - Checkout what the semantic version of your iOS or Android operating system is.

TASK - study the versioning strategy for software you use at work such as VSCode, IntelliJ, JUnit.

Different phases of release

  1. Alpha release

    GitHub Co-pilot alpha release testing invitation

    An Alpha release is the first release of an application. It may not yet be fully feature complete or fully tested and is released to a small group of individuals, typically internal users or users willing to provide feedback for improvements.

  2. Beta release

    Beta test You Tube

    A Beta release happens after an Alpha release. It will be feature complete and well tested however will be made available to a wider user base with the proviso that there may still be bugs in the software.

Software licensing

A software license is a legal contract governing how software is used or distributed. There are many different types of software license including:

TASK - find out the difference between each type of license and try to find an example of a software product which uses each license type

Output of the Implementation stage

The output of the Implementation stage is operational software.

Assignment

TODO

attendance log main|prev|next