This is part of a series of blog posts lifting the lid on the different types of projects you could potentially work on as part of the Scott Logic team.
In the first of these, Sam will talk you through what’s involved in building a web-based currencies trading application from scratch.
My main focus of interest is web and mobile technologies, largely influenced by my time at Scott Logic, which began as a graduate in 2010. Since then, I’ve worked on a variety of projects, including the front end of several trading platforms for investment banks, a web-based financial research platform and both of our charting products (shinobicontrols and Visiblox).
Currently, I’m involved in building a web-based foreign exchange (FX) trading front end application from scratch. We are decommissioning an existing legacy application but re-using the back end services to stream currency prices and execute trades.
IN THE DRIVING SEAT
In the early stages, we were able to utilise our experience in the FX domain, and I’ve been involved since the project’s inception. This included early analysis of the requirements, which was undertaken in collaboration with business analysts. Following this, we were able to formulate a strategy – we would aim to build a minimum viable product, focusing on getting an end-to-end trade placed as early as possible. Prettiness was to come later; in the meantime we used placeholder UI wherever possible, gradually replacing this once the end-to-end solution was in place.
The strategy has been a success, enabling us to structure our architecture in such a way as to be flexible to change. Our application sits within a larger platform but is relatively self-contained. As such, we had the ability to make our own front end technology choices. From successful internal prototyping, we chose Facebook’s React framework as a suitable, scalable solution to build our UI.
TESTING, TESTING, TESTING
From a testing perspective, we rely heavily on automation and close collaboration between our testers, developers, business analysts and product owners. At a very early point in the application lifecycle, we put in place some automated testing scaffolding to ensure our core functionality remained at a high quality while we developed other areas. Our process means the development and quality assurance stages take slightly longer, but this is a small sacrifice to ensure a smooth production rollout.
THE AGILITY OF CLIENTS
Scott Logic's clients have various levels of experience with Agile development. On this project, the client was already adopting Agile processes, involving two-week sprints, co-ordinated releases and a centralised work ticketing system. This is a conventional ‘scrum’ arrangement with retrospectives, estimation and sprint kick off ceremonies. However, we are constantly analysing and optimising our process to ensure delivery is as smooth as possible. For example we are now starting to introduce Kanban features to create a smoother pipeline that reduces the test bottleneck significantly; we still have scrum-related meetings such as retrospectives and story point estimation, but we also limit our work in progress to focus on quality, not quantity. As such, we now release weekly, without any drop in our output quality.
What keeps me interested in this project is the excellent, productive relationship we have built with our client. In a relatively short 10 weeks or so, we have released a high quality minimum viable product to our users, and several incremental updates based on user and business feedback. We have demonstrated flexibility with future requirements to our client, by building an application that can adapt to regulatory demands and changing business needs. Our technology choices have also held up well in this environment. The client has enough trust in the team to incorporate maintenance work, which ensures we can work in a sustainable manner. Finally, we have an exciting roadmap ahead of us and lots of work to do!
Would you like to be involved with projects similar to this? Why not take a look at our recent vacancies?