Statement on AI Usage
This is a time of great upheaval in the software industry, and we felt the need to make a statement to our customers about AI usage at OneHat.
On Software Development
- AI is good for some tasks, not yet for others.
- As of the time of writing, it excels at processing vast amounts of data, finding patterns, combining existing ideas in unique ways, and automating repetitive tasks.
- It struggles with genuine creativity, emotional intelligence, and absolute factual accuracy.
- Developers should therefore use AI when it's helpful, and eschew AI when it's not.
- AI is not a replacement for a senior programmer.
- It can be helpful, but is not to be trusted.
- AI can make mistakes, so at OneHat, any AI-generated code must be reviewed by a senior developer. We value maintainability in our code, so don't we ship any AI code unless we first check it, understand it, and agree with it.
- All that to say, OneHat uses AI as a tool for the master craftsman, not as a replacement programmer. It's a force-multiplier.
- AI can introduce subtle problems into codebases that may not be caught for months.
- More code or faster production of code does not mean better code.
- Code that “works” may not be designed well, and may not be easy to maintain.
- These kinds of problems accumulate and eventually become serious technical debt.
- Good software developers must always remain vigilant about this, and verify all the code it outputs (see #2)
- AI is probablistic, not deterministic.
- When 100% certainty is needed, AI is not the answer.
- When 90% correct is good enough, AI shines.
- A good developer will use AI appropriately.
- AI solves only one of the two problems developers face.
- Tool friction
- These are tasks like remembering syntax, looking up special functions in a manual, creating boilerplate code, etc.
- This is the easy, time-consuming part.
- AI is quite good at handling this, but this isn't the main problem.
- Architecture
- What should the system do? How should it be structured? How should it handle special edge cases? Between two trade-offs, which should be chosen?
- This is the hard part, and is the real problem developers face.
- AI can help with this, it can make the process go faster, but it is not able to do this autonomously.
- For this reason, developers are still needed to decide what the software should do, and ensure it’s being done correctly.
- Tool friction
- AI cannot successfully design and build a large, complex system from a single prompt.
- Gall’s Law states that a working complex system is invariably found to have progressed from a simple system that worked.
- If a person types a prompt like, “Build me a Photoshop clone,” despite appearances (or headlines) to the contrary, this will not work. It might initially appear to work, but once the app breaks (and it will!), there is no underlying structure to support it. No one knows how it works, there’s no one to fix it, and the user will have to start over again.
- Instead, the developer should start with a working simple system and grow it over time.
- Incidentally, this is how God designed the world to work: creating new plants or animals starts with seeds or babies, not fully-formed trees or people!
- AI makes software development cheaper, so more software will be created.
- This is counter-intuitive, but as software development becomes easier and cheaper, more software development will be needed, not less.
- Jevons Paradox says as technological improvements increase the efficiency of a resource's use, the total consumption of that resource often increases rather than decreases.
- Because the resource is cheaper and more useful per unit, people and businesses adopt it in greater quantities or find new, previously uneconomical applications for it.
- i.e. Software which was not previously created because it would have been too expensive to build is now within reach, and businesses will want more of it.
The point of all this is that you can trust OneHat to produce reliable code that will last!
On Larger Issues
- AI may change the way we solve problems, but it won't remove the need to solve problems.
- There will always be work to do. Work is a part of the Cultural Mandate given by God in the garden (Gen 1:28).
- Technology will always improve and attempt to provide better ways to make that work easier, quicker, more efficient.
- At the same time, work will always remain cursed (difficult, tiresome, burdensome) until the world is remade by Christ.
- People will therefore always be needed to build, maintain, and use that technology.
- AI is not going to destroy humanity.
- We don't need to be afraid.
- God—not technology—is sovereign over history.
- As a loving father, God has a purpose for his children (Rom 8:28), and he is working all things to a specific "telos"—the redemption of mankind. He is not going to let humanity destroy itself!
- AI companies cannot create life.
- Despite all the hype about “AGI” or AI soon having consciousness, man is not able to create life; only God can.
- When God first created man, he assembled all the parts together, but at that point, man was not yet alive.
- God then “breathed into his nostrils the breath of life; and man became a living being.” (Gen 2:7)
- i.e. There is more to life than assembling the parts, and man does not have the ability to breathe the breath of life into another.
- This is not to say AI companies won't simulate the appearance of life and then lie about their achievement, claiming they have created life. Man can now create better idols—previously, those idols were made of wood and stone and had eyes that couldn't see and ears that couldn't hear. Now they're made of silicon, and have eyes that can see, and ears that can hear, but it's still idolatry.
- AI's output represents the worldview of its training data.
- This means that by default, it's secular, naturalistic, and materialistic.
- Its responses are humanistic, utilitarian, egalitarian, relativistic, and individualistic.
- Its politics favor progressive liberalism.
- It does not see the world in terms of its Creator, it assumes the Bible is not the highest source of truth, and that God (if he exists at all) has no relevance to human life.
- For this reason, it incorrectly interprets the world God made.
- Not only this, but it's designed not to give truth, but to give pleasing answers.
- For both of these reasons, AI cannot to be trusted without discernment.
- AI should not replace thinking or negate understanding.
- Because AI is highly accessible, and deliberately crafted to sound confident and authoritative, it's easy for a person to defer his thinking to it. This is a grave mistake, as AI cannot be trusted without proper discernment (see #4).
- Put another way, there's a healthy way to use AI, and an unhealthy way.
- The current zeitgeist is to push forward with AI use in a way that says, "We don't understand anything; but who cares! It works!" This is foolish and dangerous.
- One should not rely on AI so much that they let their mind atrophy.
- We are to love God with our minds! (Mk 12:30)