Skip to content

Latest commit

 

History

History
121 lines (84 loc) · 3.2 KB

File metadata and controls

121 lines (84 loc) · 3.2 KB

Via Negativa:
Subtraction as Innovation

Piotr Leszkowicz / Ahmed Abdelrahman


The Prevailing Mindset in Product Development

📈 Common Approach:

  • more features
  • new technologies
  • latest algorithms
  • AI integration

🔄 Alternative Perspective:

  • The Negative Way or Via Negativa

Via Negativa

  • 📚 Source: Nassim Nicholas Taleb’s "Antifragile, Things that Gain from Disorder"
  • 🎯 Focuses on:
    • ❌ Identifying Non-Essentials:
      • Recognizing features or elements that do not add value to the product.
    • ⚠️ Risk Avoidance:
      • Actively avoiding actions, features, or technologies that could introduce unnecessary complexity or potential failure points.
    • 🚫 Intentional Non-Action:
      • Choosing not to implement certain features or changes, especially when their benefits are unclear or outweighed by their potential drawbacks.
  • 📈 Taleb’s View: Knowledge grows more by subtraction than by addition

Basal Cost of Software

  • 📊 Components:
    • 💸 The initial development cost of the feature
    • 🔄 Ongoing cost associated with the feature's existence
  • 🧠 Includes:
    • 🤔 Team knowledge and maintenance of the feature
    • 📈 Impact on other feature developments

The Initial Cost of a Feature

  • 💰 Definition: Cost incurred during the initial development until customer use
  • 🚀 Process: Includes multiple deployments and feedback adjustments

The Basal Cost of a Feature

  • 🕒 After Initial Development: Ongoing cost reducing team capacity for new developments
  • 📉 Nature of the Cost: Existence of the feature in the product, no modifications or bug fixes
  • 🧐 Why It Happens: Knowledge/code maintenance, compatibility, and new team member training




Evolution of the Cost of a Feature

  • 📈 Basal Cost: Generally constant throughout the feature's life
  • ⚠️ Risk: Costs can skyrocket due to obsolescence or mandatory updates

The Problem of Neglecting Basal Cost

  • Common Mistake: Assuming no ongoing cost if the feature is unchanged
  • 🏗️ Misguided Metaphor: Comparing software development to construction

Non-Infinite Capacity

  • 📉 Reality: Team capacity is finite and impacted by the accumulated Basal Cost
  • 🚧 Result: Reduced capacity for innovation, leading to maintenance overload


Pareto Principle (80/20 Rule)


Conclusions and Principles for Efficiency

  • 🎯 Goals:
    • 🛠️ Minimize Basal Cost
    • 🔄 Iterate functionality for minimal solutions
    • 💡 Strive for simplicity and avoid over-engineering
  • ✂️ Action: Eliminate reduntant features without desired impact to reduce Basal Cost
  • 🕵️‍♂️ Monitor: Continuously check for obsolescence to prevent cost spikes
  • 🧠 Remember: "Simplicity --the art of maximizing the amount of work not done-- is essential."