Hey everybody — Lean principles are more important than your attempts at Agile practices, trust me!

In Software Engineering, Agile practices like Scrum, Kanban or XP are not golden tickets to success, otherwise everyone would be using them exactly as their frameworks prescribe. Having the right principles is the most important yet most overlooked aspect of building a successful function and business (after people of course!).

I’ve worked for numerous large companies where Agile transformations have been attempted, either wholesale across the board or in small pockets. In both instances I’ve seen various levels of success and I believe that a common trap to fall into is to focus on specific Agile practices rather than the foundation level change that’s needed.

All too often someone reads a book where they pick up something from Google, Automattic or Spotify and they think that copying that ‘thing’ will be the answer they’ve been looking for. “What would Google do??” — copy+paste and expect success.

Spoiler alert — blindly copying practices from a successful Agile (/Software Engineering) company and expecting them to work for you isn’t going to end well!

I think Scott Berkun summed it up well when he spoke at Adaptive Path’s MX15 conference earlier this year (12 mins into this video — https://vimeo.com/125621423) —

“A fallacy born from the failure to study culture is the assumption you can take a practice from one organisation, jam it into another, and get similar results”

I’m not saying ignore everything that other companies have done — it’s crucial to observe what others have done so we can learn from them. Read as many books as you can, understand success and failure at other companies, visit other teams if you can to observe things in action.

When it comes to adopting Agile practices in Software Engineering, learning is vital. Copying is fatal.

My recommendation is to forget about the practices. Focus on the principles that underpin what you’re doing. It’s the ‘how’ in Simon Sinek’s Golden Circle , it’s the foundation that you need everyone to understand and build upon to be successful. Good practices, and more importantly relevant practices for your organisation will follow. You’ll find that teams will adopt and evolve the practices that they know will work for them, and you’ll be surprised how quickly a talented team can do this!

In my opinion, the best set of principles to adopt are the 7 Lean Principles that Mary and Tom Poppendieck outline in their books on Lean Software Development:

  1. Eliminate Waste
  2. Build Quality In
  3. Create Knowledge
  4. Defer Commitment
  5. Deliver Fast
  6. Respect People
  7. Optimise The Whole

If you get these embedded into a team, function, or better still an entire organisation then you have the foundations on which you can build out agile practices and successful teams.

(I know this may come across as hypocritical to say don’t copy practices, do copy principles, but the 7 Lean principles above are high level enough to be adopted wholeheartedly when it comes to Software Engineering, I’d recommend reading the Poppendieck’s work and I think you’ll agree)

This is where you should focus effort — don’t start with Scrum, or Scaled Agile or copying what another company does, do start with understanding the principles of efficient, Lean Software Development and sharing this knowledge throughout your organisation. Focus on making sure everyone is onboard and reward those who live the principles. From that point, Agile practices are far more likely to be successful.

Thanks for reading, all thoughts and comments welcome :)