Lean Software Development — A Practical Series

This series is a reflection of my experience — and my teams’ — working in a truly agile way: applying Extreme Programming (XP) practices and a strong Lean mindset. Always within product companies. Always aiming to deliver value sustainably, without stress, and with lasting impact.

Over time, I’ve seen a kind of "decaf Agile" become the norm in many places: agile in ceremonies, but lacking technical practices and lean thinking. I’ve also noticed that few teams truly understand the basal cost of software, often falling into the trap of treating it like a construction project (The Building Fallacy).

That’s why I started this series — to share the principles (my premises) and practices that have helped us build software in a way that feels right: sustainable, effective, and human.

If you care about software quality, sustainable pace, team empowerment, and continuous improvement — no matter your role — I hope you’ll find something useful here.

👇 Feel free to explore the posts below. If you'd like to discuss any topic, don’t hesitate to reach out or leave a comment.


📚 Series Index

  • 📖 Introduction to Lean Software Development An overview of how Lean principles, combined with methodologies like Extreme Programming (XP) and Lean Product Development, can enhance team performance and product delivery.
  • 🧠 Interesting Lean Concepts for Software Development A deep dive into foundational Lean concepts such as flow efficiency, pull systems, and value stream mapping, and their relevance to software development.
  • 🗑️ Eliminating Waste in Software Development Identifying and addressing various forms of waste in software processes, including unnecessary features and task switching, to enhance efficiency.
  • 📚 Amplify Learning Emphasizing the importance of continuous learning through practices like Test-Driven Development (TDD), pair programming, and retrospectives.
  • Decide as Late as Possible Exploring the benefits of deferring decisions to the last responsible moment to maintain flexibility and reduce the risk of rework.
  • 🚧 Decide as Late as Possible: Product Limits Analyzing the boundaries and risks associated with postponing decisions in product development, and identifying scenarios where early decisions are necessary.
  • 🪜 Developing Software: Postponing Decisions and Working in Small Steps Advocating for an incremental approach to software development, focusing on small, safe steps to manage uncertainty and complexity.
  • Deliver as Fast as Possible Discussing strategies for rapid delivery, including frequent releases and fast feedback loops, to optimize value flow.
  • 🤝 Empowering the Team Highlighting the significance of team empowerment, autonomy, and a culture of continuous improvement in Lean Software Development.
  • 🏗️ Building with Quality Emphasizing the integration of quality into every aspect of software development to ensure sustainable and reliable product delivery.
  • 🧪 Detect Errors Before They Hurt✨NEW✨ Focusing on detecting errors as early as possible, stopping the flow when they appear, and learning from them to improve systems and processes.

🔮 Upcoming Topics

  • 🏛️ Quality as the Foundation of Sustainable Development
  • 🌐 Quality Through Collaboration and Visibility
  • 🧱 Overcoming resistance and creating conditions for quality
  • 🧩 Optimize the Whole
  • 🤸 Lean and XP – A Sustainable Approach to Agile Development
  • 🌱 Other Concepts Influenced by Lean

No comments: