Skip to main content

This supports OODA Loop project.

Project description

OODA Flow Diagram

Overview

This allows you to draw flow diagram for OODA Loop projects.

Installation

$ pip install ooda-flow-diagram

Background & Purpose

OODA loop is a great management tool of projects on cyber security, data science, research and others. However, as the project progressed, in many cases, the main purpose might be lost or the history of the project was forgotten between those members. Therefore, in order to solve these issues, I designed "OODA Flow Diagram."

I'm a data scientist, so I have especially focused on data science projects and often used this flow diagram for them.

  • Clarify the purpose of the project and share it among team members to prevent it from missing it.
  • To make the next decision quickly by being able to visually see the history of acts and outputs.

OODA Loop

The OODA loop is the cycle observe–orient–decide–act, developed by military strategist and United States Air Force Colonel John Boyd. Boyd applied the concept to the combat operations process, often at the operational level during military campaigns. It is now also often applied to understand commercial operations and learning processes.

OODA.Boyd

Concept and Basic Steps

This flow consists of the following steps based on OODA Loop.

Major Target

First, to clarify the Major Target. It is a ultimate goal of the project and the end condition of the project. This step is so important that project members should always be reminded of their goals, such as when a problem arises and the solution is considered. MajorTarget of the flow diagram is used to show this.

If prerequisites are with the major target, to summarize them. MajorPrerequisiteof the flow diagram is used to show this. For example:

  • Input data
  • Dead line
image-20210725155758731

First OODA Loop

  1. Set the first small target.
  2. Do OODA Loop to achieve the small target.
  3. Summarize the result of the loop.

Cluster makes easier to see this loop unit in the flow diagram.

image-20210725155758731

Set Small Target / First Step

It is difficult to suddenly achieve the major target, so it is divided into smaller goals, and determine the first step. That is the first small Target. Target of the flow diagram is used to show it.

image-20210725155858004

Observe - Orient - Decide(OOD)

This phase decides the TODOs of the next Act from input information and current status . The output of this phase is a ActTable of the flow diagram. ActCells basically consists of the followings:

  • Todo
  • Output
  • By When
  • Who
  • Progress

By clarifying them, Act phase will proceed smoothly.

Notes: It's not necessary to record what you did in this OOD phase, the above factors are important.

image-20210725155921389

Act

Act the TODOs that was decided in the OOD phase, and create outputs. When the act has finished, you should update TODOs and Outputs to match what you actually did.

  • If you find that you shouldn't proceed as it is, close this act by summarizing the conclusion in the output of ActCells and go to the next OOD phase, or set another target
  • If the TODOs or outputs increase or change a little while you are working on the act, you can update them.

Loop

Repeat OOD and Act loop until achieving the first small target.

Result

When the small target is achieved, memorize the conclusion of the step withResult. For Example:

  • Final Outputs
  • Whether the small target is achieved or not.
image-20210725160342479

Next & Repeat OODA Loop

After achieving the previous target, set the next small target and run the OODA loop again. We will repeat this cycle until achieving the Major target.

OODA Flow Diagrams as Code

This codes is the folk of Diagrams. OODA Flow Diagrams as Code let you draw the flow diagram in Python code.

Diagram Nodes

Major Target

major_target = MajorTarget(
            label="Binary classification prediction of reservations with 
    			  "high hotel cancellation probability.")
image-20210725161048155
parameter type required default detail
label string
List[string]
Strings showed in the node. If the type is list, it becomes bullet points.
line_mark str 'point' If the label is itemized, this can be selected.
- 'point': line mark becomes point
- 'seq': line mark becomes sequential numbers (1,2,3,,,)
line_length int The number of characters per line of label. Line breaks are automatically inserted for each specified value.
subject string 'Major Target' Set subject in [ ].

Target

firs_target = Target(label="Select the first and simple features, and binary classify.")
image-20210725162319293

Parameters are the same as the above Major Target.

ActTable

histgram1 = ActTable(
    todo="check all features' histgrams", 
    bywhen="6/23", who="James", progress="done",
    output="selected 8 features", completed_date="6/22")
image-20210725162545774
parameter type required default detail
todo string
List[string]
Strings showed in the todo cell. If the type is list, it becomes bullet points.
todo_mark str 'point' If todo is itemized, this can be selected.
- 'point': line mark becomes point
- 'seq': line mark becomes sequential numbers (1,2,3,,,)
output string
List[string]
Strings showed in the output cell. If the type is list, it becomes bullet points.
output_mark str 'point' If output is itemized, this can be selected.
The items are the same as the todo_mark.
output_link str String of the output contents link: ( e.g. file path, URL)
line_length int The number of characters per line of label. Line breaks are automatically inserted for each specified value.
bywhen string The deadline of this todo.
who string Show who does this todo.
progress string Show the progress circle.
'start', '25', '50', '75', 'Done'

Result

first_result = Result(label="First accuracy is accuracies_01.xls. That is not enough.")
image-20210725170331148

Parameters are the same as the above Major Target.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ooda_flow_diagram-0.1.0.tar.gz (52.7 kB view details)

Uploaded Source

Built Distribution

ooda_flow_diagram-0.1.0-py3-none-any.whl (53.9 kB view details)

Uploaded Python 3

File details

Details for the file ooda_flow_diagram-0.1.0.tar.gz.

File metadata

  • Download URL: ooda_flow_diagram-0.1.0.tar.gz
  • Upload date:
  • Size: 52.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.1.4 CPython/3.8.7 Darwin/20.4.0

File hashes

Hashes for ooda_flow_diagram-0.1.0.tar.gz
Algorithm Hash digest
SHA256 21e75f24148cb7fa683baefa8152db6174b44ce394b4f3ee832431b1de2bc163
MD5 1d7db0ce8dd125f596b3fb44f8bd2e5c
BLAKE2b-256 03e9c81c988f77ef56bce5dd7588831efe017e5765d1a23565b57835f05b10eb

See more details on using hashes here.

File details

Details for the file ooda_flow_diagram-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for ooda_flow_diagram-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 0853cfbaf7a93c34db08f34834509c7f44fa0c17fbc60e3d30f7840e07a16fa2
MD5 4276a7fcb29b8417847836ff4c9223ae
BLAKE2b-256 3da5157f02e5e4b2f091e98fa06766335f6ff7e40a4866659a2888ee0d2f57b5

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page