Some highlights:<p>"Software Crisis" has existed for 40 years. Basically, software is hard to make, and insecure. The "crisis" is not reported anymore -- it's obvious.<p>Software is malleable, which is its power and curse. He posits that "Software is the most complicated stuff that humans make." Because software is malleable, there are no good metrics for software completeness or quality. In software, legacy is a pejorative term, it means "the crap we did before we knew any better."<p>-- The actually typing of code is only a few % of our time. However, we <i>think</i> we spend our time typing. Too much effort goes into optimizing this small percentage. Think of IDEs with autocomplete. [Though features that help you read code are probably worth it.]<p>One important concept in software development today is incremental development. But also dangerous, you can build yourself into a corner. Architecture is important.<p>Security oriented programming is good programming. Security requires code simplicity.