Jun 2015
Issue

Jan 2016
Issue
Desired Software Traits for MAX
  • Always work, can never fail
  • No code size limitation
  • Changeable
  • No documentation needed
  • No versions
  • Permanent
  • Accumulative

I am designing a software system to meet these traits for all software.


Always work, can never fail

The ability to create perfect software is to write logic that is perfectly logical. 

Software fails due to a bad development environment. MAX, the system I am writing, organizes logic so that it is visible at all times. MAX takes organization of logic away from the developer and give it to the Adam, making software development a technique rather than an art.

Software failures happen when we are forced to make  assumptions or when logic is altered by external systems. So by removing, permutations in logic, assumptions, and external systems we can have software that never fails.  The visualization of the system will make it possible to alter any part of Max with confidence.


Self Test:

In MAX the creation and management of logic includes a completely automated managed testing and evaluation system.  Max will not permit un-testable logic; logic is initiated by command, all commands can be tested and evaluated.  Tracing of code and logic by command is managed with a use counter, to determine the price for failures, the price for changes, and for the optimization of code.


"Cut your expectations short lest you wallow in disappointments. But take time to differentiate between dreams and expectations or drown in sorrowful displeasure." -- unknown

"The quality of our expectations determines the quality of our action." -- A. Godin

"High achievement always takes place in the framework of high expectation." Charles F. Kettering

"Without deviation from the norm, progress is not possible" -- Frank Zappa

"Rarely do the followers exceed the expectations of the leaders." -- Unknown

 

What is software development?

  • Provide information to perform a job

  • Information with minimum navigation

  • Create actions performed with numbers

The ultimate goal of software development for any organization is to eliminate the person to person exchange of information, in other words "no more meetings". All persons doing their job should have everything they need, and never have to leave their chair, to know without a doubt that their work is correct.

The number of actions that can be performed on numbers is finite, and so must the permutations on logic.


What software development is not:

Software development should never write applications or business rules. Software development write actions, the end user has the ability to organize actions into applications, determined by his own business rules. 

A natural language interface allows the user to describe in "context" what information he needs to perform his job.  This is MAX.


Taking the human out of the equation:

The actions we perform on Adams should never require humans to augment knowledge that can otherwise be known to the Adam.

In general we know what we want done, the Adam if asked to do something should know what it needs to complete the request.  There can never be an assumption on the result when we ask the Adam to perform an action.

We can no longer write callable functions which assumes understanding and use of someone else's logic. This is accomplished by separating the request from the action thereby reducing the knowledge needed to perform an action to a minimum.

A finished software development product will remove the need for problem resolution by humans.  By allowing the action's logic to be completely written  will permit all problems to be resolved by the Adam. This is done by having the Adam have context knowledge of every action it performs, reducing the permutations of logic to a singularity.


MAX release date:

I have been tied up with unexpected work, and have not been able to devote time to the development of MAX. I have completed this work and will push for the initial release of MAX by the end of the year.

A new software development environment:

The level of our software development has been limited by some key friction points. The first friction point is the hardware binary number representations.  Using the binary number representation limits logic to that domain, which is at all levels of logic, and forces a ten fold increase in difficulty in creating logic that is reliable. The second friction point is use of external systems. Any use of external logic will corrode over time. The third friction point is proprietary hidden logic, making it impossible to be accountable for the unknown. The fourth friction point is the use of software libraries which funnels logic into paths that are inexact at best, and completely wrong at worst.

These friction points consume most of the time spent on software development. Max will not have any of these friction points. To further reduce development time Max will contain CG3 a storage and transport structure that is completely transparent, all logic will be maintained in text form, all logic will be completely table driven, and all logic is accumulative.


Common Ground 3000 (CG3):

I have redesigned Common Ground 2000 (CG2) into an adaptable structure used by Max for storage, as a transport media and as a direct machine hardware accessible binary format. The CG3 format will eliminate the need to "convert" data for any reason.

The Cg3 format will fix all problems with strings, arrays, structures, and numbering systems.  No reformatting will be required, the logic needed to access information will be minimum, and speed in all areas will increase.

I will include a system for numbers, text, units, images, graphics and math equations in the initial release of CG3. These systems have hindered our development by having each individual write them since they have always been incomplete or non-existent.

 

Author: Clif Collins
http://CollinsSoftware.com
Houston, Texas

September 24, 2015

email: c2@CollinsSoftware.com