Tuesday 30 April 2013

GBNA & LINAS Development Remembered

British Gas Research & Development Centre, Loughborough
BG Technology plc
March 1996 - November 1999
After I left the University of Luton around Christmas 1995 I moved up to Manchester to be with my then girlfriend Naomi. It was a bad time of year to be looking for work (traditionally January is a write-off trying to find contract software development work) but eventually I ended up with two offers: one as a Systems Administrator for the University of Cambridge Engineering School and one as a contract software developer for British Gas at their Loughborough research centre site. It was a tricky decision as I loved the academic environment but in the end I decided to go for the money (the difference was quite significant).
The research centre was a very impressive building with a large atrium entrance (containing for a while LPG converted cars if I remember correctly) and what seemed to be an endless maze of offices and labs. When there first thing in the morning or last thing at night when it was partially lit it always reminded me of playing Doom with eerie corridors and dark offices.
My interview was with Tracie Withers and Howard Hughes. I was presented at one point with a sample sheet of C code and asked to find faults. I found more faults than had been initially identified which I think must have impressed.
I had a week or so's handover from Howard who I was basically replacing. If I remember correctly he was moving to Scotland. Day to day development to start with was between myself and Tracie and possibly also John Lloyd (my memory is a little sketchy here). Simon Taylor was our manager.

The team I worked with was primarily concerned with on-going development of a product called GBNA. This was a C & Motif based graphical tool running under the X-Window System for the analysis of low-pressure gas pipe networks. The code relied on an embedded FORTRAN engine called Pegasus developed in the early 1980s which used Hardy Cross analysis and smooth pipe flow laws to determine pressures and flows in the network. The code supported plotting via HPGL output and also supported large A0 digitising tablets for scanning in new developments. I spent a good few days of my early time on the project both reformatting the source code and removing compiler warnings. The XDesigner tool was used to layout the GUI graphically - the result was automatically generated files containing all the Motif code to present the application GUI.

Development of GBNA was done using Solaris Sparc workstations. Transco and British Gas however were primarily a DEC site so for delivery the software was re-compiled on Alpha workstations. I don't remember seeing a VAX although the conditionals in the code were always 'VAX' rather than 'VMS' or 'OpenVMS'. The office system relied on the venerable DEC product ALL-IN-1 for most of the time I was there although towards the end it was replaced with Lotus Notes (and for some systems SAP) which didn't meet with great approval from colleagues who could see the benefits of such a mature product as ALL-IN-1. We used Fujitsu/ICL computers which had keyboards supplied with the special WPS/PLUS key legends required for ALL-IN-1.
The team slowly expanded. Things got interesting at some point after Steve Limb arrived when talk turned to a large-area version of GBNA that could handle the entire London low-pressure regime network. The team worked together to produce a prototype that divided large networks into square geographic tiles which were then stitched together for analysis purposes.
The C codebase for GBNA (at one point in time when I did a search for authors) contained the following authors:
  • A. Corner
  • Alan Backhouse
  • Graham Kirsopp (contract staff)
  • Howard Hughes (contract staff)
  • John Lloyd
  • M.A.Hood (contractor)
  • Mark Wickens (contract staff)
  • Mike Smith
  • P. Nicholson
  • Pete Ranson (contract staff)
  • Sarah Morley
  • Steve Limb (contract staff)
  • Tracie Withers
