< Blog roll

A bunch of ways AI won‘t make us more productive

Gif of the mission impossible movie scene where the main character almost touches the floor while suspended from a rope in the ceiling

Not all missions are possible, no matter what tools you use#

Spoiler alert, in the Mission Impossible movie from the GIF above, they do actually complete the mission. But this is real life and real life doesn‘t work like it does in the movies. So I want to walk through a real example (just one of thousands) that illustrates why having AI, even at massively subsidized cost with practically unlimited token spend, does not at all mean that we can just ship anything we want to at any time.

TLDR: Writing the code was never the bottleneck and never will be.

It began with a problem#

I hope you have read enough of my articles to know that I‘m a frontend web dev by trade, passion, and preference. I get asked to “go full-stack” practically every team I‘m on and I always try to opt out. One of my major gripes with being a frontend developer is the lack of respect that frontend development and developers have across organizations. I find so many examples that reek of the pervasive and systemic mindset that frontend development is lesser than backend. Less worthy of consideration, less worthy of hiring actual talent, less worthy of promotion, etc. All of us frontend devs have doubtless seen teams building UI apps with not a single frontend dev on the team. Have we ever seen the opposite? A team of frontend devs labeled “fullstack” building APIs and setting up devops pipelines the best the can? Of course not. That would never happen. Backend development is the only “real” development. You have to hire experts to do the real coding. Frontend is different. Anyone can learn HTML, CSS, and JS in a few days and put up a UI. But that‘s another blog article for another day.

So with this familiar environment in mind, I found myself putting together a strategy presentation and wondering what were the web UI applications that my leadership cares about the most. So I asked for a list. No answer came. So I thought “Is there a list of web UI apps somewhere I could look at to see which ones fall under my leadership chain?”. So I went looking and could find no such list. That‘s a problem.

Problem: There is no list of web UI applications anywhere in the company

I took off my AI-hater hat and said to myself “I have AI and AI makes things free, lets build one.”

Breaking down the problem#

I decided that the list I wanted would basically be two main data points and some proprietary metadata to go along with it. If I was going to use a list of web UI apps, here is what I thought I would need to know:

Maybe after I collected the data I could throw a UI on top of it so you could do some searching and clicking to see what these UIs looked like. My ultimate goal was to see what kinds of UI components these apps were dependent on so being able to click a link and see if you can see anything would be great.

I started with two questions:

How to tell if a repo is/has a UI#

I am admittedly an AI hater, but I genuinely think that the first question is a good one to throw at an AI. So if you are keeping score, put a tick in the AI column for this one. I think if you had a codebase you could throw an AI bot at it and ask whether or not it has or is a UI, and you would probably get back a decent answer enough of the time. And to be fair to the clankers, there are actually a lot of reasons that trying to figure this out without AI might be really hard. You could try checking for certain files like .html and .css files somewhere in it, but that doesn‘t necessarily mean that the repo is or has an actual UI. You could use GitHub‘s search feature and try to narrow down to languages like Javascript or Typescript, but you still wouldn‘t get an accurate representation. There are too many ways that UIs can be built. Too many languages, too many file types, and too many dist folders that aren‘t checked into source control.

So I reluctantly decided that if I had the code, I could ask a bot if it was a UI or not and have to trust the answer it gave me.

How to connect the repo with the URL the UI is hosted at?#

Turns out this is a heckin‘ hard problem, even with AI. I did a quick search of UI repos that I know of, and almost none of them put the actual URLs to their hosted environments anywhere in the repo. There were hardly any links in READMEs, repo descriptions, wiki pages, or CICD config files. That‘s probably because in addition to there being about a trillion ways to create a web UI, there are equally as many ways to deploy them. Our company undoubtedly uses them all. But let me see if we can figure out a solution later on.

AI can‘t make Github‘s rate limits any higher#

Sure, it will help me write a script that makes the requests. But that is where AI stops helping. My company‘s Github Cloud org has over 60,000 repos in it. Github‘s API rate limit for authenticated requests is 5,000 requests per hour. If I did get AI to help me write a script that downloads all the repos, it would take 30 hours. Oh I know, I could make a GitHub App. Authenticated, non-installed GitHub apps get 15,000 requests per hour, so if I made a GitHub App, I could get my script to run in a little over 4 hours.

AI won‘t make my company approve my GitHub app#

I filled out our little internal company form to register a new GitHub app. It‘s been waiting for approval all week. No status change on the Jira ticket yet. Will the internal team managing GitHub approve my justification for the GitHub app at all? Will my reasoning of “I want to download all the repos in the org to check for UIs. I will use AI even, I swear.” going to be enough for the corporate powers that be to let me have 10,000 extra requests per hour? Only time will tell, but I asked Claude to do it and it didn‘t change anything.

AI won‘t make my hard drive any bigger#

So let‘s assume I do get approved and I can crawl GitHub for 4.5 hours no problem. In order to ask AI if the repo I‘m checking has a UI I have to DOWNLOAD it. I have to grab the tarball or clone the repo to check all the files. That is another extra request to Github, so we go back 2 steps to ”AI can‘t make GitHub‘s rate limits not be limiting”. Listing the repo and download the tarball of that repo are separate requests. I‘d have to run them in separate tasks, or sequentially which would take a bunch more requests and time. And then once I have the code, there are 60,000+ repos. Will that even fit on my hard drive? Do I want to use another request to check the size of the repos before I download them so I can calculate whether or not I‘d have enough storage to even do it on my local? Or, better yet, I could put the code somewhere that isn‘t my local machine maybe?

