Lead Software Engineer at Barclays, Richard Gale, discusses how he switched from testing core mission systems to fintech, while specialising primarily in Java-based web applications
“I felt that I needed to move into a different discipline to progress further in my career and that the opportunities available in fintech were more plentiful and overall a better choice than staying in defence,” Gale explained.
When designing the architecture for the next generation of unmanned vehicle mission systems he employed techniques such as the domain-driven and data-driven design to create a flexible architecture that would be flexible enough to meet new customer requirements and reduce overall development time.
“The architecture was still in development when I changed roles so I’d be interested to see what it’s evolved into,” he added.
Air combat tactics
When working for BAE Systems, Gale used artificial intelligence and behavioural modelling techniques to model and simulate air combat tactics within a synthetic environment.
“After having experimented with basic event-driven scripts in the past, we focused on the use of behaviour trees (a technique originally used to model AI in video games) to create behaviours for entities that were somewhat similar to the tactics used by real pilots and systems operators,” revealed Gale.
“As with many specific techniques or approaches, these worked well for some types problems but were somewhat difficult to use when modelling behaviours are driven by events and changes in the external environment.”
According to Gale, to ensure tools are fit for purpose, easily accessible, and up-to-date, there’s a constant effort to reflect on what we’re doing, how we’re doing it, and whether or not there are better tools and techniques available.
XP techniques and tools
“This was true at both BAE Systems and Barclays, but there’s much more of a focus on this in my current role, and this is driven by the push towards using Extreme Programming (XP) techniques and tools,” he added.
In order to provide end-users with accurate real-time simulation data, he achieved this in a number of ways, by generating visualisations of said data through 3D scenes and graphs as well as other visualisations, which helped users to understand the behaviour of the simulated entities.
To deliver innovative solutions quickly and efficiently, Gale adapts to different customers requirements and being able to turn around an initial prototype as quickly as possible, even if it’s incomplete (which it almost always is).
“The sooner you deliver an initial version of a solution to a customer, the sooner they can provide you with feedback and refine their requirements to better suit what it is they’re looking for,” he explained.
“This is nothing new as far as modern software techniques are concerned (it’s basically one of the cornerstones of agile), but it can be difficult to achieve in organisations which have traditionally followed a waterfall-type development model. In those cases, the main challenge is working with the development team and the customer to try to adopt these newer development practices and ways of working.”
Gale hopes there will be much more of a focus in most software development teams, and that customers would even start to consider it when specifying requirements. This is especially true for safety-critical projects and projects involving the handling of large amounts of currency (fintech is a prime example).
“I see it being possible in the future to automatically generate tests from formal software specifications/requirements. From that point, I don’t think it’s entirely unreasonable to expect the actual business logic itself to be automatically generated by the requirements, but that’s probably further down the road,” said Gale.
“In some ways, we already have these capabilities with things like formal methods, however, these are quite specialised and often require a specific skill set and a well-defined set of requirements to be able to leverage them effectively.”
He also noted that, with software being a relatively young discipline in the larger context of engineering, we’re likely to see more and more innovations in the near term with respect to how we develop software and how customers interact with it.
“It feels like teams are starting to understand the shortfalls in older development techniques (e.g. by reflecting on previous projects and pieces of work using retrospectives) and are actively driving and developing newer techniques to mitigate or eliminate these deficiencies altogether,” he continued.
Written by Leah Alger