(no title)
RevEng | 21 hours ago
If you give an AI a very general prompt to make an app that does X, it could build that in any imaginable way. Someone who doesn't know how these things are done wouldn't understand what way was chosen and the trade-offs involved. If they don't even look at the code, they have no idea how it works at all. This is dangerous because they are entirely dependant on the AI to make good decisions and to make any changes in the future.
Someone who practices engineering by researching, considering their options, planning and designing, and creating a specification, leaves nothing up to chance. When the prompt is detailed, the outcome is constrained to the engineer's intent. If they then review the work by seeing that it wrote what they had in mind, they know that it worked and they know that the system design matches their own design. They know how it works because they designed it and they can modify that design. They can and have read the code so they can modify it without the help of the AI.
If you know what code you want generated, reviewing it is easy - just look and see if it's what you expected. If you didn't think ahead about what the code would look like, reviewing is hard because you have to start by figuring out what the codebase even does.
This goes the same for working in small iterations rather than prompting am entire application into existence. We all know how difficult it is to review large changes and why we prefer small changes. Those same rules apply for iterations regardless of whether it was written by a person or an AI.
AI code generation can be helpful if the engineer continues acting as an engineer. It's only when someone who isn't an engineer or when an engineer abdicates their responsibilities to the AI that we end up with an unmaintainable mess. It's no different than amateurs writing scripts and spreadsheets without a full understanding of the implications of their implementation. Good software comes from good engineering, not just generating code; the code is merely the language by which we express our ideas.
No comments yet.