And we're back with the generic non-copyright infringing A-Team digital metaphor this week. Turns out everyone does love it when a plan comes together. Who knew.
So anyway if your LinkedIn feed resembles mine, every other post seems to be about AI these days. It's like an 'A-Team' episode on steroids, but often missing the target. Seems like the team's jumped into the fray before Hannibal's had a chance to hatch a plan!
Many of these posts read like fluff pieces from an airline magazine. But strip away the vendor's fancy talk, you still sense there's something to it. So much so, that you half expect someone fresh off a flight to quiz you about why we're not on this AI bandwagon, but barely grasping what 'it' really is.
So, what comes next? The 'whys', 'hows', and the 'what's in it for us' of using AI. To get a grip on that, you've got to roll up your sleeves and dive in. Like Murdoch concocting one of his zany schemes, I plunged into the AI realm these past few weeks, hunting for those elusive productivity boosts in my ongoing work.
Text-to-image creation? Sort of works, but watch out for that sixth finger, third leg or over abundance of afro hairstyles. Cautiously polishing my reports and business papers with AI's help? Sometimes handy - again with a bit of caution thrown in to avoid trade secrets being released into the wild. But what really got my attention is AI in software development, particuarly where it is somewhat formulaic.
Sure, there's a ton of stats about productivity enhancements around this. But so far I haven't seen a seismic shift in the productivity of the dev teams I'm involved with - visibly at least - but perhaps they're all at the beach reading that inflight magazine?
So, reverting to my software dev roots (anyone remember 6502 assembly?), I dusted off the old skills to tinker with some custom web apps. Here's a snippet of the mission so far coding with some help from ChatGPT, Dall-E, and GitHub Copilot.
My somewhat unscientific testing of AI suggests it can churn out code reasonably well if you steer it right. Picture laying out a 'bread crumb' trail in advance for it to follow, with occasional course corrections. Be vague, and you get a patchwork of open-source like code, worts in all. But tidy it up a bit, and voila, it works. Boilerplate, generic code seems to be AI's sweet spot rather than highly unique topics. The 'plumbing' in other words.
But, watch out for pitfalls. If the AI's knowledge is outdated (think models using pre-2001 information), you might have to manually modernize things, and you still need mad skills to do it sometimes. I also noticed AI often latches onto common mistakes or anti-patterns as if they're gospel truth as well. It's like asking AI for a picture of lawyers and getting mostly images of older, grey-haired Caucasian gents, unless you explicitly request diversity. AI is only as good as its learning material, unless you intervene.
There's a risk novice developers might not spot these flaws - kind of like Murdoch in 'The A-Team' being a bit too trusting at times. Yet, when you piece it all together, there's real potential for productivity gains in custom app development and other business areas with a lot of boiler plate type lower value work. This can be particularly effective if you 'seed' the AI tool with some existing content that captures your style and approach.
With AI it seems like we need those with more leadership posture, and fewer followers to drive it. In other words it has potential to hollow out opportunities for lower skilled developers or those earlier in their career. Which raises the question of how do we ensure people gain experience in the first place, to be in a position to guide AI in the longer term.
But as for me, I'm a fan of sketching out ideas on a whiteboard. It helps me think. I often start a bespoke app with an old-school entity-relationship (ER) diagram to understand the flow and relationships in data. It turns out, you can actually snap a photo of your whiteboard scribbles, and AI can decipher the entities and relationships, filling in any gaps. Pro tip: use different colors for comments and actual entities/relationships to make prompting easier.
With my scribbles and diagram understood, I was then able to get ChatGPT to whip up some C# program code, guided by a few well-phrased English prompts. A bit of tweaking, and in 30 minutes (coffee break included), I had a basic but functioning API (a digital interface other programs can use to store, process and query data) and a database to store data. Although more advanced features might need to be addeded later, that is potentially days of work done in only 30 minutes assuming no existing template is used.
So it seems pairing old-school hand-drawn diagrams and experience with AI to generate basic software code and database design could be one way at least to improve productivity. This approach would allow redirection of your pricy developers to more complex and valuable tasks, rather than 'connect the dots' type work.
I also found this technique a great way to lean different or new programming languages or frameworks. With the CoPilot or ChatGPT you can simply tell it to use Python instead of C# for example. An experienced developer should still be able to 'sniff out' any problematic code even in a new language, although again a novice might struggle.
Which leads me to wonder, why aren't more developers using this tech more vigorously yet? Maybe the executives and leaders need to become better at 'prompting' (and a deeper knowledge of tech given it is increasing embedded into business) to get the desired 'A-Team-esque' explosive result? The best approach, role up your sleeves and give it a try.