Wes Pomeroy

The Software You Were Never Supposed to Build

Every company has the same graveyard of internal tools. The Confluence wiki that's three years out of date and everyone knows it. The Jira board that got set up by someone who left and now nobody fully understands the workflow. The SharePoint site that technically contains the information you need but good luck finding it. The approval process that lives in email because the actual tool never quite fit how the team worked. The resource management system that's always either six months behind or requires someone to manually update it every week.

The problem isn't that those tools are bad. Most of them are serious software. The problem is implementation and maintenance. Standing them up properly requires expertise most companies don't have internally, so it gets handed to a consultant or a professional services team who brings the technical skills but not the context - they've never attended your team meetings, they don't know which process is actually the important one, they're building from a brief. And once it's live, nobody budgets for the ongoing optimization work. The tool gets stood up, handed off, and then slowly drifts away from how the team actually works until the workarounds become the workflow.

It Wasn't a Cost Problem - It Wasn't Even on the Menu

The conventional explanation for why internal tools are always the roughest part of a company's software landscape is that development resources go where the ROI is clearest, and customer-facing systems win that fight every time. That's true as far as it goes, but it misses something.

The deeper issue is that building custom software for internal problems wasn't really a category of thing organizations considered. It wasn't that the cost-benefit didn't pencil out. It was that the option wasn't on the table. You bought a tool and configured it. You used what IT could build in the time they had. You worked around the rest.

When you look at the class of problems this is actually about - building and maintaining a team wiki that reflects how your team actually thinks, parsing and surfacing knowledge buried in documents and emails, creating lightweight workflow tools tailored to your exact process, building internal dashboards that pull from the data sources your team actually uses, automating the information-sharing and reporting work that someone does manually every week - those weren't custom software problems. They were "find the right off-the-shelf tool and adapt to it" problems, because the alternative required a developer and a development cycle and neither was available.

That framing has expired.

Why Custom Software Had a Reputation - and Why That's Changed

There's a reason "custom software" used to make enterprise teams nervous. The person who built it leaves and nobody else can read the code. It becomes a black box everyone's afraid to touch. It gets so deeply embedded that replacing it is worse than living with it. Dependencies rot. One wrong change breaks everything. That dread was earned.

AI changes the math on almost every one of those risks. Code that AI helped write can also be read, explained, and modified by AI - the bus-factor problem drops dramatically. Rebuilding from scratch is cheap enough that fragility matters less; you're not protecting a two-year investment anymore. The pool of people who can maintain something is larger than it used to be. The person building is often also the person using it, so the context doesn't get lost in a handoff. And the cost of iteration has fallen far enough that the old calculus - build once, maintain forever, pray - doesn't apply the same way.

Custom software still carries risk. It's just a different risk profile than it used to be.

What's Now Possible

AI tools can generate working software from a description of what you need. Not rough scaffolding that requires a developer to finish. Actual functioning applications - internal knowledge bases structured the way your team thinks, document parsing pipelines that extract and organize information from the files your organization already has, workflow tools built around your exact approval or review process, analysis and reporting interfaces that pull from your specific data and present it the way your team needs to see it, lightweight resource tracking built for your team's actual resource model.

The category of things that are now buildable by non-developers - quickly, cheaply, to spec - covers most of what's been wrong with internal tools for the last twenty years.

And the key shift isn't just cost. It's authorship.

When the person who lives the workflow builds the tool, the visibility problem that has always plagued internal software development disappears. IT building an internal wiki or a workflow tool has to infer how your team actually works from conversations and spec documents. The person who actually does the work every day doesn't have to infer anything. They know which fields matter and which ones don't, which edge cases break everything, which piece of tribal knowledge the tool needs to encode to actually be useful. That knowledge has always existed inside the team. For the first time, the person who holds it can act on it directly.

The Spectrum That Determines How You Build It

Custom software built for personal use - something you made for yourself, that only you depend on - can be rough. Iterate fast, learn what doesn't work, fix it. The cost of failure is low.

The moment other people depend on it, the calculus changes. A team knowledge base that five people rely on needs to actually be reliable. A workflow tool that twenty people use to route requests needs to handle edge cases they'll actually hit. A document parsing pipeline that feeds real decisions needs to produce outputs people can trust. The more people depending on something and the more consequential its outputs, the more the tool needs what tends to get skipped when moving fast: some form of specification, some testing, some thought about what happens when it breaks.

Complexity adds another dimension. AI-generated software built without enough understanding of what it's doing can fail silently - producing wrong answers that look like right answers, behaving correctly until the specific edge case it wasn't built to handle shows up. The people building internal tools well right now mostly have some technical background, not because they're writing code by hand, but because they know what to watch for. When the AI starts going in a direction that doesn't make sense, they catch it. Where that skill floor sits for people without that background is still being worked out. The tools are advancing fast but that gap won't close evenly, or without support.

The Infrastructure Layer

Everyone doing serious internal development needs a place to put things.

Own a web server. A private server your team controls - not a hosted platform with someone else's pricing model and deployment constraints, but actual infrastructure that belongs to your team and runs on your terms. A knowledge base needs somewhere to live. A workflow tool needs to be accessible. A reporting dashboard needs to render somewhere. The publishing layer is what makes the building real - without it, what you're making lives nowhere.

Beyond the server, there's scaffolding that extends how far non-technical builders can go: tools that let you pull from email, Slack, or your document library without understanding the underlying APIs; lightweight deployment patterns for getting things where they need to go; basic operational knowledge for keeping things running when something falls over. These capabilities aren't complicated individually, but they're not obvious either. The difference between someone who builds useful internal tools and someone who hits a wall on the first practical problem is often just a handful of things nobody taught them.

When It Needs to Graduate

The handoff signal is recognizable. The tool has gotten complex enough that it's hard to reason about clearly. Enough people depend on it that a failure isn't a personal inconvenience, it's a team problem. It touches data or processes where wrong outputs have real consequences. Maintenance is consuming more time than the tool saves.

At that point it needs what internal tools have always eventually needed when they matter enough: a real developer, a product manager, a QA process, someone to own it properly. That's not a failure of the approach - that's the tool having grown into something worth investing in. The goal was never to build enterprise software without engineers. It was to close the gap on everything that was never worth a development ticket - and to do it with the people who actually know what it should do.

Where We Are

The lines - how complex is too complex for a solo builder, how many users trigger a new tier of rigor, what the skill floor actually looks like in practice - are still being worked out. Anyone claiming a settled framework here is guessing. The tools are too new and moving too fast.

But the problems aren't new. The wiki that's always out of date. The workflow that lives in email because nothing else fit. The knowledge buried in documents that nobody can find. The report someone assembles manually every week because nothing pulls it together automatically. These have been problems for a long time. For the first time, the people closest to them have the tools to solve them.

More on this topic

All 9 pieces on this topic →

Wes Pomeroy helps businesses and people get more out of AI. Consulting · Contact · LinkedIn

Contact

wes@wespomeroy.com

LinkedIn