Looking Fjordward

L

The Future of Software development in a world with AI


I glance down at my, saltwater encrusted, Apple Watch Ultra – 4:21 am. There’s a stillness in the thick, humid air as I wait in the porte-cochère driveway of the Alohilani Resort in Honolulu, Hawaii. Less than a block to the west, waves can be heard cresting and retreating off the tourist trodden sands of Waikiki beach. I look up from my watch to see my Lyft arrive; a beige Honda CRV – and right on time. This was the first leg, of many legs, onto my ultimate destination eleven timezones-away.

Two months (and a billion AI years) earlier, I received an email accepting my aptly “of-the-moment” talk proposal: “ChatGPT and your Mobile App Development Workflow” for presentation at Apprise Conf 2023 in Oslo Norway. I double checked the conference date and the return date of my much-anticipated Hawaiian vacation… hash collision. I was going to have to rebook. So I booked a most-unenviable route: a triple-connecting flight from Honolulu to Oslo. I’d arrive in Oslo approximately 12 hours before the conference started, and then, assuming none of those three flights had a delay or I’d become sickened by airline food, I’d present my talk.

“We are pleased to inform you that the program committee has accepted your submitted talk ‘ChatGPT and your Mobile App Development Workflow’ for Apprise Conf 23rd of March 2023”

Surprisingly, all of my flights were on time and KLM’s culinary options left me both impressed and digestively-unaffected. “Sir can you open your window shade for landing?” My sleeping head was propped against the closed window shade. I jolt awake from my two hours of stolen sleep and open it to unveil the cascading Norwegian tundra hurtling below the final flight of my journey.

At approximately 4:02 PM local time in Oslo, nearly a day and half after I left Hawaii, the last flight of my journey landed wheels-down amongst a flurry of snowfall. Even still, I’d have to take a train from Oslo Gardermoen Airport into the city center where I’d be staying. The accurate-to-the-second Norwegian express train takes me to Oslo Sentralstasjon (Central Station), where it’s only a short walk to my lodging provided by the conference organizers at the K7 Hotel.

The Conference: Apprise Conf 2023

I woke up at 3am the day of the conference feeling grateful for sleeping in a bed as opposed to sleeping in an airline seat like the conditionally inanimate protagonist from Weekend at Bernie’s. The conference started at 9 so this gave me time to go through my keynote-presentation a few more times and grab a convenience-store breakfast of tinned-fish and chokoladeboller (chocolate rolls 👍).

“I woke up at 3am the day of the conference feeling grateful for sleeping in a bed as opposed to sleeping in an airline seat like the conditionally inanimate protagonist from Weekend at Bernie’s. “

Two fire torches surrounded the red carpet entry to the Oslo Event Hub. It was a warm and welcome juxtaposition to the rainy, cold and dreary weather that day. I arrived with enough time before the first scheduled keynote to chat with the other attendees and speakers. ChatGPT and LLMs (Large Language Models) seemed to permeate every conversation and the excitement (and anxiety) around these newly emergent technologies was palpable. Should we be excited? Should we be scared?

Both… Read on dear reader.

Disclaimer

Before I continue I feel like it’s a good time for a disclaimer: None of this blog post was generated using a LLM. As I imagine many other people who have covered ChatGPT and other LLMs have considered: “Why not have ChatGPT create my whole presentation/talk/blog post/etc” – I did as well, but unless you want your audience to chew on the content equivalent of a stale-saltine, I strongly suggest otherwise. I can definitively say that ChatGPT is a better programmer than it is a writer. Will it improve in the future? Without a doubt, but for now *most* bloggers have the upper hand.

I’m going to condense a lot of the material I covered at AppRise Conf 2023 while also updating it to reflect where things stand as of… *checks watch* just before 5pm CDT April 14th, 2023. My presentation was only three weeks ago, but the state of LLMs in software development has changed so dramatically that I’m already updating most of my content to match the rapidly changing landscape. On-to the talk:

ChatGPT and your Mobile App development Workflow


Near the end of last year (2022) I had my first real encounter with ChatGPT through my brother, a computer science student at the University of Iowa. As I explain in my talk, my initial reaction was to disregard the technology; I was defensive. I’m a real programmer – why would I need a computer to program for me? I tell the computers what to do, not the other way around.

I realized though, that I’ve been down this path before. We, as programmers, hold tightly onto our hard-earned knowledge and techniques, at our worst, we gate-keep. We worry that anything that lowers the barrier-to-entry in our field will render us obsolete like the discarded flip phones of yesteryear. History disproves this; here are some examples:

In the early days of computing, programmers used simple text editors, such as Emacs or vi, to write their code. No code completion, no debugging, just you a keyboard and a screen. Did the introduction of hand-holding IDEs with code-completion, syntax highlighting and automated refactoring lead to less programmers? Of course not, we all know the opposite to be true; this example has played out repeatedly in our field. Decreased barriers to entry and increased productivity lead to a greater demand for, and ability to deliver, superior digital products.

“Decreased barriers to entry and increased productivity lead to a greater demand for, and ability to deliver, superior digital products.”

Is the proliferation of LLMs any different? Will demand for richer, more complex digital products increase, and will additional, newly-empowered talent be able to meet that demand? Honestly, I don’t know, but I can say for sure that this does feel different. It feels like we’ve just stepped past the threshold from the Information Age (starting in the mid-20th century) to an all new age of AI and Machine learning. In a similar way how mass production, introduced in the industrial age, ushered in the tools used to build modern computing machinery, the data gathered and categorized during the Information Age has allowed the rapid training of increasingly intelligent machine learning models.

Think of the level of disruption we’ve witnessed since the dawn of the modern Internet – the introduction of AI will be just as disruptive if not more. Large entities such as government organizations and corporations have leveraged data science for decades, and we’ve all used voice assistant like Siri, but ChatGPT is the first time the general public is employing AI/ML in their everyday lives in a deliverable capacity. We’re using these new tools to create, to synthesize and to learn. These tools are learning as well.

We can’t predict the future, but what about the near-future? In terms of software development, there are advances related to LLMs like ChatGPT that seem imminent. Many reading this blog are surly already familiar with Github Copilot. Self described as “Your AI pair programmer” digital development assistants like Copilot will become ubiquitous and supercharged in future IDEs. Is your code coverage low? Don’t worry, your digital assistant just generated a suite of tests for your new code and now you’re sitting at a cool 95%. Is TDD more your style? Eat the crust first and generate some test cases then let your digital assistant write the passing functions.

Next stop: dev-ops. I demonstrated during my talk how we can analyze git-diffs using OpenAI’s API to generate reports customized to each team members specific function and speciality on a team. Using simple prompts we can analyze things like accessibility conformance or security concerns and audit our changes in real-time. Technical members of a team such as developers receive an in-depth technical breakdown of changes while non-technical stakeholders receive incremental progress updates in plain-english describing added functionality.

As an employee of a software consultancy, I’ve had the joy of delivering 40 page codebase audits. They follow a defined template and script. We are not far from a reality where we can generate these with the click of a button.

Is your head spinning yet? The possibilities really are endless.

Risks + Downsides

So far, I may sound a bit hyperbolic; let’s return to earth. Every technology has its growing pains and LLMs are no different. ChatGPT is confidently incorrect even more than most software developers. The type of problems that we should be solving using LLMs currently require a level of non-criticality in their function. A bench of AI jurors is a terrifying prospect and potentially an episode of Black Mirror. This is why my example of automated reports in a dev-ops pipeline works; it’s informational, it provides value to the team and it’s non-critical to the functioning of the product/service. As these systems improve expect to see them performing increasingly critical tasks.

Are you familiar with mechanical turk? Amazon’s mechanical turk service is a crowdsourcing marketplace that enables individuals and businesses to outsource tasks to a global workforce of real people. Workers, known as “Turkers,” complete tasks in exchange for payment, typically small amounts of money. Actuaries around the world are feverishly typing numbers into their TI-84s to determine the cost difference between a service like mechanical turk and a service like ChatGPT. Which is to state the obvious: a LLM like ChatGPT isn’t free; whether you pay for it a la carte through API fees or license a local instance, there is a cost involve.

This will be the cost calculation of the future. I’ll leave the talk of UBI to (the increasingly prophetic looking) Andrew Yang.

Conclusion

My dad is a financial advisor. Much of what he does has been automated by some service or algorithm out there, but when we’re talking about the management of a retirement account and the well being of someones life savings – there will always be a value to having a real human to consult with, even if, behind the scenes, a computer is crunching the numbers.

Our job as developers is different, but also the same. We build products for people, we work with people to build those products. We take someones vision, their dream and we build it. A large language model (or theoretically any AI) will always struggle to understand the human experience – the experience around which we build our products

So I close on this. AI like ChatGPT is going to be massively transformational for our world – the world at large and especially for our jobs. Automation tools like ChatGPT will turn us all into 10x programmers but it is entirely up to us to be 10x consultants. Success in our field will be defined by our ability to ask the right questions  – to humans and computers.

The City – Olso

I can’t speak highly enough of Oslo and its people. I only had a couple full days to visit, but I got to float down a fjord in a wooden ship while drinking a glass of bubbling glögg and that alone was worth the trip. I extend a special thank you to Øivind and the other conference organizers for their hard work and dedication to delivering an awesome conference experience. I’m already looking forward to returning next year!

About the author

John Solsma
By John Solsma

John Solsma

Get in touch

John is a Senior Engineering Manager and iOS Solution Architect with 10 years experience writing mobile apps. He's developed iOS apps for clients such as Apple and AT&T and developed one of the worlds first direct-to-device esim-installation apps. He attended the University of Iowa for Computer Science and recently graduated from the University of Texas AI and Machine learning graduate program.