Not to put too fine a point on it, but I would be very skeptical about using NASA as a good example for much of anything, but especially software development.<p>My bonifides: I'm 49; have spent roughly 25 years as a systems programmer, systems administrator, and general bit wrangler; and I worked for 8 years at the Marshall Space Flight Center, specifically the NASA Enterprise Application Competency Center.[1] (And yes, that's a thing. Started as IFMP (Integrated(?) Financial Management(?) Program), and was IEMP (Integrated(?) Enterprise Management(?) Program) when I started.) If you're a NASA employee, you might recognize STaRs (I worked on the rewrite, post Perl 1 and Monster.com), NPROP/Equipment, or DSPL/Disposal. And IdMAX, which I noped out of shortly after moving to the project.[2]<p>* NASA itself is a massively disfunctional organization, in my experience, and a failure to "cut through the bullshit" is a major reason why. For software development specifically, while I didn't do anything with "man-rated" development or the other important bits, I have strong doubts that they are any better than other avionics, automotive, or other embedded development organizations.<p>* There was no mentoring. People tried, it didn't go over well, usually with the mentees.<p>* You have to trust each other's potential, because there is no damn chance of getting any two projects to agree on anything. What goes on in that other silo is their business, no yours.<p>* I did say, "I don't understand." A lot. Frequently pronounced "WTF?"<p>* The list of "unreliable sources of knowledge" looks rather like a checklist of how things got done.<p>[1] NEACC is also the acronym for the North-East Alabama Community College, which I find ironic for no good reason.<p>[2] Unfortunately, I don't have a picture of me looking arrogant. Sorry.