Skip to content

Instantly share code, notes, and snippets.

@devnull255
Created January 10, 2021 01:49
Show Gist options
  • Save devnull255/87e7658092b3d3eaa92bc73de0664526 to your computer and use it in GitHub Desktop.
Save devnull255/87e7658092b3d3eaa92bc73de0664526 to your computer and use it in GitHub Desktop.
Print random line in a file, looping until interrupted
Engineering is done with numbers Analysis without numbers is only an opinion
To design a spacecraft right takes an infinite amount of effort This is why it's a good idea to design them to operate when some things are wrong
Design is an iterative process The necessary number of iterations is one more than the number you have currently done This is true at any point in time
Your best design efforts will inevitably wind up being useless in the final design Learn to live with the disappointment
(Miller's Law) Three points determine a curve
(Mar's Law) Everything is linear if plotted log-log with a fat magic marker
At the start of any design effort, the person who most wants to be team leader is least likely to be capable of it
In nature, the optimum is almost always in the middle somewhere Distrust assertions that the optimum is at an extreme point
Not having all the information you need is never a satisfactory excuse for not starting the analysis
When in doubt, estimate In an emergency, guess But be sure to go back and clean up the mess when the real numbers come along
Sometimes, the fastest way to get to the end is to throw everything out and start over
There is never a single right solution There are always multiple wrong ones, though
Design is based on requirements There's no justification for designing something one bit "better" than the requirements dictate
(Edison's Law) "Better" is the enemy of "good"
(Shea's Law) The ability to improve a design occurs primarily at the interfaces This is also the prime location for screwing it up
The previous people who did a similar analysis did not have a direct pipeline to the wisdom of the ages There is therefore no reason to believe their analysis over yours There is especially no reason to present their analysis as yours
The fact that an analysis appears in print has no relationship to the likelihood of its being correct
Past experience is excellent for providing a reality check Too much reality can doom an otherwise worthwhile design, though
The odds are greatly against you being immensely smarter than everyone else in the field If your analysis says your terminal velocity is twice the speed of light, you may have invented warp drive, but the chances are a lot better that you've screwed up
A bad design with a good presentation is doomed eventually A good design with a bad presentation is doomed immediately
(Larrabee's Law) Half of everything you hear in a classroom is crap Education is figuring out which half is which
When in doubt, document (Documentation requirements will reach a maximum shortly after the termination of a program)
The schedule you develop will seem like a complete work of fiction up until the time your customer fires you for not meeting it
It's called a "Work Breakdown Structure" because the Work remaining will grow until you have a Breakdown, unless you enforce some Structure on it
(Bowden's Law) Following a testing failure, it's always possible to refine the analysis to show that you really had negative margins all along
(Montemerlo's Law) Don't do nuthin' dumb
(Varsi's Law) Schedules only move in one direction
(Ranger's Law) There ain't no such thing as a free launch
(von Tiesenhausen's Law of Program Management) To get an accurate estimate of final program requirements, multiply the initial time estimates by pi, and slide the decimal point on the cost estimates one place to the right
(von Tiesenhausen's Law of Engineering Design) If you want to have a maximum effect on the design of a new engineering system, learn to draw Engineers always wind up designing the vehicle to look like the initial artist's concept
(Mo's Law of Evolutionary Development) You can't get to the moon by climbing successively taller trees
(Atkin's Law of Demonstrations) When the hardware is working perfectly, the really important visitors don't show up
(Patton's Law of Program Planning) A good plan violently executed now is better than a perfect plan next week
(Roosevelt's Law of Task Planning) Do what you can, where you are, with what you have
(de Saint-Exupery's Law of Design) A designer knows that they have achieved perfection not when there is nothing left to add, but when there is nothing left to take away
Any run-of-the-mill engineer can design something which is elegant A good engineer designs systems to be efficient A great engineer designs them to be effective
(Henshaw's Law) One key to success in a mission is establishing clear lines of blame
Capabilities drive requirements, regardless of what the systems engineering textbooks say
Any exploration program which "just happens" to include a new launch vehicle is, de facto, a launch vehicle program
(alternate formulation) The three keys to keeping a new human space program affordable and on schedule: 1) No new launch vehicles 2) No new launch vehicles 3) Whatever you do, don't develop any new launch vehicles
(McBryan's Law) You can't make it better until you make it work
There's never enough time to do it right, but somehow, there's always enough time to do it over
If there's not a flight program, there's no money
If there is a flight program, there's no time
You really understand something the third time you see it (or the first time you teach it)
Space is a completely unforgiving environment If you screw up the engineering, somebody dies (and there's no partial credit because most of the analysis was right)
#!/usr/bin/ruby
# laws file below adapted from https://spacecraft.ssl.umd.edu/akins_laws.html
# This file is stored in $HOME/bin
# laws file stored in $HOME/etc
laws_fn = ENV['HOME'] + '/etc/laws'
lines = File.readlines(laws_fn).shuffle
begin
while true do
lines.each do |line|
puts line
sleep 2
end
#puts "reshuffling..."
lines.shuffle!
end
rescue Interrupt
puts
puts "Thank you for reading Akin's Spacecraft Design Laws"
exit 0
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment