Lots of people have been talking about Lean lately. Not lean, but Lean. As the buzzword de jour in the software community, there is understandably some confusion about what exactly Lean ( and Lean Software Development ) is. Is it a new process, a la RUP, XP or Scrum? Is is a new type of process a la iterative, agile or waterfall? Is it something different entirely?Since I’m a Lean proponent, not just in development but in my life, I typically tell people that it’s really not a development process at all. Rather, it’s an ideology and that it can be applied to any number situations and scenarios. From that point of view, Lean can be applied to any development process you use. Lean is based on a few underlying principles like eliminating waste, framing and continuous improvement. It’s not a set of steps to follow in order to accomplish some goal. Think of it as existing at a higher level, above any process that can be specifically applied to a given situation. The key to Lean is understanding and internalizing it’s principles rather than just blinding copying them and praying for the best. Hearing that Lean worked at some other place and then ordering your managers / developers to adopt it is a recipe for failure. A good parallel for this is the way that Apple approaches design & usability. They internalize it. They understand it. Other companies see the end result, copy it and hope to be as successful. Copying skips understanding. Like most things, without understanding Lean, you’ll end up with another in a long line of stories about being ‘burnt’ by the latest and greatest buzzword.