I’m a fan of a few short sayings which appear to hold some truth. I believe when using them as a guide, along with a hint of scientific method, it is possible to do almost anything well.
As a computer programmer I have used this method most on software development, but also see application in ANY endevour. I see all life as software and as such have tested it in other areas with some success. I will take a few detours, discussing as briefly as I can, the SDLC and CMM as a justification of why this method works.
I will state my assumptions here:
- complexity is the enemy
- all software contain errors
- in all labour there is profit
- the scientific method works
- it will take you four times longer to complete (your project) than you can afford (an may cost four times more as well)
- If you have two choices, take both.
Now I get right to the point and state Gibson’s method, which has three easy to follow steps (in keeping with the spirit of assumption 1. above):
Gibson’s method (in three easy steps)
- do it once (or just do it)
- do it again
- do it as good as everyone else
- do it better than everyone else
- don’t miss any of the steps (and preferrable do them in the above order)
To see how and why this works I will explain as simply as I can.
Step 1 explained: do it once
As you can see there is always a chance you will succeede on the first attempt. If you are lucky you can stop there. You should never underestimate the simplicity of this. If complexity is the enemy and you can use luck to your advantage, take the quick wins where you can because on average it WILL take four times longer than you can afford.
Step 2 explained: do it again
As you can see from assumption 2. which is obviously true, because there is an error in Gibson’s method itself (yet is can still deliver on the promise of success). There are actually 5 steps and not three in Gibsons three step method. Again helping to drive home the fact that you will (on average) need to expend more time than you first expected.
By doing something more than once, you will most likely do it slightly differently and this may offer insight in to what variations may exist. You can then judge for yourself which is better and remove the error next time. I call this “descrimination”, not in the sense it is most often used to alienate but in the purest sense of determining “good” from “bad”. If you always go in the right direction,, no matter how small the steps you will never get into the situation where you are going one step forwards and two steps back. This is one of the keys to the success of this method. If you get closer and closer to your goal, half way and half again in every step, even if you can never reach the ultimate goal you will be getting ever closer.
Step 3: do it as good as everyone else
By this time you in most likelyhood are doing as well as anyone else who has done it whatever task it is you are doing between 3 and 3 million times. Some people may never go beyond step 3.
Step 4: do it better than everyone else
In an effort to keep this as simple as possible for as long as possible I have kept the most complex explanation for last. In software development there is a well know and system development lifecycle (the SDLC) it is known to have may flaws and never seems to match reality but follows many of the same steps of newer and more loved methods. I believe these too also contain many of the same flaws. Keeping this as brief as I can (again in an attempt to fight complexity where I can) the SDLC has the following steps
- review (then rinse and repeat from step 1.)
Althoug the above is enough to accumplish many tasks I believe it is missing what is required in Gibson’s method step 4. I believe if you follow the SDLC (or most other methods) you will be stuck doing it as good as everyone else.
The basis of my step 4. was derived from another popular (if not so well known) method the CMM or Capability Maturity Model.
The Capabaility Maturity Model is not so much a method but contains one key element I believe is missing from many other poplular methods (including the SDLC). You can judge for yourself by carefully comparing the steps which will usually map on to the SDLC,often with 1 to 1 correspondance with slightly different names.
My method is different to CMM for good reason. The CMM was desgined to evaluate the maturity of an IT organasation and determine how dependable and predictable it might be. It was found that due to staff changes and other factors invisble to outsiders a company that was capable of implementing a complex project, may fail the next time round on much more simple task. The CMM was designed to grade an organsation and make some of these risks more clear. I have transformed it in to a active method of doing things better than everyone else (until they also learn to do it well).
Another difference in my method from the CMM is that the CMM is far too complex and needed to be paraphased and distilled down to its essence, down to tree (or five) easy steps.
Here is my paraphrasing of the CMM which has levels:
Level 0: you have never done this particular type of task before (everyone can be level 0)
Level 1: you have done this once
Level 2: you have done it before
Level 3: you planned it before you started (It’s crazy how many times people don’t plan)
Level 4: you keep records and review past results to improve apon next time
Level 5: Ninja
For most all the above levels will be familiar. Compare with the steps in the SDLC and you will find most of the stpes are the same as the CMM. There is at least one clear difference. In the SDLC you place at step 1 and in CMM you plan at level 3 (which is more close to reality). A lot of the more modern rapid prototyping and Agile methods come a lot closer to the way CMM expects.
CMM Level 5 will also require further explanation. The best explanation of what gets you to level 5 can be explained by the following example of being ultra proactive and thinking outside the box.
In software development there is often a testing step (and too often not), where you check for bugs before you release it on the world.
Errors caught ealry help hide your mistakes from your customeres and also make them happier.
Not to mention the possibility of reducing cost due to the clean up of the aftermath of one said mistake. Some Software companies often claim that bugs caught early actually increase costs, but I argue it may in the short term reduce costs for the software vendor but never for the unsuspecting customer.
But I digress. The CMM Level 5 Ninja would purposefully insert bugs in to the software without the knowledge of the test team. They would count the number of bugs found. If two bugs were inserted and one one detected, and the test team found one bug that was there to begin with, you could be fairly certain there was at least one more bug to be found that you sould be looking for because your test team only found 50% of the bugs you inserted, and it would be likley they only found 50% of the real bugs (the inserted ones should obviously be removed before release to the client). A Ninja would then seek out those bugs.
I call it Ninja because it’s like falling through the ceiling in the night, killing your enemy and leaving before anyone even knows you’re there. You’re just that good. You’re a Ninja!
This is called a process challenge test, but its really about being proactive rather than reactive.
So how does this get us to Gibson’s method step 4 and step 5?
Be proactive and think about what could happen if you put your mind to it.
No limits, anything is possible, try it (step 1) if it doesn’t work try again (step 2).
After you have done it several times you WILL be as good as everyone else (step 3).
Start planning things before you do them (step 4) and you will be better than everyone else (because nobody, but nobody plans!) Although not rocket science, always going in the right direction really pays off. So being able to tell if your going the correct direction is a skill you will need for this method to work.
A Ninja never skimps on effort (step 5). DON’T SKIP ANY STEPS. If you plan first, then do, you may not understand the problem. The most is known about a project at the end not the start, so if you plan too soon you may not have enough experience to do it correctly and you may commit to an approach before you should. Doing without planning can often be a good way of understanding why the problem is hard. So do the task with (step 4) and without (steps 1 and 2) planning. Also don’t forget to go the extra mile. Be proactive to get to CMM Level 5 Ninja. Anyone can repeat something over and over. If you roll a die over and over, trying new things (and if you can tell when you roll a six,) then that ability to discriminate, to decern that you have found what you were after, may be the difference between success and failure. The failure would not be the learning steps, in between here and there, but the fact that you did not try to do something thought to be impossible, and you would never have rolled that six. Things as complex and hard to understand as quantum mechanics has been worked out by comparing and contrasting, so doing the same as you repeat things over and over can provide a lot of knowledge to enable success later down the road.
Gibson’s method is part of the results of earlier versions of this method. Details of other results may be disclosed from time to time, but more importantly, please use this method yourselves. Test, refine and improve so that you too may do anything and do it well. As you should be able to see that if you follow this method you may take a little longer to complete than you had planned, but I argue, that if you only plan and do, or just do without planning, you wont actually complete your task successfully. Hence the statement that it will take four times longer than you can afford. This is because if you knew how long it was going to take, you probably would not have started. Yet, in starting, you are on your wat to success!
This method is still a work in progress but it has yielded a lot of success so far. This experiment is a long one and still currently in progress.