Back in 2008 I took a Lean Manufacturing course as part of my MS in Engineering Management at the University of Missouri-Rolla. At the time I was working as a Software Engineer at Caterpillar's Advanced Engineering unit. My job was to take bleeding edge concepts related to machine and engine controls and rapid prototype them using embedded controllers and software. I typically had to juggle working on 3-5 projects at a time. Often requirements were very loose. In an effort to improve my workflow and become more efficient delivering solutions customers actually needed, I decided to take on the challenge of "translating" the well established Lean Manufacturing principles into the software world. Keep in mind that in 2008 Agile and Scrum were not part of the vocabulary of large companies such as Caterpillar. The old Waterfall method was king on software development. Meanwhile Lean Manufacturing was all around Caterpillar’s Production System (CPS). My presentation on Lean Software Development was something new to both my classmates and coworkers, but most concept were easy to grasp and my team put it into practice, helping us to deliver solutions on time, and above it prevented us wasting time on unneeded features. One success story always comes to mind: a customer sent in the requirements for a new fuel injection system. It required a time resolution of 8uS. Instead of developing the system right away, I instead performed an analysis and informed the customer: "We can deliver 7uS in 4months. But we can do 9uS in 1 week". The current microcontroller architecture was the limitation. To achieve better resolution we’d need to implement a new platform. The customer was ok with 9uS and very happy we had the system shipped in one week. I was happy I was not working on something that did not add value. Above is just one example of Lean thinking in practice. The most exciting application of the method was a couple years later. I was the software architect of Caterpillar’s first hybrid excavator, a VERY visible project. My team had to deliver the Energy Storage System. High management was about to inform the customer that it would be impossible to deliver software on time for the first machine key-on. I raised my hand and said “… I have a solution. Lets phase out our software deliveries. Our first delivery will be a safe-offline. By the time hydraulic check out is complete we’ll deliver version two.” I’m glad to see that lean / agile / scrum methods are now standard practices in software development in several companies, including Caterpillar.