A Thought Experiment
The Forces Affecting Successful Software Development
Most aspects of Technology solutions, using modern practices such as Object Oriented Programming, are based on the real world.
We have objects that are things designated as Nouns: a person, place or thing.
We have Verbs that denote action behavior: GetPerson().
As we look out our windows we can easily create real world events as Software Entities:
A Car is a State Data Transfer Object (DTO) with its attributes such as Color, Make, and Model etc.
A Car starting its engine is an Action Behavior Method: StartCar()
Waiting to cross the street subscribes to an Event: OnCarComing() and notifies us not to cross the street if there is an approaching Car
We have Conditionals: IsCarFueled which is a prerequisite for the StartCar() action
We also have Exceptions: CarCrashException which we need to handle with some behavioral recovery action
By extending the real world analogy to other entities such as Newton’s Three Laws of Motion creates an interesting “Thought Experiment” on the forces of Software Project Motion.
Can the Real World Laws of Motion
… Be Applied to the Forces
…… That Affect Software Project Success?
The Three Laws of Motion
Newton’s laws forever changed our understanding of the Universe with his Three Laws of Motion.
They describe the relationship between a body and the forces acting upon it, and its motion in response to said forces.
-
Newton’s First Law of Motion – Every object in a state of uniform motion tends to remain in that state of motion unless an external force is applied to it.
This is also Galileo’s law of Inertia
-
Newton’s Second Law of Motion – The relationship between an object’s mass m, its acceleration a, and the applied force F is F = ma.
The acceleration of a body is directly proportional to, and in the same direction as, the net force acting on the body, and inversely proportional to its mass. Thus, F = ma, where F is the net force acting on the object, m is the mass of the object and a is the acceleration of the object.
-
Newton’s Third Law of Motion – For every action there is an equal and opposite reaction.
When one body exerts a force on a second body, the second body simultaneously exerts a force equal in magnitude and opposite in direction to that of the first body
The Three Laws of Software Project Motion
Let’s first create our parallels to Newton’s Laws of Motion for Software Project development. We will then conduct our Thought Experiment to postulate results.
-
Software Project’s First Law of Motion – Every Software Project, in a state of uniform motion, tends to remain in that state of motion unless an external force is applied to it.
-
Software Project’s Second Law of Motion – The relationship between a Software Projects mass m (It’s Defined Scoped Size and Resources), its acceleration a (Pace of Development Commitments), and the applied force F (Pressure for Delivery) is: F = ma.
-
Software Project’s Second Third Law of Motion – For every Software Development action (Changes in the Scoped Requirements or Delivery Dates) there is an equal and opposite Software Development reaction (Changes to force: F as m and a will change)
Let’s now look at the effects presented to our hypothetical project in this experiment using our Laws of Software Development Motion.
A project starts development with a clear understanding of the definition of success, based on the currently available information, and creates a “Road Map to a Success Milestone“.
The Project is Now in Motion:
-
The Project has Acceleration: a – It will stay in motion until an external acts on its forward motion such as scope changes, new deadlines or development resource changes.
The Acceleration has been defined by development delivery date requirements
-
The Project has Mass: m – It contains some defined requirements that the development resources has currently put in motion as Acceleration: a
-
The Project’s Force: F can now be calculated – The defined Mass is the expected deliverables and dates that affect the Business Case and the number of affected Project resources create the overall Mass of the Project.
This defines the effect that any changes to the scope and dates will have on the “State of Uniform Motion” of the momentum of the project’s travels to the defined Success Milestone
The Effects on the Project’s Motion
Due to the Software Project External Forces
Let’s define the forces that can change the forward acceleration of the Project to its defined milestone.
-
Scope Creep – Subtle changes that by themselves seem small but when aggregated become problematic for meeting deadlines
-
Delivery Dates – Sudden new priorities for delivery sooner that previously planned
-
Development Resources– Loss of critical skill sets assigned to meet the delivery expectations
-
Infrastructure Resources– Assigned Technology devices that are no longer performing at a level that supports the defined development dead lines
-
Misunderstanding of Initial Deliverables – As the project acceleration progresses a greater understanding of the defined requirements is attained. This creates a force for change that affects the ability to maintain the current momentum
-
Business Case Changes– The Business world is fluid, constantly in motion. This force will cause previous understandings to require modification that will adversely affect the acceleration towards the defined milestone
Each of these forces act on the momentum of the Project as an external force in our First Law of Motion.
Let’s now take each of the forces defined above and map them to the Software Laws of Motion as a conclusion to our Thought Experiment.
Scope Creep, as defined above, are small changes to the expectation of development by the Client that by themselves seem small but when combined together can be an adverse force on the momentum of a project.
The effect on the Laws of Software Project Motion due to Scope Creep:
- Scope Creep is an “External Force” that acts on the motion acceleration of the project as stated in the First Law of Motion
- Scope Creep changes the Force calculation as it increases the Mass parameter
- Scope Creep causes an Equal and Opposite reaction as any change in the Mass will cause an equal reduction in the Acceleration of the project
Delivery Dates, as defined above, are sudden new priorities for delivery sooner that previously planned.
The effect on the Laws of Software Project Motion due to Delivery Dates:
- Delivery Dates is an “External Force” that acts on the motion acceleration of the project as stated in the First Law of Motion
- Delivery Dates changes the Force calculation as it increases the Mass parameter
- Delivery Dates causes an Equal and Opposite reaction as any change in the Mass will cause an equal reduction in the Acceleration of the project
Delivery Dates can also require additional resources, both development and infrastructure. These changes increase the Mass of the Project
Development Resources are both development and infrastructure. This causes delays in the Project that adversely effects dead lines.
The effect on the Laws of Software Project Motion due to Development Resources:
- Development Resources is an “External Force” that acts on the motion acceleration of the project as stated in the First Law of Motion
- Development Resources changes the Force calculation as it increases the Mass parameter
- Development Resources causes an Equal and Opposite reaction as any change in the Mass will cause an equal reduction in the Acceleration of the project
Development Resources can also require additional infrastructure resources. These changes increase the Mass of the Project
Infrastructure Resources are Technology hardware and connectivity. This causes delays in the Project that adversely effects dead lines.
The effect on the Laws of Software Project Motion due to Infrastructure Resources:
- Infrastructure Resources is an “External Force” that acts on the motion acceleration of the project as stated in the First Law of Motion
- Infrastructure Resources changes the Force calculation as it increases the Mass parameter
- Infrastructure Resources causes an Equal and Opposite reaction as any change in the Mass will cause an equal reduction in the Acceleration of the project
Infrastructure Resources can also require additional infrastructure training. These changes increase the Mass of the Project
Misunderstanding of Initial Deliverables requires meeting, statements of works documents and planning sessions that could staop all project momentium..
The effect on the Laws of Software Project Motion due to Misunderstanding of Initial Deliverables:
- Misunderstanding of Initial Deliverables is an “External Force” that acts on the motion acceleration of the project as stated in the First Law of Motion
- Misunderstanding of Initial Deliverables changes the Force calculation as it increases the Mass parameter
- Misunderstanding of Initial Deliverables causes an Equal and Opposite reaction as any change in the Mass will cause an equal reduction in the Acceleration of the project
Misunderstanding of Initial Deliverables can seriously alter a planned path for success.
Business Case Changes requires meeting, statements of works documents and planning sessions that could stop all project momentum..
The effect on the Laws of Software Project Motion due to Business Case Changes:
- Business Case Changes is an “External Force” that acts on the motion acceleration of the project as stated in the First Law of Motion
- Business Case Changes changes the Force calculation as it increases the Mass parameter
- Business Case Changes causes an Equal and Opposite reaction as any change in the Mass will cause an equal reduction in the Acceleration of the project
Business Case Changes can seriously alter a planned path for success.
The conclusion drawn from this “Thought Experiment” is that there is a direct relationship to the Newton’s Laws of Motion in the real world and the Laws of Software Project Motion in the Development World.
This is logical as all software project entity components and their elements parallel the real world as well.
It is Nice to See Consistency in the Universe
Wisdom Pearl # 113: Understanding Success
Have a Crystal Clear Understanding of Your Destination
… Or You Might Drive Right By It
Latest posts by Brad Huett (see all)
- DevOps: A Bridge to Your DevOps Culture - March 25, 2016
- Embracing Test Driven Development (TDD) - March 25, 2016
- DevOps: Delivering Agile Projects - March 25, 2016