Process Planning – Methodology

SourceCloud follow an Agile development methodology for small tasks these will be defined as stories in the ‘backlog’ where the
product owner (Client) and the development team will define the exact requirement and acceptance criteria,
the development team will estimate the task during the same process before it is added to the sprint for work to commence.

For Major Developments, we use a lifecycle, consisting of four phases, Discovery, Design, Development, Deployment.

1. Discovery

At the outset, the requirements are developed working with the client with a series of interviews and workshops all
documented in Atlassian Confluence detailing the major deliverables, requirements and priorities
using the MoSCoW approach. These will form the Product Requirements Document (PRD).

2. Design

The PRD created in the discovery phase is broken down into Epics, Stories and tasks within Atlassian Jira,
providing more technical details on developing each task including initial estimates in terms of effort.
This is also the phase where we create wireframes for user journeys, confirm style guides and UI designs,
then submit designs to the client for review and sign off.
Each set of Epics will typically be assigned to a release version providing a roadmap of feature releases.

During this phase, our test team will work with the requirements, developing the required test cases to meet the requirements.

3. Development

The development phase starts a few days before the sprint, where the Product Owner and the Development team,
order the backlog, adding further details to the stories.
A sprint starts with a retrospective and planning meeting attended by the development team and the product owner.
The session starts with a demo of a potentially shippable product on the User Acceptance Testing environment
(UAT) and demonstrates the work completed to the Product Owner against the requirements.
This is followed by a review of ‘what went well’ and ‘what did not go so well’.
The final part of the session involves discussing each story starting at the top of the backlog with the development team
assigning a points value to it, before adding it to the sprint.

Typically sprints run fortnightly using the tooling provided by Jira we can quickly highlight issues in terms of
estimates and overruns.
Code is developed and checked in to our source control several times a day against the specific tasks in Jira
providing complete traceability and near real-time progress updates as well as securing the code.
During the sprints, SourceCloud will release interim releases internally to a continuous integration (CI) system
for both automated and manual testing.
Ensuring the code meets the Clients requirements at all stages of development.

Our test team will develop test scripts from the acceptance criteria in the stories and use a combination of
automated, regression and manual testing.
They will test core components as they are released feeding back into Jira ensuring defects are captured
at the earliest possible point feeding them back to the developer.

At the end of a major release, SourceCloud would always recommend that the system is
Pen Tested by an independent 3rd party.
SourceCloud uses an external Cyber security company, but the client is welcomed to use their preferred
company for Pen Testing if they so wish

4. Deployment

The output from each sprint cycle is known as a Potentially Shippable Product and represents the
product backlog items for the sprint.
In the early phases, this will be a test environment where the client can review the released features.
Versioned releases will also be released as part of the corresponding Sprint cycle.
Versions are usually defined by a wider set of user-defined features and comprise of a number of sprints.
Our test team will complete their testing scripts with each release before releasing to the client

Tooling

As an organization, we use a number of products to develop, test and deploy our code.
Including the Atlassian suite of products, Jira, Confluence and BitBucket to manage our development lifecycle.
Our internal DevOps pipeline consists of TeamCity, Octopus and Ansible to manage deployments to test and production environments.
This provides a complete audit trail from a released version, back through release cycles, test cycles, bugs, tasks and design.
Other tools are used for our automated testing including TestRail, Selenium and jMeter.
Some clients prefer SourceCloud to use their preferred tools which have included Jenkins, Bamboo and TFS.