“As a rule software systems do not work well until they have been used, and have failed repeatedly, in real applications. Generally, many uses and many failures are required before a product is considered reliable. Software products, including those that have become relatively reliable, behave like other products of evolution-like processes; they often fail, even years after they were built, when the operating conditions change.”
— David Parnas et al

https://dl.acm.org/doi/pdf/10.1145/78973.78974

@RuthMalan @Di4na Parnas is under appreciated. All his work deserves a read, from his proposal of splitting interface from implementation to his denunciation of Reagan’s Star Works project “how exactly are you going to test this?”

I don’t think you could consider you a software engineer without doing so. maybe I should use that an interview question “you say you are a software engineer-which of Parnas’s papers do you consider to have most influenced your work?”

@stevel @RuthMalan @Di4na

I grokked Information Hiding from Parnas. Modular programming was just good organization, but information hiding made Objects possible.

@stevel @RuthMalan on the other hand, nearly noone teach the history of software. Like ffs, we still have not internalised Liskov' abstracts data types.

Even Liskov herself did not, as shown in her work later in her career.

So... I get why you like the question (and there is a lot I dislike with Parnas approach and ideas) but. You cannot really use it. Too gatekeepy in this environment.