1: Omit unnecessary words.
3: Seek simple solutions.
The great enemy of clear language is insincerity. – George Orwell, Politics and the English Language (1946)
Bertrand Russell makes some sage points in his 10 Rules of Critical Thinking (1951):
1 – Do not feel absolutely certain of anything.
2 – Do not think it worthwhile to proceed by concealing evidence, for the evidence is sure to come to light.
3 – Never try to discourage thinking, for you are sure to succeed.
4 – When you meet with opposition, endeavor to overcome it by argument and not by authority, for a victory dependent upon authority is unreal and illusory.
5 – Have no respect for the authority of others, for there are always contrary authorities to be found.
6 – Do not use power to suppress opinions you think pernicious, for if you do the opinions will suppress you.
7 – Do not fear to be eccentric in opinion, for every opinion now accepted was once eccentric.
8 – Find more pleasure in intelligent dissent than in passive agreement, for if you value intelligence as you should, the former implies a deeper agreement than the latter.
9 – Be scrupulously truthful even if the truth is inconvenient, for it is more inconvenient when you try to conceal it.
10 – Do not feel envious of the happiness of those who live in a fool’s paradise, for only a fool will think that it is happiness.
Google’s ‘Do no harm’ principle is now well known, but the full list offers some 21st century insights:
i. Be Part of the Solution, Never a Part of the Problem
Quite simply, it’s much easier to be critical than it is to be correct. If you can’t to help solve problems, then leave so quickly that there is nothing left but a you-shaped hole in the wall.
ii. First, Do No Harm
You have to treat each decision as if you are a physician: First, do no harm. Make sure that while you’re being part of the solution, you’re not causing other problems as a side-effect.
iii. It’s the People, not the Products
Intellectual Property and hard assets are nice, but talent is the most valuable part of your organization – and talent should be treated as such. Ten smart people in an empty room can do more and better than a hundred dumb people charged with the care of a great product.
iv. Align Utilities
To get the best from people, their utilities must be aligned with your own. Create win/win situations and you will win, win, win some more.
v. There are No Laurels
What you did yesterday doesn’t entitle you to bad office coffee: It’s what you are doing tomorrow that makes all difference to the team.
vi. Execution, Execution, Execution
The road to hell is paved with pretty PowerPoint slides. You have to be honest in your ability to execute on a strategy, and then you have to execute on that strategy and then execute some more.
vii. Remove Obstacles
A manager is there to remove obstacles to execution: Let other people run with the ball while you block for them.
viii. You’ll Have to get Blood on Your Hands
If an obstacle to organizational execution is a member of the organization, you’re going to have to get blood on your hands – you’re going to have to remove or reposition that person, even if doing so causes immediate pain.
ix. One-on-One Gets it Done
The best way to make a decision is to poll individuals in one-on-one conversations – where individuals are more likely to give you the straight beef. Speak to as many people as is possible, synthesize, and react.
x. Do the Due
Preparation, preparation, preparation – do your due diligence. Know what you’re talking about: If you’ve been asked for a meeting concerning a topic about which you know nothing, it’s time to hit the books like the books owe you money.
xi. C.Y.A. Saves the Day
Always cover your ass – know who your attackers will be and what weapons they will use against you. Have your shields ready. My favorite corollary to this is the evidentiary hearing: Never make one complaint. If you are going to complain about something, be ready to lay down a stack of evidence supporting your concerns.
xii. Mea Culpa
The three sweetest words in the English language are not, “I love you,” but, “it’s my fault”. If you’ve screwed things up, you have to bite the bullet, bite it in half.
In The Cathedral and the Bazaar (1999) Eric S. Raymond identifies 19 attributes associated with good practice in (open source) software development. They have wider value.
- Every good work of software starts by scratching a developer’s personal itch.
- Good programmers know what to write. Great ones know what to rewrite (and reuse).
- Plan to throw one [version] away; you will, anyhow.
- If you have the right attitude, interesting problems will find you.
- When you lose interest in a program, your last duty to it is to hand it off to a competent successor.
- Treating your users as co-developers is your least-hassle route to rapid code improvement and effective debugging.
- Release early. Release often. And listen to your customers.
- Given a large enough beta-tester and co-developer base, almost every problem will be characterized quickly and the fix obvious to someone.
- Smart data structures and dumb code works a lot better than the other way around.
- If you treat your beta-testers as if they’re your most valuable resource, they will respond by becoming your most valuable resource.
- The next best thing to having good ideas is recognizing good ideas from your users. Sometimes the latter is better.
- Often, the most striking and innovative solutions come from realizing that your concept of the problem was wrong.
- Perfection (in design) is achieved not when there is nothing more to add, but rather when there is nothing more to take away. (Attributed to Antoine de Saint-Exupéry.)
- Any tool should be useful in the expected way, but a truly great tool lends itself to uses you never expected.
- When writing gateway software of any kind, take pains to disturb the data stream as little as possible – and never throw away information unless the recipient forces you to!
- When your language is nowhere near Turing-complete, syntactic sugar can be your friend.
- A security system is only as secure as its secret. Beware of pseudo-secrets.
- To solve an interesting problem, start by finding a problem that is interesting to you.
- Provided the development coordinator has a communications medium at least as good as the Internet, and knows how to lead without coercion, many heads are inevitably better than one.