A Quote by David Parnas

Find the simplest model that is not a lie is the key to better software design. — © David Parnas
Find the simplest model that is not a lie is the key to better software design.
A rational model of software is to design it quickly - the economic pressure to improvise presents an interesting challenge.
With software products, it is usual to find that the software has major `bugs' and does not work reliably for some users... The lay public, familiar with only a few incidents of software failure, may regard them as exceptions caused by exceptionally inept programmers. Those of us who are software professionals know better; the most competent programmers in the world cannot avoid such problems.
There's a fundamental problem with how the software business does things. We're asking people who are masters of hard-edged technology to design the soft, human side of software as well. As a result, they make products that are really cool - if you happen to be a software engineer.
When you develop software, the people who write the software, the developers are the key group but the testers also play an absolutely critical role. They're the ones who ah, write thousands and thousands of examples and make sure that it's going to work on all the different computers and printers and the different amounts of memory or networks that the software'11 be used in. That's a very hard job.
I'm not of the opinion that all software will be open source software. There is certain software that fits a niche that is only useful to a particular company or person: for example, the software immediately behind a web site's user interface. But the vast majority of software is actually pretty generic.
Japan is a model already to the lie that economic growth is the key to our future. If they can really show an alternative to nukes and fossil fuels, then they will be the poster boy for the renewable energy for the future.
The essence of a software entity is a construct of interlocking concepts. I believe the hard part of building software to be the specification, design, and testing of this conceptual construct, not the labor of representing it and testing the fidelity of the representation.
Design is the key to everything. If you learn how to design you can do anything.
The best design is the simplest one that works.
In the simplest sentence, I photograph to find out what something will look like photographed. Basically, that's why I photograph, in the simplest language. That's the beginning of it and then we get to play the games.
Children do not find it difficult or complicated to talk to their parents, nor do they feel embarrassed to bring the simplest need to their attention. Neither should we hesitate to bring the simplest requests confidently to the Father.
The key to industrial leadership is technology and design; of the two, technology is quantifiable and design is not. Technological improvements might make your product worth another $20. If you design something beautiful, what is that worth? It's worth whatever people will pay for it.
On a strategic level, employers really are behaving stupidly. Look at how they do recruiting: this automated process under which they will publish a job description chock full of so-called "key words", and then have software algorithms that attempt to match applicants to the resumes against those key words. So where in the key word collection do we capture institutional knowledge? No one advertises for that. Of course they don't.
Testing by itself does not improve software quality. Test results are an indicator of quality, but in and of themselves, they don't improve it. Trying to improve software quality by increasing the amount of testing is like trying to lose weight by weighing yourself more often. What you eat before you step onto the scale determines how much you will weigh, and the software development techniques you use determine how many errors testing will find. If you want to lose weight, don't buy a new scale; change your diet. If you want to improve your software, don't test more; develop better.
Good design is innovative 2. Good design makes a product useful 3. Good design is aesthetic 4. Good design makes a product understandable 5. Good design is unobtrusive 6. Good design is honest 7. Good design is long-lasting 8. Good design is thorough, down to the last detail 9. Good design is environmentally friendly 10. Good design is as little design as possible
There is no one "root of all evil" in software development. Design is hard in many ways. People tend to underestimate the intellectual and practical difficulties involved in building a significant system involving software. It is not and will not be reduced to a simple mechanical "assembly line" process. Creativity, engineering principles, and evolutionary change are needed to create a satisfactory large system.
This site uses cookies to ensure you get the best experience. More info...
Got it!