Comment A few more key ideas (Score 1) 598
1. 99.999% of end users/customers do not understand software design documents and never will understand software design documents. So we must prototype rapidly into existence so we can get useful feedback early and often directly from the people that will use the tools we build is important.
2. I rarely optimize for performance. But when I do, I always measure first, record the results, and after each change, measure again. Use a stop-watch, a routine you build yourself, or a fancy-pants Profiler that tells you how much time each line of code took, but never ever optimize without measuring.
3. Software Engineers/Programmers are usually religious fanatics when it comes to languages and tools. Almost any problem can be solved in almost any language. If you're on a project with someone who loves Java, they'll write better code in Java. This idea extends to OS choices. If someone loves the Mac OS, their programs written on the Mac OS will be much better than anything that programmer would ever write on Windows or Linux. 4.
2. I rarely optimize for performance. But when I do, I always measure first, record the results, and after each change, measure again. Use a stop-watch, a routine you build yourself, or a fancy-pants Profiler that tells you how much time each line of code took, but never ever optimize without measuring.
3. Software Engineers/Programmers are usually religious fanatics when it comes to languages and tools. Almost any problem can be solved in almost any language. If you're on a project with someone who loves Java, they'll write better code in Java. This idea extends to OS choices. If someone loves the Mac OS, their programs written on the Mac OS will be much better than anything that programmer would ever write on Windows or Linux. 4.