4 ms·
The highest quality software I ever worked on was waterfall all the way, and by God, was it high quality. The requirements were hammered out in brutal detail b
by EliRivers 5y ago
The highest quality software I ever worked on was waterfall all the way, and by God, was it high quality.
The requirements were hammered out in brutal detail by an experienced specialist. Each requirement agreed with the customer, and then each requirement carefully worked into a design. Each requirement clearly linked with every part of the design that fulfilled it. The design reviewed and approved. The code written in literal style (using a variant of noweb), with discussion and commentary, and that noweb document compiling into the source code to be onwards compiled and also a beautiful document listing the full source code and the various commentaries and discussions of it (such that one understood the code not by looking at the code, but by reading the document, which was like a structured guided tour of the code, and to look at the actual code was to see a one-to-one relationship with the documentation).
Each part of that document linked to a part of the design, and thus to the requirements. Tests had been written independently of the code, based on the design and the original requirements. Test documents were printed out, and an individual conducted every test on that document, writing down version numbers and so on, and writing down each results, circling PASS or FAIL, signing their name to it. Successful test documents were sealed in an envelope, with a date and signature, and put into storage against the customer requesting to see one (which happened every so often).
The original requirements could, years later, be followed through the design, through the code, through the tests; the whole chain verified on demand.
The software I worked on was developed over most of a decade (I was only there about four years), with a delivery a couple of times a year. The customer never once reported a bug. Every requirement was met. Other contractors had their part taken away from them and given to us, and when it was finished they took it and asked us if we could start working on the next generation product of the same.
I have never before or since worked on such high quality software. It was only possible because we happened to have really high quality customers, who actually knew what they wanted and had the ability to say it and agree to it.
- foobarian 5y agoQuoth the Tao of Programming: 8.3 There was once a programmer who wrote software for personal computers. "Look at how well off I am here," he said to a mainframe programmer who came to visit. "I have my own operating system and file storage device. I do not have to share my resources with anyone. The software is self-consistent and easy-to-use. Why do you not quit your present job and join me here?" The mainframe programmer then began to describe his system to his friend, saying, "The mainframe sits like an ancient Sage meditating in the midst of the Data Center. Its disk drives lie end-to- end like a great ocean of machinery. The software is as multifaceted as a diamond, and as convoluted as a primeval jungle. The programs, each unique, move through the system like a swift-flowing river. That is why I am happy where I am." The personal computer programmer, upon hearing this, fell silent. But the two programmers remained friends until the end of their days.
- chiefalchemist 5y ago> It was only possible because we happened to have really high quality customers, who actually knew what they wanted and had the ability to say it and agree to it. If only that were the rule. It's not. It's a rarest of rare exception. As it is, no one has time. If they miraculously clear that hurdle, they are either too scared to commit or quite frankly don't understand their business' needs and can't commit. Agile is simply a reaction to that cronic ambiguity.