Submission + - owards an LLM-Enhanced Software Development Process: LLMs and Requirements (jesande.com)
bucketman writes: Fred Brooks, in his foundational essay, "No Silver Bullet," argues that "there is no single development, in either technology or management technique, which by itself promises even one order of magnitude improvement within a decade in productivity, in reliability, in simplicity." He divides the work of software development into the "essence," which are the irreducible aspects of finding out what the need is and building something to address it, and the "accident," which is everything else — including coding, version control systems, project management, testing and nearly everything else involved in the profession. He makes his case that no order of magnitude improvement awaits us through any single development change based on his observation that the accidental work of software development has already been improved considerably and so, even if all the accidental work were to suddenly be reduced to zero, the essential work of software development would be so relatively large that an order of magnitude improvement would be impossible.
With the advent of LLM systems and their introduction to software development process, I wonder if this is still true. Admittedly, while the state of the art centers on copying and pasting code from LLM chat browser sessions into the IDE (as in ChatGPT) or working within the IDE using comments to suggest to the LLM what code is needed and precisely where to put it (as in Copilot), it is hard to see how an order of magnitude improvement could be had. I'll touch on this again a little later on but this post will start to illuminate how revolutionary their introduction might be once we consider their use throughout the software development process.
This post considers neither "copy and paste prompt engineering" nor this latter model of leading the LLM by the nose to make localized edits to existing code. Rather we'll look at an aspect of software engineering — requirements development — and define an example process for accomplishing that work and then use it as a basis for demonstrating that LLMs can be put to use in software engineering more broadly than the narrow focus on coding.
With the advent of LLM systems and their introduction to software development process, I wonder if this is still true. Admittedly, while the state of the art centers on copying and pasting code from LLM chat browser sessions into the IDE (as in ChatGPT) or working within the IDE using comments to suggest to the LLM what code is needed and precisely where to put it (as in Copilot), it is hard to see how an order of magnitude improvement could be had. I'll touch on this again a little later on but this post will start to illuminate how revolutionary their introduction might be once we consider their use throughout the software development process.
This post considers neither "copy and paste prompt engineering" nor this latter model of leading the LLM by the nose to make localized edits to existing code. Rather we'll look at an aspect of software engineering — requirements development — and define an example process for accomplishing that work and then use it as a basis for demonstrating that LLMs can be put to use in software engineering more broadly than the narrow focus on coding.