Experience

I have worked for more than 30 years in large software systems. Most of this time I worked on equipment designed by Ericsson for mobile phone networks. Later I was a consultant for the mobile operator Swisscom, interfacing between public networks and special networks for the emergency services. Simultaneously I was also a standardisation consultant for SES Satellites, involved with the implementation of satellite access into 5G mobile networks in the 3GPP standardisation groups which define the functionality and interworking of component parts of modern communications networks, enabling interworking between different operators, using components supplied by different manufacturers.

Cooperation

These activities have given me an excellent capability in managing requirements during the tendering phase; working with the designers of solutions; coordinating the design phase; assisting with realisation and implementation; and verifying that the final system does indeed fulfil the original requirements; as well as the resolution of issues arising in all of these activities, and the evolution of these solutions to encompass extension and updates to the requirements.

Issue avoidance

I have gained a lot of experience in understanding how to avoid issues when the stages or components of the solution are provided by different suppliers at various locations with diverse cultural backgrounds. My activities have been generally in telecommunication systems where the is a high degree of standardisation to ensure interoperability - two products from different suppliers each conforming to the standards should be able to operate together.

I am very interested in assisting in areas not related to telecommunication, such as banking or insurance of health, where there is less standardisation, but could benefit from the way of working in a highly standardised environment, perhaps even creating a "virtual standardisation" which could reduce issues, and be beneficial in todays world of frequent amalgamations and takeovers.

Examples of recent serious issues in software systems
UK post office disaster

I am just an observer, reading newspapers and depressed by the human tragedy and astonished by the lack of professionalism that must have been lying dormant in the technical aspects:

  • What was the tendering process?
  • How did the winning supplier demonstrate track record in the field?
  • How was technical compliance evaluated and were financial or political promises prioritised?
  • What were the security and fraud detection requirements? 
  • More specifically how did the system detect "bent" subpostmasters, and how was this tested? Did the testing involve creating bent and "suspicious" postmasters and were they detected correctly? What percentage of bent postmasters is expected?
  • It looks like there are about 10000 subpostoffices and about 900 prosecutions. Now I know I'm not really considering the time domain here, but that's not far off 10%. I'm not a criminal psychologist, but I would expect less than 1%!
  • There is talk the postmasters had to enter some data manually - did the fraud system account correctly? Or did they switch it off because it couldn't?
  • Was there a separate audit, and were its recommendations executed?
  • Did senior management demand realistic reporting of errors detected and the time plan for correction?
International payments not working in a banking app

I have bank accounts in three countries, and have to transfer money between them. Last summer the android app of one of the banks lost its ability to do international (SEPA) transfers after an upgrade. Of course I can observe, but I can't reverse engineer the app - I suspect it was like this:

  • at the start transfers could be made on the same day, or if the transaction was entered after a cut-off time, on the following day
  • probably the upgrade intended to make it possible to also allow transactions to be prepared for execution at a later date
  • the relevant screen had the transaction date blank and the intention must have been to be able to select the execution date. This did not work. But you could continue to execute the payment, but since the date was blank no payment was actually made (probably best that way!)
  • It wasn't simple to get the bank to understand their problem (they sent me links to their manual), but finally they agreed with me and said it would be corrected in the next release. Three releases and seven months later international payments could again be made (without improvements to the execution date)
  • On my iPad I couldn't even get as far as the handling of the execution date, because it had a fault in currency handling which happens earlier. In the same timeframe as the successful android app update, there was an iPad update but the currency handling was not corrected
  • I guess I have to try international transactions again on my android and iPad apps and see if I can update this! I generally do them at the end of every month, or every two months

So what could I do to help the bank as a consultant, to ensure that situations like this don't arise in the future? This kind of situation really doesn't create confidence in the bank (even though I could always do my essential payments using safari browser on my Mac). Also the latest versions of the android app describe a large number of new features available. The bank web site shows under "careers" a significant number of open positions - software handling mainly in India. But maybe the apps are handled separately?

  • ensure that requirements are properly defined and understood by all relevant parties
  • work to see that product roadmaps are realistic and coordinated
  • coordinate new functionality, improvements and maintenance in individual app releases
  • ensure that testing strategies are able to demonstrate fulfilment of the requirements
  • increase regression testing
  • help in deciding the course of action in the event of a part of a release not being available at the right time at the right quality for a new release - delay the release or withdraw part of the release without issues to the rest of the release
  • handle the inter location and inter cultural aspects of all these activities