|
|
|
|
|
by vlovich123
1907 days ago
|
|
I don't know, but some of the people I consider to be really good software developers seem to reference "The Pragmatic Programmer" (perhaps even more than I realize do since I never read the book but have heard of "rubber duck debugging" & "DRY"). Generally, good software would have to be first defined and there's no universal definition. In most projects, I require it to have the following properties:
* New developers find it easy to ramp up on
* A handle on the defect rate (usually through adoption of best-practices like unit tests, fuzzers, automated tools, CI/CD, reproducible builds, etc).
* "Fires" infrequently enough relative to team size that it's manageable to accomplish your business goals.
* No "surprises" in adding new features/fix bugs where you didn't expect them.
* Meets business requirements today & can meet them tomorrow. However, in other cases, like prototyping, "good software" means, "explores the problem space as quickly & cheaply as possible without worrying about any of those other things". Some of those other things can be useful in accomplishing this, especially if you plan to pivot from prototyping to the above definition. If you don't use them effectively then throw away your prototype before productionizing & start from scratch. |
|