Good In, Good Out - Good engineering is still important
Like many other software engineers, I’ve also began to use AI in my day to day work. Let me be the first to admit how easy it is to become lazy when using these tools.
Initially, they were not very good. So you’d get that temptation, then it would quickly make some dumb code change, and then you’d take back control. But, as they get better and better at validating and testing their work, that temptation starts to creep back.
But here’s the thing, good coders, still make dumb engineering decisions sometimes. Claude code is a great coder, but it’s not necessarily a good engineer for your company. Here’s what I mean:
Take a skilled engineer from Amazon, and move them to Microsoft. Give them no context or knowledge about that domain, give them one app, and then ask them to start implementing features. This would be a recipe for disaster. They would probably assume things are getting deployed to AWS instead of Azure and make other really silly assumptions. They’ll break conventions that have been established at Microsoft over years of engineering. They may even unknowingly overwhelm a downstream system by “fixing” some throughput bug.
This example fails a bit because a “skilled engineer” would probably do more research to understand the context in which their system exists before pushing any code. But that’s also kind of my point. Claude-code needs you to understand a problem fully, define scope, identify limitations and much more. It then needs you to convey that information clearly. You still need to be a good engineer! You need to use the tool to make you better. Use the plan feature, review the plans thoroughly, and perform a code review of any changes BEFORE you commit. Question things you don’t fully understand. Don’t just ask Claude, find the documentation and validate it yourself. And for the love of God, test the code!
And the better you are at that, the better your input into the model, the better it will be at accomplishing what you need it to do.
Good in, good out.
Everything about software engineering good practices are still true. You should still enforce clean code, you should still prefer smaller PRs over large ones, you should still write good self-descriptive code. The AI is not responsible for that, you are. You are the engineer.
“Good in, Good out” means good engineers will use this tool and become unstoppable. Bad engineers will still introduce bugs and eventually loose the trust of their peers.
happy coding!