Monday, August 24, 2026

Software Development With AI

 ... is enormously productive, within limits.

Among other things at work, I develop Groovy-coded customizations for a large Jira instance. Jira is the world's top project tracking tool. Groovy is a Java derivative that is used by a Jira plugin called ScriptRunner which allows you to access Jira's API and do anything you want. I don't have a development environment, so I work directly on the live production system. I have hundreds of users, tens of thousands of live tickets and a 10-figure gross budget worth of work riding on the use of Jira.

I joke that working on the live production system while people are using it constantly is like fixing a car as its being driven down the freeway without the driver or passengers knowing. I've been doing it this way for years because my employers don't want to spend the money to get me an apprentice, much less pay for a development system and all that it entails.

C'est la vie. I rather enjoy it.

I have been using AI, read: ChatGPT, for almost as long as it's been around to help me with my coding. Being an old man, I didn't want to learn Groovy. I never learned Java and the whole thing sounded like a lot of work. As a result, I ask AI the same basic syntax and coding questions over and over until I learn by osmosis. I'm a perfectly adequate Groovy developer now.

I don't use AI to do system design. While not a real software professional, I have done enough large scale software design to see the picture of interdependencies in my mind's eye. I don't trust anyone or anything to modify it. An apprentice will change all that, after he gets a year or so of development under his belt.

As a result, AI works at the function level, within a class structure in Groovy. I use it all day every day by feeding it my source code and whatever error I might be seeing. I'd say it has at least doubled my output. Customers are getting features in half the time because of AI and because I don't ask it to do anything large scale that I don't understand, I maintain control over the design.

If I let it run wild and it made a mistake, I could end up with a database mass casualty event. Everyone's week would be ruined and my reputation irreparably harmed.

AI At Catican Bayou

At my river house in Alabama, my backhaul is Starlink. Mostly farm country, Baldwin County's fiber is sparse and data rates to the houses are DSL speeds. That's unsatisfactory for a VRBO. On rainy days, the guests will want to pacify their tiny tots with streamed episodes of Paw Patrol, particularly the ones where the puppy team cooperates with ICE agents and pepper sprays a pack of Democratic Socialists during a protest. A DSL connection would result in toddler tantrums and 1-star reviews.

A look at the river in Alabama as of the writing of this post.

Starlink does fine, giving me about 80-100 MBps throughput. I'm not anticipating hosting an OnlyFans site or downloading NOAA's complete data set, so 80 MBps is plenty. All I need is the ability to stream 1-3 videos simultaneously.

My internal network is a mesh system made up of 3 Netgear Orbi WiFi nodes. I use this at home and the mesh allows me much greater reach than a single WiFi router. I imagine I'm paying a throughput price for this, but it does the most important job, giving me a lot-sized footprint of good 802.11 coverage.

At the river, I installed a Raspberry Pi, affectionately known as Riverpi, to act as my controller. I added it to my small Tailscale network which includes my home Linux server, my laptop and desktop PCs and my phone. If you haven't heard of Tailscale, it allows you to create a VPN between remote systems. It's awesome.

Unlike my Jira installation at work, I allowed AI to write absolutely everything I needed on the Riverpi. I don't bother to read anything it writes. I think it's called vibe coding. I give it loose specs and then it treats me like a child and walks me through what needs to be done. When I encounter errors, I cut and paste the errors into my AI chat session and it works me through the necessary corrections.

As a result, with only a few hours of work, I now have a remotely accessible system that captures images from my ReoLink camera at the end of the boat house, serves up a page of weather data taken from some free Internet source, tells me the status of all the devices on my network by gathering information from my Orbi primary node and hosts a page telling me the status of the Riverpi.

At no time did I bother to understand what it was doing any deeper than absolutely necessary. I had AI walk me through setting up the Riverpi as a drive on my PC and laptop so I can access the files in /var/www/html from File Explorer. I open the sources in Dreamweaver and dutifully paste in whatever inscrutable nonsense AI gives me.

It might be good code. It might be a tangled mess. I don't know and haven't bothered to look. What it does is work.

Assessment

I would never, never do this at work. There is way too much riding on the success of that project. When customers find bugs, I can't trust anyone but myself to fix them. If the design ever got away from me, and right now, there are parts that are at the very limits of my ability to remember all I've done, I'd be cooked.

At the river house, who cares? If the thing blows up because AI told me to CTRL-A delete and I went along with it, I can just wait for my next visit, do a factory reset and start over.

From time to time, I ask AI to teach me this or that in Groovy and it always does a good job. Despite my best efforts, I'm learning the language and enjoying it.

I think that's the sweet spot for AI at work. Have it solve very small, bounded problems on a system you understand down to the nuts and bolts. Ask it to teach you small lessons you need to learn. 

Large-scale vibe coding is for hobby-level work only.

No comments: