"We're gonna hold 'em by the nose, and we're gonna kick 'em in the ass."
--General George S. Patton
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:
Some of the ARM/CL practices 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.
- 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. BeautyAintMyBusinessNoSir!
"A good plan violently executed now is better than a perfect plan executed next week."
--Gen. George S. Patton
- 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.
"Soldiers usually win the battles and generals get the credit for them."
Maj. FrankStone, US Army, ret.
- 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. --fs
- 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 XpFreeZone. Others are welcome to help complete ARM/CL based on their painfully won experience.
Is it a capital crime to go AWOL from an ArmCl 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. --fs)
Who's the enemy? What justifies having casualties? Is it like what SteveJobs said in PiratesOfSiliconValley, "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:
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.
- 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.
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 ArmCl write this important document?
Yes, in the tradition of the UsArmy?. ArmCl uses an AfterActionDebriefing?
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. ArmCl 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 ArmCl definition states that the decision makers write the documentation or that anyone else does.
That is correct, this document is a work in progress.
See also: WarfareAsSoftwareDevelopmentMetaphor
EditText of this page (last edited April 24, 2003)
FindPage by browsing or searching
This page mirrored in ExtremeProgrammingRoadmap as of April 29, 2006