There is never enough time to do it right the first time; however, time becomes available to do it a second time.
Never do more than you have to.
Elegant software is simple software.
Everyone thinks they are more competent than they really are.
Computers do not work overtime without being paid for it, only people do.
All things even out over the long run.
Containment is the purest form of software design.
Life is not fair.
Most people are overpaid.
All proposals underestimate the magnitude of the job.
The shelf life of a program is inversely proportional to the lines of code contained in it.
White papers are often used to rationalize failure to comply with specifications.
Generation and submission of software design specifications does not always indicate that a software design has been accomplished.
Cubicals are not conducive to high productivity.
Most people’s productivity is inversely proportional to the size of their desk.
Intelligent terminals aren’t.
Never trust a person that carries more than five pens/pencils in their shirt pocket.
Overhead is overhead only when it adversely affects throughput and delay.
Most organizations have a sufficient number of workers; however, most of the work is accomplished by a small subset of these workers.
System requirement documents should be interpreted literally; one should never offer more than required.
In seeking the unattainable, simplicity only gets in the way.
The inevitable result of improved and enlarged communications between different levels in a hierarchy is a vastly increased area of misunderstanding.
The Chronology of Projects:
· Uncritical acceptance
· Wild enthusiasm
· Dejected disillusionment
· Total confusion
· Search for the guilty
· Punishment of the innocent
· Promotion of nonparticipants.
The more things change, the more they stay the same (also known as the protocol server design rule).
here are three kinds of people – those who do the work, those who watch those who do the work, and those who wonder what’s going on.
The past is the problem; the future is the solution.
If they want it bad, they get it bad.
A prerequisite for membership on a “Tiger Team” is the ability use the word “synchronicity” in your white paper and believe that you haven’t lost your
credibility with those you are criticizing.
If you want it done right, get three other people to do it for you and pretend you have everything under control.
Some people are writers, some people are scribes.
Never file anything where you can find it in a reasonable amount of time.
When attempting to shift the blame to “them,” always remember that “they” are doing the same thing to you.
When biting the bullet, be intelligent enough to bite the lead rather than the brass.
Time and money are the great equalizers.
Structure is related to a person’s production rate. If a person produces at a rate that is higher than the norm, then others perceive him as proceeding in
an “unstructured manner.”
One has to make a living somehow.
There is a reason for having Functional Design Specifications and Detailed Design Specifications; however, there are some who fail to grasp the not so
subtle differences between the two.
The presence of structure charts does not necessarily imply a structured design, or for that matter, a rational or workable design.
Everyone knows how software design should be done and how the design should be presented; unfortunately, very few people actually know how to accomplish the “trivial” part of the job, i.e., implementing the design and ultimately making the system work.
Asses would rather have straw than gold.
When you are at the end of your rope, it is important that your feet are on the ground.
Nobody assures the quality of the Quality Assurance Team.
Experts are those who read the book a day before the non- experts do.
Everyone can tell you what you are doing wrong; however, no one ever volunteers to do it for you the right way.
If you think someone is doing it the “wrong way,” you can always do it the “right way” provided you are willing to take the responsibility for your
If you have a problem, do not attempt to solve it by telling other people that it is their problem.
Donkey work should be done by Jackasses, not people.
The “Three Hour Job” has evolved to the point where it is in the critical path three months later.
In order to conduct a “Structured Walkthrough” for your peers, you must first have some idea who your peers are.
If an interface is not documented in an interface control document, it is not an interface.
One person’s quality is another person’s garbage.
A project is a lot like a tree – you can tell its age by counting the number of bureaucracy levels.
The key to success is to delegate responsibility. If you can’t delegate down, delegate up. Even sideways seems to work.
There are two well-known design approaches that are not usually documented in the Software Engineering literature; however, they are often used in
practice. One is the “Design by Intimidation” approach; the other is the “Design by Anarchy” approach.
When in doubt, march to the drumbeat of the person who signs your timecard.
Never get into an argument about religion, flow control, or accountability.
Precedence networks are valuable tools only to those managers that do not have to update them.
Role ambiguity prevents one from controlling his own destiny; however, it can be used to one’s advantage in certain situations.
People who state that “It Won’t Work” often mean that either they do not understand, do not want to take the time to understand, think it won’t work well, or that they would not do it that way.
To judge all people by their degree of technical expertise is a fallacy.
People who are paranoid about being labeled a fool often do foolish things in an attempt to prevent it.
One can interpret the phrase “we let this thing get out of hand” as a compliment when the customer says it.
In the old days, 500 lines of code typically had one page of supporting documentation. The state of the art has progressed to the point where 500 lines
of code requires 100 pages of supporting documentation. In the old days, no one could understand the code because of the lack of documentation. Now everyone can understand the code but no one can understand the documentation.
The “first design” is often the “best design;” however, by the time this is realized, the “worst design” is done to the point that it must be “the design.”
One often wonders how we develop software without first having a software development plan.
Computer Scientists are the Alchemists of the 20th Century.
When you know it is horse manure, you don’t have to wallow in it to attest to its quality.
When everybody loves you, you don’t stand for anything.
When in doubt, recursive plagiarism is many times the best approach.
People who write Firm Fixed Price proposals containing “high risk” factors seldom have to deal with the risk once the proposal is won.
Smart is when you believe only half of what you hear; brilliant is when you know the right half.
If you can’t meet the criteria, abolish the criteria.
Those who make history do not have time to write it.
Everyone is a victim of one’s own history.
When you have too much work at hand, stop complaining and start putting your hand to work.
The personal computer revolution has the potential to raise productivity to new heights; it may eventually become possible to wring 20 hours of productive work per week out of the average worker.
When in doubt, abstract.
When time seems to be passing you by, there is more to catching up than trading in your self-winding watch for one with a battery and an LCD display.
When you’re out to be a lion, you don’t get there by pussyfooting around.
Only Jackasses are consistent.
Experience is a wonderful school; however, the tuition is too high for most people.
If you can’t say it in 25 words or less, most people tend not to believe you.
Don’t worry about those who fog the issue; however, watch out for those who issue the fog.
One does not have to have a computer system to possess artificial intelligence.
When the going gets tough, stop going.
When the dust clears, you will see whether you are riding a horse or an ass.
If a picture is worth a thousand words, why must a thousand words be written to explain each picture?
The only constant in life is disappointment.
There are two kinds of people in the world: those who divide everyone into two groups and those who don’t.
There is room at the top for those who would fly.
Never become too good at what you do unless you want to do it the rest of your working days.
When you work with someone who insists on doing everything himself let him do it; otherwise, everything will get done at least twice.
Some people are managers; others are leaders.
Blind ass luck triumphs over skill and knowledge every time.
Bureaucracies are like sewage — the big clumps rise to the top.
Its not brilliance that impresses most people, its bulk.
Life is like a dogsled team — if you aren’t the lead dog, the scenery never changes.
Arrogance and competence are not synonyms.
“You Guys” is an inappropriate choice of words when pointing your finger at “One Guy” in particular.
Nobody’s perfect, but some are more imperfect than others.
Foolish consistency is the hobgoblin of little minds. (R.W. Emerson)
When some project finally does succeed, all the credit will go to the wrong person.
Its not the quality of your BS that counts, its the depth of it.
If you do someone a favor, it becomes your job.
Anything is possible if you don’t know what you are talking about.
For every action, there is an equal and opposite criticism.
When we try to pick out anything by itself, we find it connected to the entire universe.
History does not repeat itself, historians merely repeat each other.
A closed mouth gathers no feet.
No matter where you go, there you are.
When the going gets tough, everyone leaves.
Never attribute to malice that which is adequately explained by stupidity.
For those who believe, no explanation is necessary; for those who don’t, no explanation will suffice.
Never do between 8:30 AM and 5:30 PM that which you can do by working until 3:00 AM.
If you don’t want someone’s opinion, don’t bother to ask for it.
Everyone has an opinion, all of which are equally bad.
Every time you make your mark, someone erases it.
Some people strive to simplify the complex; others strive to stamp out simplification wherever it exists.
Those who speak the least say the most.
If you never ask the question, chances are you will never hear the answer.
Some people are consistently right 95% of the time — of course the missing 5% is always that needed to really solve the problem.
We often hear the phrase “they should not have done it that way.” This does not relieve us of the responsibility for interfacing to things done “their way.”
If you know how to use a “Breakout Box,” chances are you are either grossly overpaid or grossly underpaid.
Relational databases are wonderful — they allow people to obscure the obvious.
Everyone would like to be the boss — until they become the boss.
Some people do not succeed at all; no person succeeds all the time.
If you don’t have any enemies, you don’t have any character.
Make sure you are ahead on points when the time runs out.
It is much easier to criticize than create.
If it isn’t documented with the written word and the date of origin, the
only rational approach is to treat it as hearsay and/or folklore.
Those who are perfect impede the progress of those who are not.
We spend too much time chasing perfection.
Those who are obsessed with knowing everything always depend on those who do not know everything to survive.
Trivial technical issues always consume more time and money than non-trivial technical issues.
Never do it right the first time — it consumes too much time and money to convince everybody it is right; therefore, it may as well be wrong.
If God had wanted all conductors in RS-232C cables to be the same color, he would have made all engineers color-blind.
Its not easy to make friends when you are competent.
You can only beat a drum so long before the drumstick breaks.
The nail that sticks up shall be hammered down.
The Boss who attempts to impress employees with his knowledge of intricate detail has lost sight of his final objective.
The cream rises to the top – so does the scum.
A complex system that works is invariably found to have evolved from a simple system that works.
A complex system designed from scratch never works and cannot be patched up to make it work. You have to start over, beginning with a simple working system.
Everyone has a place in life – if you have no other skills, you can always assume the role of the “bad example” for everyone else to criticize.
“I must do something” solves more problems than “something must be done.”
Some are part of the problem — some are part of the solution.
Genius has bounds, stupidity has none.
Most organizations have too many heads and not enough brains.
Before eating the elephant one bite at a time, one must first get it out of
the oven and onto the plate.
Normal people aren’t.
If you want anything done, don’t do it yourself.
Never say “Whoa” in a mudhole.
Beware when the “expert” doesn’t understand what the hell you are talking
Ten percent of the job is doing it; the other 90 percent is justifying what you did to people who don’t understand what you did but need to know enough to take the credit for getting the job done.
One way to fix the blame is to “blame the fixer.”
If you have never made a mistake, then you have never done anything of significance.
If the job was easy the customer would do it himself.
Its not what you do, its what people think you do.
Some people keep track of everything, some people keep track of nothing – both kinds are typically useless.
The guys responsible for doing the work also own the problems.
Don’t piss down my neck and tell me its raining. (from the movie The Outlaw Josie Wales)
Telling half of the truth is many times worse than telling a lie.
BS walks, money talks.
The obvious never is at the right time.
Transition planning is by definition the task of those who know the least
about both the present and future systems.
Never have so few been led by so many.
Never ask the people who designed the system how it works; they may give you an answer both you and the customer don’t want to hear.
Work Breakdown Structures are always proven inadequate the first week they are used.
Those who talk must also realize that there are those who must listen.
The best way to fix the blame is to blame the fixers.
If no one understands what you are saying, quit saying it and write it down in clear and lucid English – almost no one will admit to not knowing how to
Tell me what to do before its due, else I’ll tell you what I’ve done when I’m through.
Almost everyone on a project claims to know how the system works; however, almost no one knows how to fix it when it breaks.
If you don’t manage change, change will manage you.
If you are into being abused, volunteer to coordinate office moves.
Those who have the “gimmees” are pawns of those who choose to be “givers.”
There are many ways to achieve your end objective — one way to guarantee you won’t is to alienate those who directly (or indirectly) control your
Its hard to be humble when you think you aren’t.
If builders built like programmers program, the first woodpecker would have destroyed civilization.
If it works, don’t fix it.
If it doesn’t work, get somebody else to fix it.
If somebody else can’t fix it, ignore the fact that it is broken.
Losing it is easier than doing it.
If you intend to shoot yourself, aim for the foot, not the head.
Blaming everybody else does not imply you are perfect.
If you are too busy to do your job, you are probably incompetent.
When in doubt, blame engineering.
Denouncing those who disagree with you is one way to cover your incompetence.
Organization Charts and Work Breakdown Structures are similar; neither actually reflects reality.
Let he who casts the first stone make sure it is big enough to do the job it was meant to do — if it isn’t, the resulting avalanche may destroy him.
Always remember that the “Man Who Would Be King” ended up losing his head. (courtesy R. Kipling)
If you need a friend, buy a dog (Gordon Gekko,character in the movie Wall Street).
On every project, there is at least one person who manages to alienate, at one time or the other, all other people working on the project.
Never say you’ve seen or heard everything until you go through your in-box each day.
You can’t listen when your mouth is open.
There’s nothing wrong with biting the hand which is not feeding you.
Nice guys never finish anything; they are too busy worrying about who they will offend.
Buzz words have come a long way. In the old days it was called a Lay-Off; then it became known as a Staff Reduction; now it is called an Organizational Optimization.
What the Hell; It works, doesn’t it?
What a difference a day makes.
When the going gets weird, the weird get going.
Lunch is for Wimps.(Gordon Gekko, character in the movie Wall Street)
When you don’t know who you work for, you better look for another job.
There comes a time on all projects when “Re-Engineering” turns into “De-Engineering.”
At some point in time on every large project, most problems have been encountered and resolved at least one time; however, upon reoccurrence of these same problems, they are viewed as new problems. Hence, as a project matures, the time and money expended to resolve a particular problem increases rather than decreases.
Fortunately, the rate at which the same problems occur decreases as the project matures.
In the game of life, batteries are not included.
Unless you want an organization staffed with mediocre employees, you are going to have to accept some people whose behavior is a little outside the norm.
When its time for the Live Test Demo, rehearsals walk and competence talks.
When theory and practice do not match, more often than not, neither the theoreticians nor practitioners know the correct answer.
Those who are on the edge of panic always advise those who remain rational to not panic.
If you have never been involved in “Renting a Pig,” then you don’t understand the significance of the phrase “We Don’t Rent Pigs Here.”
Something is wrong when everybody except the client panics when the Live Test Demo Director forgets a password.
When you are trying to make something actually work, those who have no idea how to make it work are glad to offer their considered opinion on why it doesn’t
There are two kinds of people present at all Live Test Demos: those who fix problems and those who take credit for fixing problems. They are never the same people.
No project is ever completed on time, within budget, and with the same staff that started it.
Projects progress quickly until they become 90 percent complete; then they remain 90 percent complete.
One advantage of fuzzy design objectives is that they let you avoid the embarrassment of estimating the corresponding costs.
When things are going well, something will go wrong.
When things just can’t get any worse, they will.
When things appear to be going well, you have overlooked something.
If customer commitments are allowed to change freely, the rate of change
will exceed the rate of progress.
No system is ever completely debugged; attempts to debug a system inevitably introduce new bugs that are even harder to find.
A carelessly planned project will take three times longer to complete than expected; a carefully planned project will take only twice as long.
Project teams detest progress reporting because it vividly manifests their lack of progress.
Failure to make a decision is much worse than making the wrong decision.
You can’t make a 1024-byte silk purse out of eight 128-byte sow’s ears.
Technical illiteracy is much more forgivable than technical stupidity.
If the customer doesn’t state it as a requirement in the RFP, don’t invent it for the proposal.
In addition to the Proposal Manager and Technical Director, every proposal effort requires a “Cosmetologist” to make it presentable to the public.
If you advertise yourself as a Fireman, you better have enough water to put out the Fire.
BS has the same mathematical properties as the number 1; that is, BS raised to any power is still BS.
Real experts are those people who realize that they don’t know everything.