Of these developers I personally worked with Graham, Howard, John, Mike, Pete, Steve and Tracie. Sarah wasn't on the GBNA team when I joined but I did know her.
Graham was funny - whenever he'd get something to work you'd hear a muffed 'YES' and see his hand punch in the air. Pete worked on and off as required on GBNA - he had come from a job developing software to do with satellites which always sounded really cool.
There were several software development groups. Phil Hindley worked in another group but sat with us at lunch and provided a constant source of amusement with his dour outlook on life and his view of contractors. Once over lunch I'd had enough of the 'your life being a contractor is better than mine as a permie' attitude so we broke down how much a contractor earned in reality compared with a 'permie' (taking into account lack of sick pay, holidays, healthcare, pension contributions etc.) and found the gap to not be amazingly huge. I think with Phil the sticking point of the conversation was always his unwillingness to travel and live away from home which is pretty much a requirement for a contractor. After this conversation we got less hassle from him! It also taught me early on about the view that permies can have of contractors and develop a coping mechanism. Whenever I started getting hassle I'd always ask the question 'so why aren't you a contractor if it's so great?' - typically this would bring the conversation to an abrupt halt.
We didn't get many trips out of the office. I remember one time when I did have a trip I was destined for the Peterborough Transco office to debug an issue with plotting. I had started to ride motorbikes around this time, for the first time, and was still in the love-affair stage. It looked like it was going to be a great day on the bike till I stepped outside and nearly fell on my backside - the driveway was covered in ice. To say I was disappointed was an understatement. I ended up going in the Jeep and at one point realised I'd made the right choice when I found myself sliding sideways down a road at 30 mph.

I also visited the Hinkley Transco office a couple of times. We got visits from John Scrivener who was one of our main contacts with regard to new requirements. He seemed to spend a significant amount of time on the motorway between Transco regional offices - he was based out of the Slough office.
Mike Smith joined the team as a permanent member of staff and team lead before I left and was a thoroughly nice bloke. I remember him having trouble with his Vauxhall Carlton - the rear axle was shot which I think was how a great many of these cars finally met their end. There were several rounds of redundancies whilst I was there which always made me feel sorry for those on their way out - for a while it was customary to hear rounds of applause on a Friday afternoon - an altogether sad sound. Over time the occupation of offices clearly diminished.
Around the two year mark I'd decided that my future lied along a different path with the new up-and-coming language Java. I'd treated myself to a one-week residential coding course. When I left British Gas I spent three months at Thames Water in Swindon debugging a call centre application. It was written in Java 1.1 and ran incredibly slowly compared to the mainframe based application it was designed to replace. The architecture was amazingly complex especially when it came to the inheritance hierarchy. Development was using IBM's VisualAge for Java which I developed a real love-hate relationship for. When it worked it was brilliant but it was buggy and tended to crash leaving you to have to spend hours creating a new workspace with the codebase you were working on.
In the meantime Steve Limb and I formed a company called MAST in anticipation of negotiations between British Gas and ourselves coming to fruition. The task was to re-engineer Pegasus as a Java application and also to improve performance. Analysis times using the Large Area version of GBNA were unacceptable. The goal was set for an eight-fold increase in speed.
Steve undertook the majority of work on the engine itself finding that the richer availability of appropriate data structures in Java (the engine breaks a gas network down into a tree structure and series of loops) compared with the FORTRAN implementation where everything was effectively stored in arrays and linked lists enabled him to improve efficiency of analysis markedly. I worked on the graphical front end and ancillary components to provide a prototype. At the end of six weeks we had fulfilled the rigorous requirements set down and presented the demo to Transco. I was very (perhaps a little too) enthusiastic about the potential for visualization using the new facilities available in Java for graphical presentation.
Unfortunately around this time BG plc purchased Stoner software who were based in the USA and as part of their portfolio provided a similar product to GBNA. Both Steve and I moved on to work for other companies.
I had noted at some point in the past that British Gas had closed down the Ashby Road site and it would appear that it is now the Loughborough University Science Park - having recently contacted Graham Kirsopp he confirmed that he has been back to the site to work for an energy-related company.
I've also found that it would appear that National Grid is now responsible for the low-pressure gas network in the UK. There are indications, contrary to my assumptions, that GBNA and LINAS are still being used operationally. This is great to know - too often software that you work on as a contractor eventually ends up not being used.
Footnote: the GBNA icon looks like this:

Do you recognise the feline? It’s Jonesy the cat from the movie Alien, originally captured using an Amiga Genlock by my friend Aliennerd.