Archive for the ‘lean’ Category

Services and Agility

Tuesday, September 21st, 2010

I’ve been given several opportunities lately to be thinking about the relationship among product development, agility, and services.  In a recent conversation regarding (of all things) how to sample work for artifacts in a CMMI for Services appraisal, it became clear that taking a services view of development actually makes a lot of things more obvious when it comes to where and how to make performance improvements.

Furthermore, the idea that product development can be modeled as the organization of particular services – such that the culmination of all the services results in a product – not only enhances the understanding and performance of the development flow, but it also creates a strong affinity to agile management and development values, principles and practices.  In fact, a service-oriented development flow is how Kanban views and manages development, and even shares many parallels with traditional services such as “cumulative” work and flow.  And, seeing development as a flow of services simplifies if not eliminates the endless catch-22 of dealing with planning, resource allocation and work volume.

In the video, I was at the tail end of a week-long exposure to a very demanding product development and services delivery context: aboard a pleasure cruise ship.  At this stage of our family’s development, pleasure cruising has emerged as our vacation of choice so this was my sixth cruise in over 10 years.  The first three cruises were with three different cruise line companies and the most recent three were with the same line.  What struck me most about the ship’s (and this cruise company’s) operations were its flexibility and responsiveness to change.

Despite many constraints, within those constraints the ship was autonomous, and, the various departments within the ship had degrees of autonomy.  Beyond autonomy, there were clear components run centrally and just as clearly there were components that were decentralized.  But it all worked as a single service: the ship.  Within nearly every service were products to be developed, whether produced from scratch or recreated afresh over and over again.  Yet again, the massive, highly complex service system operated in an agile way by nearly any measure of ‘agility’ in nearly every facet of how it ran.

A few days after my return from the ship I had the opportunity to teach Introduction to CMMI.  This offering was to one of my clients and a guest.  All participants were sharp and involved – which isn’t always the case with such classes.  The class was special in that I was experimenting with new course material for the SEI in which I was delivering content from the CMMI for Development constellation following content from the CMMI for Services constellation.  This experience reinforced for me and exposed the participants to the strong relationship between Services and Development, the strong benefits of viewing development as a service (from both operational and improvement perspectives), and, helped my client (who uses Scrum, Kanban, and traditional development in various parts throughout the company) see common threads to help improve performance irrespective of how they approach management and development.

The learning for agile and CMMI cooperation may very well be found in services.  Think about it.  Now, class, discuss. ;-)

Truly Agile CMMI

Thursday, May 27th, 2010

The team room of a truly lean/agile company doing CMMI in a way that is natural to them and authentic.  They are doing CMMI in an agile way.  They know no other way to do it.  They went from "what is CMMI?" to ML2 in 14 weeks.  Their commitment to lean gave them an edge many companies wish they had: a culture of value and excellence.

What does "truly agile CMMI" look like?

Well, it looks like a commitment to adding value, for one.  It looks like delivering incrementally and using each incremental deliverable to iterate, learn, reflect, and continuously integrate into the whole.

It looks like questioning everything that you don’t understand until you do, and then basing decisions on what will provide the most benefit without adding unnecessary features, functions, or work.  It also looks like being true to your collaborative nature, to your culture of learning, to your behaviors of communication and transparency.  It looks like using measures to know where you are and how well you’re doing.  It looks like a commitment to to doing nothing for the sake of doing it — either it has a benefit that you can reap, or it’s not done.  It looks like building practices into what you do in a way that eliminates the need for waste-riddled, ceremonial audits later.

When every effort has a purpose that you can tie to a business benefit; when every task delivers something someone needs or wants; when you create a system that people want and use, that you don’t have to pull teeth to get people to adopt and provide you feedback on; that not only flows with and follows in-line with your natural ways of working but promotes new ideas and ways of changing your work regularly and distributing those ideas to everyone who wants to know…. when not a single result of some effort exists whose only reason to exist is to provide evidence for an appraisal….

*THAT’S* what truly agile CMMI looks like.

It’s not just in the processes that result from using CMMI, but also in the manner in which those processes were created.

You don’t "do CMMI" in an agile way when you’re a stogy traditional-oriented organization, and you don’t achieve an agile CMMI when your implementation approach is traditional.  If you’re an agile organization, incorporate CMMI in an agile way.  Don’t abandon agile values and principles to implement CMMI.  Exploit your agile values and principles to implement CMMI in a kick-ass way.

CMMI in an agile way, an agile approach to CMMI, and a seamless blending of CMMI with agile approaches doesn’t happen (easily) if your approach to AgileCMMI isn’t lean and agile.

Blaming CMMI is just another symptom … of LCPBCs

Sunday, April 4th, 2010

Stop blaming CMMI for bad processes.  Stop blaming CMMI for not getting real value from performance improvement efforts.  Used correctly, CMMI fixes processes, doesn’t make bad processes.  Bad processes are a symptom of using CMMI incorrectly and blaming CMMI is to run away from the true issues.  The true issues are that the organization/company doesn’t have a culture to support high performance results long before anyone thought to use CMMI.

This is most typical of level-chasing pathological box-checkers who want ratings at any expense to effectiveness, morale or efficiency.

You can always tell these types of organizations from those who truly want to improve.  Level-chasing pathological box-checkers (LCPBCs) don’t know what their own processes are, and when they start to look they don’t like what they see but refuse to do anything progressive about their ineffective, inefficient, and otherwise broken processes.  LCPBCs often rule by fear in one form or another; they don’t practice TQM, don’t employ Lean principles, don’t value when people challenge the status quo, don’t value the expertise of people not in powerful positions, and don’t empower their people to make decisions or to take responsibility for the entirety of the health and well-being of the organization.  LCPBCs are also easily picked out of a crowd by their belief that you can improve performance without changing anything difficult and by limiting whatever changes might happen to the technical staff alone.  You’ll often find them hunting for “CMMI in a box” (or even “agile in a box”) and they’re looking to do it cheap, fast, and start “right now!”.

True, that some executives are LCPBCs because they don’t know any better, but there’s hope for those executives who are interested in making informed decisions.  Others are doomed to low returns and continued recurring process (and appraisal) costs.  Slapping CMMI on top of such a discordant, caustic, corroded, and sick culture will only make things worse.  And, blaming CMMI for failures to produce advertised outcomes, or for costing time and money and adding no value is just another symptom of the problems that existed in such organizations before CMMI was ever introduced.

Blaming CMMI is just the latest cop-out excuse in what’s likely a long list of excuses for the organization’s failures to materialize success –
It’s not CMMI … it’s immature, unreliable, culturally caustic organizations being exposed by the dust the CMMI stirs up.

Next time: How to not be a LCPBC: Making the marriage of CMMI and Agile a no-brainer.