The Four Driving Forces of Software Development
Last updated: May 06, 2024 Read in fullscreen view



- 01 Oct 2020
Fail fast, learn faster with Agile methodology 761
- 14 Oct 2021
Advantages and Disadvantages of Time and Material Contract (T&M) 641
- 18 Oct 2020
How to use the "Knowns" and "Unknowns" technique to manage assumptions 612
- 19 Oct 2021
Software development life cycles 598
- 19 Oct 2021
Is gold plating good or bad in project management? 580
- 08 Oct 2022
KPI - The New Leadership 489
- 28 Jul 2022
POC, Prototypes, Pilots and MVP: What's the differences? 477
- 06 Mar 2021
4 things you need to do before getting an accurate quote for your software development 454
- 18 Jul 2021
How To Ramp Up An Offshore Software Development Team Quickly 419
- 01 Sep 2022
Facts Chart: Why Do Software Projects Fail? 419
- 12 Oct 2022
14 Common Reasons Software Projects Fail (And How To Avoid Them) 397
- 16 Apr 2021
Insightful Business Technology Consulting at TIGO 331
- 23 Sep 2021
INFOGRAPHIC: Top 9 Software Outsourcing Mistakes 325
- 13 Oct 2021
Outsourcing Software Development: MVP, Proof of Concept (POC) and Prototyping. Which is better? 318
- 28 Oct 2022
Build Operate Transfer (B.O.T) Model in Software Outsourcing 311
- 07 Jul 2021
The 5 Levels of IT Help Desk Support 308
- 17 Jun 2021
What is IT-business alignment? 302
- 11 Jan 2024
What are the Benefits and Limitations of Augmented Intelligence? 297
- 10 Dec 2023
Pain points of User Acceptance Testing (UAT) 292
- 12 Dec 2021
Zero Sum Games Agile vs. Waterfall Project Management Methods 292
- 05 Mar 2021
How do you minimize risks when you outsource software development? 290
- 28 Dec 2021
8 types of pricing models in software development outsourcing 288
- 19 Apr 2021
7 Most Common Time-Wasters For Software Development 265
- 31 Oct 2021
Tips to Fail Fast With Outsourcing 263
- 13 Dec 2020
Move fast, fail fast, fail-safe 257
- 06 Feb 2021
Why fail fast and learn fast? 234
- 04 Oct 2021
Product Validation: The Key to Developing the Best Product Possible 218
- 18 Aug 2022
What are the consequences of poor requirements with software development projects? 203
- 04 Oct 2022
Which ERP implementation strategy is right for your business? 202
- 10 Apr 2021
RFP vs POC: Why the proof of concept is replacing the request for proposal 202
- 06 Nov 2019
How to Access Software Project Size? 201
- 01 May 2023
CTO Interview Questions 197
- 03 Nov 2022
Top questions and answers you must know before ask for software outsourcing 195
- 31 Aug 2022
What are the best practices for software contract negotiations? 186
- 07 Aug 2022
Things to Consider When Choosing a Technology Partner 184
- 10 Nov 2022
Poor Code Indicators and How to Improve Your Code? 179
- 26 Dec 2023
Improving Meeting Effectiveness Through the Six Thinking Hats 160
- 17 Feb 2022
Prioritizing Software Requirements with Kano Analysis 154
- 07 Oct 2022
Digital Transformation: Become a Technology Powerhouse 151
- 09 Feb 2023
The Challenge of Fixed-Bid Software Projects 151
- 20 Nov 2022
Software Requirements Are A Communication Problem 151
- 01 Mar 2023
Bug Prioritization - What are the 5 levels of priority? 149
- 09 Mar 2022
Consultant Implementation Pricing 141
- 08 Nov 2022
4 tips for meeting tough deadlines when outsourcing projects to software vendor 135
- 01 Mar 2023
How do you deal with disputes and conflicts that may arise during a software consulting project? 130
- 05 Sep 2023
The Cold Start Problem: How to Start and Scale Network Effects 129
- 01 Dec 2023
Laws of Project Management 129
- 01 May 2024
Warren Buffett’s Golden Rule for Digital Transformation: Avoiding Tech Overload 124
- 09 Jan 2022
How to Bridge the Gap Between Business and IT? 115
- 16 Feb 2021
Choose Outsourcing for Your Non Disclosure Agreement (NDA) 109
- 05 Jan 2024
Easy ASANA tips & tricks for you and your team 106
- 06 Mar 2024
[SemRush] What Are LSI Keywords & Why They Don‘t Matter 102
- 12 Mar 2024
How do you create FOMO in software prospects? 80
- 14 Mar 2024
Why should you opt for software localization from a professional agency? 64
- 12 Aug 2024
Understanding Google Analytics in Mumbai: A Beginner's Guide 54
- 10 Jul 2025
Building AI-Driven Knowledge Graphs from Unstructured Data 48
- 17 Mar 2025
IT Consultants in Digital Transformation 39
What are the development behaviors within your software enterprise… and what are the forces behind them that drive enterprise performance?
Software development in a software enterprise is governed by four primary forces: lift, load, thrust, and drag. Lift represents a product's market position, while load is the downward force due to the size of the software in production and development. Thrust is the forward acting force, driven by customer focus, first-time quality, agile development, and continuous integration. Drag is the backward acting force, driven by process friction and product inefficiency. When these forces are balanced, software velocity and productivity remain constant, while performance is reduced if load and drag are bigger.
Effective means "producing a result that is wanted". Efficient means "capable of producing desired results without wasting materials, time, or energy". The difference is that when something is effective it produces a result even if it takes some unnecessary resources to do so.
1. Forward
If your software enterprise behaves like an airplane, then four primary forces govern its performance in flight... lift, load, thrust, and drag. Interestingly, and with a little bit of imagination, we can draw analogs from each of these... to the software development enterprise.
2. Four Forces of Software Development
Let’s take a look at the definition of each force… I’m sure most folks have seen the four forces of flight. Here they are again, restated from a software enterprise perspective.
- Lift is the upward acting force (a product market velocity). Lift is a force that represents a product’s position within its market. Revenue from customer sales generates most of the lift for the enterprise.
- Load (gravity) is the downward acting force. This weight is due to the size of the software in production and software in development… and measured by the (overhead) costs of developing, operating, maintaining and sustaining software products.
- Thrust is the forward acting force (process velocity). Thrust is a force that moves an enterprise in the direction of the vision. It is driven by customer focus, first-time quality, agile development, and continuous integration… to name a few factors.
- Drag is the backward acting or retarding force. Process friction and product inefficiency are the software representations of this force. (Increasing technical and process debt drive extra work and exert drag on forward development.)
These four forces act in concert on software developments to make the enterprise perform in different ways. Each force has an opposite force that works against it. Lift and load represent effectiveness in the software enterprise… where lift works opposite of load… and form a vector to determine enterprise velocity. Thrust and drag represent efficiency in the development process… where thrust works opposite of drag… and form a vector to determine enterprise productivity.
When the forces are balanced, then software velocity and productivity are constant at some level of performance. Software productivity goes up if the forces of lift and thrust are more than the forces of load and drag. If load and drag are bigger than lift and thrust, then enterprise performance is reduced.
3. Four Cross-Force Scenarios
If we look at the relationships between the forces, four interesting scenarios emerge. Do any of these characterize your enterprise?
- High-load/high-drag. A worse-case scenario. Technical process and product debt driving low velocity for software production. low margins. Lots of technical debt may be slowing down progress and driving increased costs…. Without increased productivity.
- HIgh-lift/high-drag. A suboptimal scenario. Increasing productivity by taking on additional technical debt. Probably a short-term gain… expect to reach a tipping point and stall into a high-load/high-drag scenario. (forus on technical debt recovery)
- High-thrust/high-load. Another suboptimal scenario. Low customer adoption is cutting profitability… despite efficient development processes. You’re efficient at producing software, but is it the right stuff? (focus on customer needs)
- High-thrust/high-lift. The ideal scenario for business growth. High efficiency processes and high yield of products that customers value.
4. Focus on Drag... Technical Debt
Software maintenance in the software product lifecycle is the modification of a software product after delivery to correct faults, to improve performance or other attributes. Each enterprise has a set of policies to address software maintenance. Some have a cyclic program to work issues and plan opportunities as they emerge… others may elect to defer maintenance for short-term or even long periods.
Software maintenance can be bucketed into one of four classes:
- Corrective maintenance -- reactive update of a software product to correct an issue discovered in production.
- Adaptive maintenance -- update of a software product to keep a software product current within an evolving environment.
- Perfective maintenance -- update of a software product to improve performance or reduce operating costs.
- Preventive maintenance -- update of a software product to correct latent defects or intentional non-conformance.
Deferring any of the above will generate technical debt in the enterprise production baseline. Each enterprise needs to determine their risk tolerance for technical debt…and expect that it will vary across each product in the portfolio and each layer in the architecture stack.
5. Balancing the Forces
So, what’s the right balance of lift, load, thrust, and drag for your enterprise? If you’re the typical growing software business... in an aggressive growing market,... you’ll want to follow the high-lift/high-thrust scenario… from above and look like this.
- High-lift -- focus on customer needs
- Low-load -- focus on lean execution
- High-thrust -- focus on development velocity
- Low-drag -- focus on reducing technical debt
Of course, there’s a lot more to this analogy… but this should set the stage for some forward discussions… and certainly emphasize the connection between the forces that drive enterprise behavior... and the key metrics for enterprise performance.
6. Conclusion
There are four cross-force scenarios that can characterize a software enterprise: high-load/high-drag, high-thrust/high-load, and high-thrust/high-lift. High-load/high-drag is a worse-case scenario, while high-thrust/high-lift is the ideal scenario for business growth.
Ray Carnes
Transformational Leader, Large-scale Systems Architect and Software Developer, Executive Coach, Author, and Musician
