I wonder how many posters nowadays start out as cool random things people run across on the internet. The
20 Guiding Principles of Computing (now hanging in abridged format next to the
1cc printer) is one of them. Here's the short version, with my commentary - I do recommend going back to read the original link, though.
1. Brooks’ Law: Adding More Programmers to a Late Project will make it later.Usually, but not always. If you have a good project manager who's able to focus solely on handing compartmentalized, completely independent, non-vital (but still helpful - what Dave Barrett would call "#2's*") tasks to enthusiastic volunteers, you may be able to make your project
not get later. In fact, you might hit on some really good helpers and get it done
earlier. This does sink the time of one of your good project managers, but it's the kind of time-sinking that needs to be done especially in open-source projects where programmers will
try to add themselves to a late project
anyway.
Nothing new here that folks like Mike Fletcher haven't already
pointed out. But yeah, if you're in a panic and think you need MORE MANPOWER NOW!!! you're wrong,
because you're in the wrong state of mind to utilize that (hu)manpower.
*How Dave describes the scope of
SCOPE projects to the Olin engineering seniors who tackle consulting problems for companies every year: #1's are mission critical, live or die problems for the company. We don't want those. #3's are problems nobody cares about; their solution won't matter to the company. We don't want those either. #2's are potentially cool/beneficial things that aren't
bad if they don't get solved - stuff on the "cool to do, but not spending our limited resources on right now" list. Those are what we want (as SCOPE projects). And these are the things we should be handing out to volunteers (on open-source projects).
2. Choose the Middle Way: bad ideas are just good ideas carried to extremes.Note: this doesn't mean always doing the mundane thing. There are 3 ways to make an extreme idea middling. The first is to cut down the extremity - do the mundane. But you can also cut the number of people involved; a small number of people with permission to run wild is called a
skunkworks and can have startling success for minimal risk. You can also cut the timescale - in fact, "everyone go nuts for an hour!" is usually called a "brainstorm" in corporate circles, and can be rather refreshing.
3. Conservation of Complexity: Simplicity is ComplicatedI wholeheartedly agree and will defer to
John Maeda on this one.
4. First law of logic: logic doesn't always work. Embrace Contradiction."The opposite of a Profound Truth is another Profound Truth." Years ago, I hated this quote. Now I've grown to love it. Mostly because of the next item on this list:
5. Gould’s Spandrel: Things are the Way They are because They got that Way.
Why? Because. Some things just are, without any plan or reason (or for a reason that's long since ceased to exist).
It's the kind of answer that's annoying when you
know there's an answer that they're just not telling you, but wonderful when you realize there really
isn't an answer, because you can loosen the furrowed brow of intellectual consternation and really just... wonder.
6. Hofstadter’s Law: It always takes longer than you expect, even when taking into account Hofstadter’s Law.This makes me think of two things: (1) Hofstadter's law is a strange loop, and (2) I wonder if Zen philosophies might be a good coping mechanism for folks with ADHD - we tend to have a hard time with this scheduling/planning stuff, so why not just live in the moment since we're only present in the present anyway?
7. Occam's Razor, a.k.a. K(eep) I(t) S(imple) S(illy/tupid).Yes, but remember - simplicity is complicated. See Dan Ward's
simplicity cycle.
8. Lubarsky’s Law of Cybernetic Entomology: There’s Always One More Bug.Also known as "stop being a perfectionist already" - or take the Linus Torvalds approach and get others to help (Linus’ Law: Given Enough Eyeballs, All Bugs Are Shallow).
9. There are Many Ways to the Mountaintop...so make up your own mind which you want to take. You know those product FAQs where you ask "which
will I like best, is best for me?" and they reply with the frustratingly circular "ultimately, it's about which is best for you - which one will you like best?"
Well, they're right.
Also, it's a lot easier to tell people the wrong routes up the mountaintop. Mostly because it's impossible to tell them the right ones. (You can, however, tell them the ones that have worked for you and many others - but it's no guarantee it'll work for them.)
10. Moore’s Law: Computing Power Doubles every 18 Months
And that's why I'm not worried the XO now costs $188. People, stop calling it the "$100 laptop" and fussing about how it's not. That name was just a catchy meme, plus there's this lovely thing called economics that talks about things like inflation and currency fluctuations and yada yada yada - basically, prices are to some extent arbitrary, and Moore's Law says whatever prices* are now, they're going to get cheaper later on anyway.
*for the majority of electronic devices in the medium-term foreseeable future. Obviously, this does not apply to things like signed memorabilia, stocks, or bottles of fine wine.
11. Murphy’s Law: Anything that can Go Wrong, Will.
And then there's O’Niel’s Law: “Murphy was an optimist.” Far from sending you into a sinking depression at the hopelessness of your project, this should instead inspire a joyous sense of fearlessness - things are going to go wrong! We don't know what they are and we're going to have to figure it out along the way - it's going to be an adventure!
12. No Silver Bullet
Along the lines of there being many ways to the mountain and blah blah blah - there's no one-size-fits-all solution to your problems. Yeah, stuff is hard, but just think for yourself and have fun, and you'll probably be all right.
13. Pareto Principle: The 80/20 Rule
80% of your gains comes from 20% of your expenditures (and vice versa).
But remember Joel Spolsky’s Caveat: Although 80% of people use only 20% of the features. “Unfortunately, it’s never the same 20 percent. Everybody uses a DIFFERENT set of features.”
Does that mean you should leave everything at 100% expenditure anyway? No. It means there's no silver bullet for deciding which 80% to cut. You'll have to make up your own mind.
14. Parkinson’s Law: Work Expands to Fill the Time AllottedFortunately, this is true - for as many have pointed out, the natural corollary to this is that Work Is Compressible. Witness Ben Fisher's impressive
half-hour hacks, and his prelude to such:
This blog is the result of a paradox. I am more productive when under constraints. A busy schedule keeps me driven to do more with my time. I live my life on the run. If you had all the resources you wanted, and any amount of time or money available for a project, realistically, you would spend years creating a bloated, over-complicated application, possibly never even finishing.
And then look at the kind of stuff he's been able to pull off in 30 minutes - yes, Ben is amazing (I think our first conversation alternated between Ben typing on his laptop and me saying "oh my
god!" every 15 seconds or so) but he also understands that his mad skillz are occasionally better in concentrated form.
15. Patrick's Population Principle: Individuals are Individual.You can view communities as a super-organism, or a bunch of Individuals, or as a Swarm.
We all belong to groups, but we are not the groups we belong to.
16. Shapiro’s Observation: Technology Changes. Economic Laws do not.This has also been expressed as the Law of Disruption: “Social systems change incrementally, technology exponentially.” Also see David Shenk’s Second Law of Data Smog: “Silicon circuits evolve much more quickly than human genes.”
And this is why it's so important for engineers to understand the people they're making things for, why sometimes the best solution is not a technological one, and why education is one of the most powerful technologies (in the sense of tools-able-to-change-things) ever created*.
*This is not necessarily a good thing. John Holt has some choice words on why the power of an education
system is dangerous and potentially harmful to learning.
17. Slingerland’s Law of Fools: No System’s Foolproof, because there’s Always a Bigger FoolBasically, Murphy's Law applied to users. Yes, there's plenty of repetition in this 20-item list, but they all sound so snappy and good! (Although if I practiced Pareto, I should slash this list to 4 "fundamental" principles and be done with it.)
18. There is No Such Thing as a Free Lunch...but you can finagle things so that you're doing work you enjoy in order to pay for yours.
19. Everything is Connected to Everything ElseCulture + New Technology YIELDS New Culture
And
this is the reason I am going to study education and sociology before going to graduate school for electrical engineering.
20. Veblen’s Principle: All changes help some people and hurt others.
Personally, I would have ended on a more inspiring note. But yes, no free lunch. This doesn't mean life is a zero-sum game, though; the magnitude of the hurt may be more or less than the magnitude of the help (depending on what scale you're using - there's no absolute rating for "goodness").
The good you do may end up having not-so-good consequences you should watch for, and try to alleviate and understand, and ultimately accept. It's part of the job of trying to do good. You can only ever do good to some
people, and from a certain point of view.
Again, you get to decide. Which is a terrifying - and liberating - charge to have.