Plan2Code Book

Plan2Code

By: Curtis Warren

Plan2Code_Logo_Nov_18-7.png

Plan2Code’s Philosophy

Plan2Codes’s philosophy is based off of three pillars and their underling three rules.

Security Pillar

“Code should do no harm.”

Society Pillar

“Code should progress society forward”.

Longevity Pillar

“Should stand the test of time.”

Preface

Intended and Unintended Outcomes

First in order to understand the rest of this book and how we must plan2code, first you must understand the two outcomes that any program has to deal with:

  • Intended outcomes

  • Unintended outcomes

Intended outcomes are those that achieve the outcomes desired by the customer and the creator of the program.  Unintended outcomes are outcomes that where not desired by either the customer or the creator of the program.  Next we are going to see how we must address intended and unintended outcomes with respect to security, society and longevity.


Security

With Respect to Security:

Intended & Unintended Outcomes

The Security Pillar helps us to understand how planning for intended outcomes and unintended outcomes allows us to build trust with the users of our program.  People need to trust that their needs will be met, are being met and have been met. In order to build trust the programmer must follow the following principles:

1. Code should notify the user when the process to reach an intended outcome has started.

Intended Outcome Perspective

When people are notified when the start of the process took place this reassures them that the actions that they took to start the process mattered. 

Unintended Outcome Perspective

  If an unintended outcome occurs an immediate response can be shown to help the user understand what went wrong.

2. Code should notify the user when the process to reach an intended outcome is in progress.

Intended Outcome Perspective

When people are notified when the process is in progress this reassures them that work is being done to reach their desired outcome.  

Unintended Outcome Perspective

If an unintended outcome occurs at this time notifying the user will show them that the process started but there was problem later in the process.


3. Code should notify the user when the process to reach an intended outcome is finished.

Intended Outcome Perspective

When people are notified when the process is finished they can assess whether or not the intended result to their satisfaction.  

Unintended Outcome Perspective

If an unintended outcome occurs here notifying the user shows them that the process was able the perform with some difficulty in achieving the intended outcome desired by both the user and the program.


Society

With Respect to Society:

Intended & Unintended Outcomes

The Society Pillar helps us to understand how planning for intended and unintended outcomes allows us build for the society in a way that progresses society forward.  In order to plan2code we must understand if there is a need for us to code or in their a greater need hat could really push the society forward.  The following two questions should be asked.

  • Is there a need for my code?

This first question allows us to do some research and some soul searching and is the easiest to answer.

  • Will my code disrupt a solution that is in place?

This second question allows us to better understand the environment in which we are introducing code into.  If the environment will be illy effected by our code then we must adhere to the rule that “Code should do no harm.” and not introduce it into society.


Longevity

With Respect to Longevity:

Intended & Unintended Outcomes

The Longevity Pillar helps us to understand how planning for intended and unintended outcomes allows us to build for the longterm.  In order to stand the test of time programs must take into account two principles:

  • Design

Design should answer questions before they are proposed.

  • Effectiveness

How effective a program is depends on the environment it is being placed in and the problems it is intended to solve.