Azure
Mark Simpson, Engineering Director
17 March 202310 minute read
Last Wednesday was an interesting day. The snow hit the UK and for those who aren’t familiar with the impact of snow on the UK infrastructure, it grinds to a halt. We are not prepared. The kids shout for a snow day, the trains even stop for leaves on the line so imagine what a small covering of light snow could do. The roads become challenging and drivers become extremely cautious or chaotic, with not much in between.
My drive home highlighted this. The main roads were at standstill, so I followed the satnav and made a turn to the side roads, of course, the Sat Nav has all the intelligence but only limited context to know the consequences (heavy traffic on the main route) not the cause (icy spots on the side roads keeping drivers on the main routes). There was one particularly treacherous hilly road, driving to me the other way was a car without lights on one side. As I approached they had the bumper hanging off, the light smashed and were obviously taking the route of carrying on regardless as their way out of the lack of caution and preparation, as we have seen many times in IT failed IT projects. Further down the hill, there was a van sideways having slid into the lamppost. Of course, taking the lessons of the early adopters I proceeded with extra caution.
The Sat Nav's algorithms I am sure have the intelligence to spot these issues just not the timely context (data). If there were real-time feeds from all the cars of incidents, up to the minute weather and conditions assessment, I’d have probably been presented with a risk factor for the re-route or kept on the mainstream route. The algorithms are improving at pace but they need the data to back this up.
To the UK infrastructure the small snowfall has a major impact, to the parents of the children walking to school it was light relief from the relentless morning. To the children, it was not even proper snow. The daughter of one of my colleagues commented “Dad, it's not real snow” … “Why’s that, it seems real to me”…. “It’s not on the ground”… the wise words of a 3-year-old, it’s all about the outcomes! Don’t lose the innovation in the air, make sure it is applied, added to and the infrastructure is ready.
It was also an interesting day in technology context too. We chose the JavaScript stack some time ago for Enterprise scale solutions, to remove our dependencies from vendor-driven platforms and allow the innovation from the community to assist us as we applied it for business benefit. However, the increasing pace of technology innovation seemed to appear in every topic at work and at home yesterday. How we truly benefit from the technology innovations such as Open AI came up again and again.
I started the day finalising some detail of a Github Copilot measured trial we are going to run over the next couple of sprints. Some of our team use Copilot and won’t be without it, some of the team will be skeptical of the benefits/distraction of it, and some just haven’t got around to trying it. So I wanted to have a period of time where we could measure the effect on the development team. But what to measure, what would the success outcomes be? I am sure it will save time, but I wanted to measure more. Will the automation of the standard code be counteracted by frustrations in some developers of different code styles, not knowing the context or risking hidden bugs in generated code? AI assistance does not remove the need for writing good tests, although generating these opens up a further topic!
After this, I resumed viewing the Azure Open Source Day (although with technology assistance the length of a day now appears to be 1hr 30min – a glimpse to the future working day maybe 😊) https://info.microsoft.com/ww-landing-azure-open-source-day-on-demand.html.
This was a really good and fast-moving session, of course, Open AI popped up as you would expect. I had also watched John Savill's dive into Chat-GTP the previous evening and so was ready to be bombarded with use cases for the application of AI technology. https://www.youtube.com/watch?v=_B3-OtAHzIU.
As well as outlining its use in code assistance and packages to enhance your application, there was an expert panel session with questions from the audience on the chat and 3 curated questions from the host, which were well structured and led to a good debate amongst the panel. We were asked which of these questions had been generated from ChatGPT earlier in the day. [spoiler alert] To me it was obvious and my answer of “All three !” was indeed correct. What I liked about them was the multiple layers to the questions and the use of context of what had come before, thanks to John Savill I now know the theory of why it is so good at that, thanks!
For my lunch break, I had a fast-track passport renewal appointment. In reading the instructions I needed to have my photo certified by a professional if there was not a clear likeness. I thought I would be fine as my fellow directors could sign it, but alas they weren’t in that morning when I arrived. So, of course, you know where my train of thought went. I uploaded my images to see whether something like DeepAI could recognise them as the same. Result and relief! It was more likely to be the same person than not… surely all the evidence I needed if asked at the passport office!
My afternoon was all about how we can apply some of these intelligent tools and libraries to our Enterprise JavaScript development. We have a conscious activity to refactor our core business-critical APIs so that they are ready for new integrations and innovation. To make the APIs easier to consume and smarter in consuming dependent services. I had scheduled a virtual meet with a trusted friend and API technology leader, who has worked with and for some of the largest API platform vendors, who now works from Colorado. We have had many a day / evening chatting in the past about all things API and product development in my visits to the US and his to Europe.
I won’t go into the detail but predictably there are two topics I knew would come up talking to an API technology leader in Colorado, the use of Open AI and of course… the snow! With colleagues at GW, we have some great innovations in building APIs in order to aid consumption and developer experience, especially for TypeScript built APIs. However, my integration background still gives me excitement to discuss how we improve the consumption of public, partner, and custom services in our code to make use of external providers’ innovation and business logic. There is a big opportunity for incorporating AI to learn, monitor and build trust in the dependent services. Something we will explore further.
I thought my day was done with technology discussions, but then my son asked me for help with some basic python logic in his homework, to roll two dice 5 times and persist the cumulative score with the game over when a double rolled. Of course, my first response.. “have you asked ChatGPT ?”. I will often help him with his programming, but always just via suggestions of things to try, how to debug better, and to understand why the code is or isn’t working rather than just giving him the answers.
That’s what I love about incorporating Open AI assistance into this learning. Not only did it point him to the problem, that he wasn’t specifying to open the file in write mode when persisting the cumulative total, but it also made suggestions to improve his code. Of course, his reaction was to say ChatGPT didn’t know the context and so was wrong. I asked him to be open-minded and use it as a fresh perspective to his code.
As an example, the first two suggestions were firstly to change the loop so that it always runs 5 times and doesn’t exit. It didn’t know the requirement fully and so was dismissed by my son. I challenged him on why this may have been suggested and, after consideration, he changed the user prompt in the instructions to “You may have up to 5 rolls”, rather than “You have 5 rolls” presenting more clarity.
The second example was that it suggested, “Instead of hard-coding the number of rounds to 5, you could add an input prompt that allows the user to specify the number of rounds they want to play”. Thus getting the novice programmer to think about his code structure, refactoring benefits, and implicitly introducing him to pairing and peer reviews. He will be fully transparent with his tutor on the improvement cycle he went through, with the code hopefully good enough for an AI-assisted A*.
As a caveat, I am not classing myself as the technology leader of the title (maybe just in the scope of my family !). It refers to anyone who wants to bring improvement to business outcomes with technology, relishing the challenge to go a step further and apply the innovation in their context rather than settling for an overly cautious route. The innovation is coming, at a rapid pace, let’s make sure we aren’t the UK in snow mode and are more prepared.
Enter your email below, and we'll notify you when we publish a new blog or Thought Leadership article.