CONTENT DISTRIBUTION PLATFORM

Scott Logic worked with a multinational client on a major redevelopment of their content distribution platform.

ANYTIME, ANYWHERE

Our client wished to extend their content distribution platform to a wider audience and also to provide their users with access to time sensitive information while away from the office. The solution was an on-line portal that supported any internet enabled device, allowing customers to access published content at any time.

An additional goal for the on-line delivery platform was to provide better communication channels between the content producers and consumers, for example allowing customers to comment on articles, or to enter into a dialogue with the author of the content.

TECHNOLOGY STACK

  • HTML5 including AngularJS
  • JSON
  • Hibernate
  • SVN
  • Maven
  • Content Streaming

FULLY MANAGED DELIVERY

As the client had limited experience in developing web-based solutions they identified Scott Logic as their ideal partner due to our proven track-record of delivering responsive web-based user interfaces which provide a rewarding user experience.

Our ability to offer a fully managed delivery solution was also a major factor in our client’s selection process. Our developers can work in a completely independent environment covering the whole development process, from refining and prioritising requirements, through development, to the delivery of the final project artefacts including code repository and issue management database.

MITIGATING RISK

Without the proper processes in place a managed delivery solution can suffer from many problems. A primary example is a lack of client visibility of the progress made by the remote development team. To avoid this, we typically employ an Agile approach with managed delivery projects which allows all parties to monitor progress, identify and address potential issues before they impact the project, and iteratively clarify requirements, thereby avoiding miscommunication and delivery of an inappropriate solution.

We provided the client with full access to the development infrastructure such as issue tracking, code version control, and continuous integration. This meant that the client can be as involved as they wish in the whole development lifecycle, from prioritising requirements, through assigning story points to the user stories and selecting backlog items, to testing and issue tracking.

We also set up a risk register at the start of the project, and regularly reviewed it throughout the project, using the register to mitigate any potential disruption to the project by identifying potential risks and their solutions.

ITERATIVE DEVELOPMENT

In the first phase of development, we created a system prototype to validate our proposed architecture, and to confirm the final user requirements. For the project development methodology we decided to use Scrum with three-week sprints, to allow significant chunks of functionality to be implemented during each sprint while maintaining a rapid turn-around to allow the client to be kept in the loop on progress.

At the end of each sprint we ran a full set of tests, and once our team lead had signed the sprint off, we gave a demo to the client to review the deliverables and discuss any perceived issues. We then conducted a retrospective to allow members of both teams to make any observations regarding the current sprint, or development process.

EFFECTIVE COMMUNICATION

We believe communication is key to the success of any project. We visited the client site at the start of the project to gain a complete understanding of both the requirements and the client team, and to help cement the working relationship between the two teams. We continued to make site visits as necessary during the project.

We held daily stand-ups with the client to discuss progress and impediments. Regular communication between our business analysts and testers and those at the client ensured that we always had a local representative with a thorough and up-to-date understanding of the project requirements.

We used project metrics from JIRA and Sonar as another way of ensuring open communications between the two teams. These metrics allowed both teams to monitor statistics ranging from sprint velocity and the number of open/in progress/closed issues to code coverage and complexity metrics.