AI won‘t let me create infrastructure just because I want to#

Sure, I don‘t have to download the repo itself, I could upload it to an AWS S3 bucket or something. But try creating AWS infrastructure at a big company. You can’t just do it, there‘s forms to fill out, accountable executives to notify and register on your bucket, there are tags to complete and automated scanners to satisfy. Oh yeah, and even if I manage to get all that stuff approved for a side project that I‘m not even sure is possible to build at all, there‘s the simple problem of the fact that I’d be creating a temporary mirror of GitHub. How long do you think I‘d get to keep my bucket? That would get flagged in a heartbeat for its size, and its contents.

But for the sake of seeing this through, let‘s pretend that I could somehow get all 60,000 repos and check em. Great, I‘d have a list of repos that have UIs in them and it would be time to try to connect them to the URls they go to.

AI won‘t consolidate all the places UIs are hosted#

The only way I could think of to get at URLs where UIs might be hosted if I can‘t depend on the URLs being in the repo somewhere is to turn to our internal API for creating CNAMES. For the sake of keeping going, let‘s assume that I can get a list of every custom CNAME that folks have created. AI would definitely help me curl all of them and check to see if I get text/html responses back. But there are still problems. We also have a variety of publishing mechanisms, and at least one that I know of allows publishing to a subfolder of a CNAME. That tool is external to the CNAME API, so my vide-coded curl script would be missing all the UIs that are deployed to subpaths off any CNAME that was listed. Also, the CNAME API only works for internal CNAMES, so I would be missing any UIs hosted on external domains as well. As far as I know there is no list of all the external domains my company uses, so my UI list would be incomplete.

So at this point my problem-solving thought journey I decided that it probably wasn‘t going to be possible to purely programmatically both determine if a repo was a UI AND link it to the URL where that UI is hosted. I decided that the most fool-proof way to get a list of UI would be for the owners of the repo to somehow designate the answers to my main two questions. Check a checkbox somewhere saying ”My repo has a UI in it” and fill out a text box with the URL the repo goes to. For the sake of this post we add however keeping those fields updated and accurate would work to the ”let‘s just ignore that for the sake of this article” pile.

So I need owners of all repos to fill out some information about them.

AI won‘t make other people do anything#

Can I make repo owners fill out anything on ALL the repos in the company? LOL. Can it make repo owners add a new metadata file just for me? Can it make all the repo owners in the company even AWARE of my desire to have them do this? At a company of any appreciable size, the answers to questions like this are of course laughable.

Could the owners of all our pipeline tools maybe do it? Sure, but my Claude bot won‘t help with that. I couldn‘t just send a random PR to the pipeline steps with a few lines in it that say ”break any build that doesn‘t register if the repo is a UI or doesn‘t have the URL registered.”

AI won‘t make other teams merge a PR#

My Claude instance has nothing to do with getting other teams onboard with my ideas. Would they even entertain any kind of change that would immediately break every build in the company? Would my AI usage have anything to do with that?

Oh and I almost forgot the very first thing that AI won’t help with. It should have been at the top of the list, but here we are.

AI won‘t help my managers realize that it would be worth my time and effort to create my idea#

All the tokens in the world aren‘t going to change the fact that your manager probably still wants you mostly working on the goals laid out by your leadership and not whatever hair-brained side quest project you dreamed up while trying to get data points for a strategy deck. CEOs can stand up on stages and say stuff like ”AI is poised to explode the possibilities of what we can do!” but I would bet that your organization is still driven by OKRs. If AI makes us able to do anything, why do we all still have OKRs? Why do we still only have 4 or 5 of them for any given {period of time}? If AI truly enables us to do anything we need and want to, why would we limit ourselves by starting off in January saying ”OK gang, here are the 4 things we‘re going to get done this year.”. And if you aren‘t actively delivering on those goals, good luck selling that you should spend some time on your side project. Claude won‘t build it all for you, you‘ll have to actually go talk to people and get them to merge your PRs and such and that takes time and Claude won‘t help.

AI does not suddenly make every idea possible#

All of the above reasons are enough on their own to surmise why AI will not make a lot of devs very much more productive. At least not in the way the hype train sells it. We here on social media that with AI, we can “build anything we want!”. Well, I wanted to build a list of all the UIs at the company, and AI cannot make that idea possible to build. It can‘t go back in time when all of the systems were designed and reach into the brains of those product owners, devs, and executives to say ”UIs are important, we should build in some classification to this tool so that we can know what kind of repos we have and where they land when deployed.” At the end of the day I came to the conclusion that is is simply not possible to build a list of UIs of any appreciable size with any decent sort of accuracy with the tools I have available to me. AI would have only helped me write the code if writing the code did any good.

But even if you changed my idea in this article to something that was more theoretically possible, AI still won‘t help with all of the things I mentioned. The bigger the company, the more bottlenecks there will be that have nothing to do with how well the latest token prediction machine I have installed can write a loop in a script.

Aside: Is it actually possible to build a list of UIs at a large company? Would love to know how you‘d do it. I‘m stumped.

The End