Software mental models

2026-06-06

The code is not the only product

The code is not the only product of a software engineer, the mental model is also a product. This is why so much time has been spent on the different development models in software, agile, tdd, ddd, oop, functional etc. These are the ways we understand software, communicate what it is doing, and help the people who use it get the results they need.

The AI is not always great at architecture or planning and may not be able to translate the code into business or end-user terms. This is what the job of a software engineer is, and always has been. The code was a means of encoding the business into the machine, and that is still the same.

It is often the case that a business ends up being reflected in it's software and data structures. Many businesses run with a database or database provider that shows all their information, and the operations of that business then fit into that database or they modify the database to fit their desired operations.

In a software organization the developers hold the mental model of the software and can explain it to their users and stakeholders to determine if it is performing as needed. If they do not have the mental model of the software but have given that over to an AI, then does anyone really knows what the software is doing? At some level a human is responsible for the operation of the software. If you have an AI or compiler or parser producing the software, then whomever is operating those tools are software developers. The value is the communication and verification you can provide to customers, stakeholders, executives, managers and peers. That is generally who you are making software for. Often you won't use the software yourself since it is not your job function.

The software is usually built to make a task less costly, provide more revenue, or produce more productivity.

Got an idea? Let's Talk

Get in touch