We're gonna hold 'em by the nose, and we're gonna kick 'em in the ass.
Active Risk Management/Continuous Learning (ARM/CL) is a highly
disciplined engineering approach to building mission-critical software.
It is a no-nonsense, results-oriented approach.
The two cornerstones of ARM/CL are:
Active Risk Management (ARM). Risk kills. Risk is your enemy. Do
everything possible to eliminate risk from your projects. Project
managers who like to flutter along pretending that their projects are
going well have no place in ARM/CL. ARM/CL projects collect hard data,
lots of it, and from the activities that have the greatest chance to
fail. Once one risk has been crushed, the ARM/CL project aggressively
seeks out the next one.
Continuous Learning (CL). No one is good enough. If you're good
enough today, you'll be a failure tomorrow. ARM/CL projects take what
they learn and relentlessly seek opportunities to do better.
Some of the ARM/CL practices are:
Campaign, strategic, and tactical planning (C-TAC). Say what you are
going to do, then take what the enemy gives you.
Continuous Review (CR). Every line of production code in ARM/CL is
reviewed as it is written.
Constant Progress (CP). Any civilian can pretend they are making
progress on piles of paper no one reads. ARM/CL is bold enough to
verify constant progress.
Following orders. The Commander decides what has to be done, and
when. The Squad determines a tactical plan to do it and do it right.
Beauty Ain't
My Business No Sir!
Strategic Planning
A good plan violently executed now is better than a perfect plan
executed next week.
Trust and verify. The commander or his staff use a Quality
Demonstration Language (QDL) to demonstrate that they have completed new
Mission Objectives (MO) on a weekly basis. HQ will assume that the
troops have done the right thing until there is an example in QDL to
prove otherwise.
ARM/CL projects demonstrate progress on the features of the actual
system. Starting with a reconnaissance of the entire system, the ARM/CL
project demonstrates that they have added new features to the system on
a weekly basis. The features are demonstrated to work by running tests
written by experts in QDL.
Field rations (Class I). An army travels on its stomach. At all
times on an ARM/CL project, rations will be made available for
requisition, a minimum of one hot meal a day is required.
Tactical Planning
Soldiers usually win the battles and generals get the credit for
them.
Field Planning Kit. To move quickly and strike the enemy
opportunistically is key to any successful campaign. Accordingly, the
planning mechanism must be comprehensive, effective, and portable.
Officers and troops carry their share of the FPK-1 componentry
everywhere and are prepared to lay out an assault at any time. I
thought this was about writing software?
Situational Awareness (SA). Friendly fire isn't. Introducing risk
into the system is unacceptable behavior, therefore simulations
will be employed before making any changes to the code
base. I don't understand what this means. Is this a plea for
testing? Negative, soldier, it directs the troop to experiment
before editing in times of doubt.
Search and Destroy (SAD). Risk is the enemy. We
will seek it out and eliminate it extreme prejudice.
After removing the threat, simulations will be used to
insure that a similar threats are not allowed into the code base.
Cover me. Every line of production code in ARM/CL is reviewed as it
is written. The trooper taking the Engineering role announces, "I'm
Engineering," (EGR) takes the keyboard and mouse, and begins careful
design and analysis. The trooper taking the Quality role announces, "I'm
Quality," (QTY) and begins reviewing. Since ARM/CL will not accept
inferior results, if Engineering ever feels incapable of proceeding
aggressively they announce, "QTY" and hand the keyboard to their buddy,
who announces, "EGR."
R&R. A fresh Squad will outperform a tired Squad every time. ARM/CL
troops keep themselves in top condition for the long term using an 8 on
16 off regimen, with two out of 7 days away from the front. Exceptions
can happen, but best results are obtained when these Pushes are rare.
Never Push two weeks in a row.
This is an XP Free Zone. Others are
welcome to help complete ARM/CL based on their painfully won
experience.
Is it a capital crime to go AWOL from an ARM/CL project?
No, projects have casualties, the goal is to minimize them.(This is a volunteer situation, and no squad wants a member who
doesn't want to be there. We wish them well, regroup, recruit, and move
on.)
Who's the enemy? What justifies having casualties? Is it like what
Steve Jobs said in Pirates of Silicon Valley, "People need a cause,"
that justified his abuse of power and the destruction of lives? Having
power over lives means having responsibility for those lives. Are you
doing your job?
I'll answer that one, soldier. The enemy is risk, as an alert
reader pointed out. In the military there is strict discipline, and its
purpose is to save lives and win the battles we are sent to win. We
don't want human casualties. The only casualties on an ARM/CL project
are the Field Planning Kit cards that are turned back in to the
Commander and stuck on the wall like trophies.
ARM/CL is a discipline of software engineering, not of warfare,
based on principles we have found to be effective, principles to which
officers and troops respond. These include:
Every individual must know the objective, his place in attaining
the objective, and must have the flexibility to respond as the situation
dictates, to advance the objective.
Information (we call it Intelligence) is key. You must find out
what is happening ASAP and respond appropriately.
The best plan is a straightforward, flexible plan. As the
situation changes, the plan must adapt.
Modern warfare is based much more on the small, well-equipped,
flexible squad than on top-down overplanned chain of command
organizations. Just so with ARM/CL. An ARM/CL Squad is in constant
contact with their Commander, and after each Skirmish (a period of 10 to
15 days), the Commander sets new objectives and the squad devises and
executes a plan to attain those objectives.
Another important part of military campaigning is the post-campaign
field report used a) to gauge success, b) to maintain active
intelligence of the front, c) to derive lessons that can be used to
teach future soldiers to fight either at that front or at another one
similar to it. A solid understanding of military history is essential to
avoid repeating costly mistakes, and a solid understanding of field
intelligence hard won by previous combatants is necessary to avoid
danger in the first place. Does ARM/CL write this important
document?
Yes, in the tradition of the US Army. ARM/CL uses an
After-Action Debriefing [5]
That isn't sufficient. That only propagates information up to your
commanders who will propagate it incorrectly or summarily up to their
commanders and so on. This is perfect for making field decisions but
doesn't solve the problem of long-term theatre assessment as posited
above. ARM/CL seems heavily deficient in this area. Moreover, your Field
Planning Kit cards need to be made trackable for strategy and tactics
analysis and for assessment of liability. I suspect that they aren't
being tracked correctly.
Negative, the days of trench warfare are over. To survive on the
modern battle field you must be quick and decisive. This isn't about
talking and feeling good. You do not pull the trigger until words have
failed.
Nothing in the ARM/CL definition states that the decision makers
write the documentation or that anyone else does.
That is correct, this document is a work in progress.