Discussion about this post

User's avatar
Mr Sir's avatar

I gotta really disagree with this one. If you're just casually generating some code for some minor work and otherwise have no interest in software development, then this can work, but actual software developers MUST understand the code, and very thoroughly at that.

For them, letting AI write code is not a license to stop understanding it. If they don't understand the code, then they can't understand what the AI is actually doing. They lose visibility into the logic, the ability to catch bugs, verify correctness, audit behavior, assess security (very huge importance), optimize performance, and maintain the system when something breaks or changes. In addition, there will very quickly be huge conflict with the other developers in the team, as everyone is expected to be competent at their chosen profession. AI must be subject to human review, as otherwise unnoticed problems can lead to serious issues.

The specs point too. In any serious software dev project, writing out the specs is only one small part of the overall project. The specs don't address important things like architecture, which requires crucially important decisions, with awareness of protocols, algorithms, methodologies, and integrations.

Software dev lifecycle:

- Intent (Why the software exists. The purpose, problem, goal, or desired outcome)

- Features / Requirements / Specs (What the software must do, capabilities, obligations, constraints, and behavioral conditions)

- Architecture (How the system is structurally organized at a high level: major components, boundaries, responsibilities, data flow, interfaces, and system shape)

- Design (How specific parts are planned in more detail within that architecture: component logic, module behavior, detailed flows, structures, and technical decisions)

- Implementation (The actual building of the software: Writing/generating code, wiring systems together, turning plans into executable behavior)

- Test (Checking if it works: Validation of every feature, bug finding, edge cases, integration checks, QA)

- Stage (Making sure it keeps working: testing by using for its intended purpose)

- Deploy (Running software in its real target environment: Releasing it into production)

- Maintain (Fixes and improvements: fixing bugs, new features, adapting to changing conditions, improving performance, handling regressions, security exploits/vulnerabilities)

- End of life (Retiring the software: ending support, shutting it down or replacing it, migrating users and data, and decommissioning it)

The good thing is that AI can teach all that.

EM's avatar

Interesting... a practical question - if something isnt working quite right with whatever the code is creating e.g. one element on a webpage - for example a form, do you need to ask it to recreate the whole webpage, or can you ask it to fix just that element (does it rebuild the whole thing from scratch every time?)

8 more comments...

No posts

Ready for more?