4 ms·
A lot of problems in software stem from earlier on in the process than the testing and validation phase. They happen at the writing and design phase. So your ch
by rbongers 8y ago
A lot of problems in software stem from earlier on in the process than the testing and validation phase. They happen at the writing and design phase. So your checklist not only has to contain "check for buffer overflow by checking for a standardized pattern," it also has to have points like "make sure the code is maintainable" so the programmer won't introduce a stealthy memory allocation that won't get freed in the first place.
Of course, it's not so simple. How do you actually quantify maintainable software? Just for that one point, you could write an entire book. When you introduce other points, the process of writing quality software becomes exponentially more complex, with different aspects of well-structured designs overlapping, balancing with each other, and sometimes contradicting each other.
To bring it back to the original illustration, even if you have a flight checklist, it's not going to matter if your plane was poorly made in the garage of some beginner aviation hobbyist out of scrap metal. If your program is made of spaghetti code and poor abstractions, you're going to be working on that testing checklist for a long time.
I do agree that checklists are helpful and that more standardization would help, but we also need more quality training and certification, arguably more so. We need great aircraft designers, not just pilots.