Totential - Bespoke Development Case Study.

TwoTwoFive commisioned IJYI to develop a cloud based bespoke trading simulation platform to allow trading simulation training sessions to be purchased and played as part of a SaaS (Software-as-a-Service) offering.

The Client.

TwoTwoFive offers a range of training, development and mentoring solutions for commodity traders and those involved in commodity markets. Their training courses are run by highly experienced Oil and Gas Traders, each expert in their field. Their courses are known for their imaginative, interactive presentations and unique electronic commodity trading platform that realistically simulates different trading environments. They provide bespoke solutions for recruitment, development and/or assessment for individuals and companies involved in the commodity trading industry. Development and assessment includes pressure and resilience management, behavioural profiling in addition to commercial acumen.

"Totential allows us to replicate the real oil and gas trading environments. It is state-of-the-art software that has price movements every few seconds, allows delegates to chart outright prices or spreads and most importantly supports real time deal execution"

Steve Jones - Director/Owner TwoTwoFive Concepts Limited

The Approach.

Agile Development

Development is currently working in weekly sprints with work divided into “user stories” or small independent deliverables. These stories are discussed in the run up to a sprint, with the sprint itself starting with a kick-off meeting with TwoTwoFive to agree on what will be delivered in the next week. This gives TwoTwoFive the ability to change what’s being delivered as their business priorities change.

Microsoft Visual Studio Team Services (VSTS) is used to plan and control sprints and TwoTwoFive are able to see work moving across the planning board (or KanBan Board) as it progresses through the IJYI QA teams sign-off and when TwoTwoFive are happy that the work on a particular story is complete they move it to “done”.

Sprints end with a sprint review meeting and a retrospective to ensure that the team is constantly evaluating performance and where they can improve performance.

Automated Test and Code Analysis

Due to the complex nature of the Totential product, it is extremely important that test coverage is kept high and that the team is made aware of any regression issues as they happen.

The continuous integration process developed with Microsoft Visual Studio Team Services (VSTS) and SonarQube ensures that code is checked by a number of developers before it is accepted into the code base. Once a “pull request” has been created, all of the Totential tests (over 2000 of them, and counting!) including both C# and JavaScript / AngularJS tests are run and if any fail, the request is rejected.

A full nightly build includes static code analysis using SonarQube to flag where code does not meet standards and any potential issues or code smells, ensuring code is kept to an extremely high standard and technical debt is monitored and addressed.

Automated Build and Release

Ensuring that the development team kept their heads in the complex domain logic and not building and releasing the software meant that it was important to automate. Once a successful candidate build has been created (see above), a release is created and flagged for approval by the IJYI QA manager. At the click of a button, this code can be released into the QA / Test environment ready for any automated regression test suites to be run.

On the IJYI QA manager’s approval, this build will then be queued for the UAT (User Acceptance Test) environment ready for the client accept for deployment and review. Once the client is happy, that same code package can be deployed into production.

All of these deployments are seamless. No manual alterations of config files. No copying and pasting.

There are never any emergency deployments since every deployment can go through the same painless approval process so that the right people are aware of where code is and when.