For more than 30 years, I have been a leader applying leading edge ideas in software and system development. I recently retire from IBM, where I was a Distinguished Engineer and a member of the Rational CTO Council, and the Rational lead for Analytics and Optimization for Software and Systems. In that role, I am leading the application of predictive analytics to software and systems planning and development, as well as adapting lean techniques throughout the development lifecycle.

Before Rational was acquired by IBM, I served as lead engineer for Rational Services, and the developer of the Rational Unified Process extensions for system engineering. Before joining Rational, I was a project lead at TASC, a Defense and Intelligence contractor where I applied object technology and early versions of the Unified Process to the successful delivery of highly complex systems for the USAF SpaceCommand. Prior to joining TASC, I was in the division of IBM that launched the Risc System 6000. In that division, I held several roles including a graphics system architect, the 3D graphics development lead, the 3D graphics development manager, the graphics subsystem architecture manager, and the multimedia program manager. In that role I delivered the first distributed object-based subsystem in IBM. Also, I was a founding member of the OpenGL Architecture Review Board.

In addition to many articles, I am the author of two books: Object-Oriented Project Management with UML, published by John Wiley in 1998, and Software Leadership, published by Addison-Wesley in October, 2001.

I am a Cutter Consortium Senior Consultant. I received my Ph.D. in Mathematics from U Cal Berkeley.

My Core Principles

Over my career, I have come to believe in a set of core principles:

Embrace, not ignore or avoid the uncertainty of software development efforts. Dealing with the uncertainty entails applying Bayesian methods and Monte Carlo analytics.

Pick the right set of analytics. This is critical to success: “You can’t control what you don’t measure, and you shouldn’t measure what you don’t intend to measure.”

  • The right set of measures promote trust between the leadership and the staff,
  • The wrong measures not only breed mistrust but are a waste of time and money.

I believe these principles are structural and eternal. They apply across range of contexts for software development and help explain the success and failure of development methods such as agile and waterfall. They inform the successful application of lean and DevOps practices. The art and science of software management and leadership is to apply these principles in your context.