Blogging Roller

Dave Johnson on open web technologies, social software and software development

Full circle: AI is the computer

One way to get perspective on AI in software development or programming, as we still call it, is to start with a discussion of the media of programming. The medium matters because it affects how we record instructions, share them and check the results. My mom studied computer science and graduated from the UNC master’s program, but before that she worked as a computer and later as a programmer at Southern New England Telephone.

I say she was a computer because that was her title and her job. She would sit in a room of desks, each with an adding machine and she and her fellow computers would work together to each compute part of a large math problem.

The humans were running the program back then, and the program was natural language: step-by-step instructions, in English, explaining what calculations to do and references to ledgers with the data to use. The medium was paper and writing.

The media of early programming

When she was writing the program for electronic computers, programs were stored on "punch cards." A program is a list of commands for a computer and each command or "line" of a program was stored on a card. Mom would type her program into a set of cards, take that stack of cards to the computing center and ask them to run it. Hours later she would get a stack of print-outs with the results that her program generated.

Programming can be a solo endeavor, but to develop large systems, like the software that flies a rocket, drives a car or shares cat videos with billions, you need a team of developers all collaborating on one program. That is not easy with physical cards.

What is modern software made of

A modern program may be spread across many files, written in programming languages like Java or Python.

Those files might be processed by a program known as a "compiler" into a runnable form that can then be run on your computer or phone. The software might also run on a web server so that users can access it via Chrome or their favorite web browser.

Source code control

A team of developers needs a way to share changes to its files. Even then, what if two people change the same file at the same time and cause a conflict?

To solve this, developers use "source code control" systems that store every file and for each file, every previous version and a record of who edited the file. It's possible to find the person responsible (or to blame) for each line of code in a program.

Git is a widely used source code control system. GitHub hosts Git repositories and works like a social network for software developers. Developers can propose changes to each other’s code and discuss those changes before they are accepted.

Planning and change management

To plan out software development, whether that means planning for a whole new application or just some changes to an application, there is a series of planning documents:

  • Product requirements documents: usually written by people who understand the business, what customers want and how to design products.
  • Visual design systems: created by visual designers who know how to design intuitive and easy to use user-interfaces and experiences.
  • Software design documents: written by developers, this explains how the product requirements will be implemented, all the technology decisions.

Once there are designs, the development work can be broken down into tasks and those tasks are tracked in an "issue management" system, where each task or "ticket" can be assigned to a developer to be implemented.

Organizational communications channels

Software projects exist inside organizations, where teams use chat systems like Slack or Teams, shared document repositories and internal wikis to discuss work and record decisions.

How does AI fit into software development?

In my work so far, AI has changed how the work gets done, but the basic responsibilities remain: decide what to build, build it and check that it works. AI helps people write, review and maintain development documents, some of which I mentioned before:

  • Requirements documents
  • Software design documents
  • Visual designs
  • The actual program source code
  • End-user documentation

What is especially powerful is that you can also ask AI to run a scheduled task every day to scan the Slack channels, SharePoint documents and other systems it has access to for any mention of your project and then suggest which of your documents need to be updated, with links to the relevant discussions and decisions. Those documents used to go stale over time and AI can help fix that problem.

This process still depends on human review and testing. But as AI takes on more of the implementation, developers may spend more time defining what should happen and checking whether it does.

Why ask AI to write a program?

In some ways we have come full circle from humans telling human computers what to do in natural language. Now we are using natural language to tell electronic computers what to do. If we have a computing task, we could ask AI to do that task, but AI is non-deterministic. It can give different answers to the same question and it can "hallucinate."

For calculations and repeatable tasks, we can ask AI to write a program that records the method used to produce the answer. We can then review the program, test it against known results and run it ourselves. Software is a way for us to check AI.

Dave Johnson in General • 🕒 06:50PM Oct 14, 2026
Tags: ai code llms
Comments:

Post a Comment:
  • HTML Syntax: NOT allowed