Case Study - BBC Training & Development


BBC logo

BBC Learning.Gateway

The brief

The BBC wanted to re-develop the training and development hub on the BBC’s intranet, learn.gateway. The site is owned by BBC Training & Development and serves an internal audience of approximately 25,000 BBC staff. The application had gone through various technology iterations from a classic ASP site through to a .NET 1.1 solution of which Foresite was the development team. We were therefore ideally positioned to help the BBC architect a new enterprise level solution.

The solution

We already had a full understanding of the functionality of the site but in order to design a solution we needed to properly understand the domain. Working with the BBC's architects we agreed upon a Domain Driven Design (DDD) for the project. The application brings together multiple data sources from systems such as SAP and SQL Server and combines complex business logic. The DDD approach ideally suits this as we are placing the project's primary focus on the core domain and domain logic. DDD provides a structure of practices and terminology for making design decisions that focus and accelerate projects such as this where we’re dealing with complicated domains.

The main problem we had with the existing .NET 1.1 implementation was the lack of tools available within the framework. This meant we had to write a lot more code, which bloats the software, causes new development to take longer and adds a great deal of complexity to the application. By making use of .NET 3.5 and tools available such as NHibernate, Web Services, Generics and Master Pages we were able to write much more efficient code in less time. A lot of the complexity has been removed from the application and replaced with much simpler implementations.

The new architecture was based on a set of WCF services exposing the needed operations of the application. We used a service locator design pattern to enforce decoupling of classes and make code more modular and testable. This approach allowed for much simpler mocking of service objects which sped up development as we could mock everything and then hook in the real services with our repository code when provided by the BBC.

The front end was written using the Microsoft ASP.NET MVC Framework. To make it easier for BBC to maintain we also updated all the Javascript to use the jQuery framework.

To faciliate project management and version control, we implemented a central integration server (Team City). This includes a central Version Control System which Team City monitors for changes, when changes are made the project is checked out, compiled, unit tests are run and reports generated.

The results

The site has exceeded all expectations in terms of performance and functionality. The application is very easy to maintain and highly extensible as new functionality requirements become apparent.

We have also significantly sped up the release procedure and removed risk by introducing continuous integration and automated deployment. We continue to work collaboratively with the BBC development team and these practices and processes ensure that we are always working with a solid code base and allow developers more time to focus on building the application itself.

BBC Learning.Gateway - screen shot