Tag Archives: agile management

The Importance of Making Problems Visible

Great, short, presentation webcast by Jason Yip showing the importance of making problems visible. Anyone interested in software development should watch this, and it is valuable for everyone else, also. Great visuals.

Related: Future Directions for Agile ManagementAgile Software Development SlideshowLeading Lean: Missed OpportunityInformation Technology and ManagementCurious Cat Micro-financiersposts on project managementToyota Institute for Managers

CMMI and Agile Development

CMMI or Agile: Why Not Embrace Both! is a new report that is worth reading.

All too often, CMMI has been applied rather than implemented. The standards-centric application of CMMI has contributed to some spectacular failures and losses of time and money. The key difference between applying and implementing CMMI is that applying usually appears as a superimposition (or overlay) of model practices onto existing activities with an expectation of producing the example work products found in the model, rather than seeking the natural products of the organization’s processes. This misplaced focus is often the by-product of an overly strong focus
on achieving a particular appraisal rating.

In contrast, implementing CMMI is using the model in the same way that engineers and architects use models: as a learning tool, a communication tool, and a means of organizing thoughts. The more implementation-oriented an organization is, the more improvement-centric it is; thus, the focus is on maturing and growing process capabilities rather than ratings.

CMMI and Agile can complement each other by creating synergies that benefit the organization using them. Agile methods provide software development how-to’s that are missing from CMMI best practices that work well—especially with small, co-located project teams. CMMI provides the systems engineering practices that help enable an Agile approach on large projects. CMMI also provides the process management and support practices that help deploy, sustain, and continuously improve the deployment of an Agile approach in any organization.

Related: Stretching Agile to fit CMMI Level 3Microsoft CMMIAgile Management

Management Improvement Carnival #47

Read the previous management carnivals. Also see the management Reddit for popular new blog posts to include in future carnivals.

  • The Decline and Fall of Agile by James Shore – “Without XP’s agile engineering practices, code quality and productivity asymptotically decreases over time. With them, productivity starts lower, but then it asymptotically increases.”
  • How Do You Measure Success? by Ron Pereira – “First of all, I believe many companies get caught measuring the wrong things… my favorite productivity metric is sales per employee. Of course some will think I’m advocating cutting heads in order to drive this metric up. I’m not.”
  • No Excuses by John Shook – “A culture of management seeking where to place the blame — the five whos — will absolutely prevent the flourishing of a culture that fosters ubiquitous use of the five whys”
  • Resource Planning by Jurgen Appelo – “Considering that task-switching is bad, the resource planner must seek to minimize the number of different activities per week, per person… Software developers themselves are allowed to reserve a number of academy days. These are days for self-development and training.”
  • The Deming Chain Reaction by John Dowd – “According to Deming, quality is not a state to be achieved in manufacturing, but is, rather, an ongoing company-wide effort at continual improvement.”
  • Continue reading

Agile PDSA

Dr. Deming encouraged the use of the Plan-Do-Study-Act cycle to improve. Agile Management encourages a similar mindset – to test out ideas in practice and adapt quickly. A key to both strategies is to quickly iterate over possible solutions. Tesco provides an example of this strategy:

This was our first opening since we took our 12 week pause, after we had opened 61 stores at breakneck speed. We used that time to reflect on what customers had told us they liked, and what they’d like to see improved – and then to improve the shopping trip for them.

For example, customers told us that they really liked our prepared meals, made fresh daily in our purpose-built kitchen, but they wanted a wider selection to choose from. So we’ve developed and introduced a number of new products for them.

Of course, you could argue that this is all a sign of weakness, that we had got things wrong. But that would be to misunderstand the way we do business.

Listening, and then acting on it, is in our view the way to build long-term relationships with customers. It means our shopping trip is always improving, and staying in tune with changing needs. It’s a simple win-win. Customers get a better and better shopping trip, and we become more successful.

At the time Tesco paused the expansion I mentioned it seemed to me they should have allowed more time for PDSA.

To me, it is enormously important to design management systems that support and encourage continual improvement. That is much more important than superior results today. Results today are also, important, but a choice between an inflexible system that produce good results today and a flexible system with results not quite as good is not a close choice. Good management improvement requires continual improvement and therefore systems must be designed to support and encourage continual improvement.

Related: Experiment Quickly and OftenI own Tesco stockmanagement improvement tipsTesco: Lean Provision

Future Directions for Agile Management

Agile management (agile software development specifically) is something that makes a big difference in my work life. David Anderson consistently provides great ideas on agile management and he does so again in this 90 minute presentation on the future directions for agile. As I learned about agile software development, what I saw was a great implementation of management improvement practices focused on software development that was very compatible with Deming’s management philosophy and lean thinking practices. The Agile manifesto:

Individuals and interactions over processes and tools
Working software over comprehensive documentation
Customer collaboration over contract negotiation
Responding to change over following a plan

The first line can seem to be at odds, but I think in practice it is not – though I admit it may seem that way based on the importance placed on process by Deming (I think you have to read on agile to understand why this is the case). For my use of agile software develop, a highlight of the most important ideas is:

  • Deliver working systems quickly (with limited features, add features based on user needs) – [management improvement practice: PDSA, pilot ideas on a small scale, go to the gemba (don’t sit in conference rooms talking about what might be an issue for the computer application you want to see in 6 months, create working systems and then continually improve it)]
  • Build systems that cope well with uncertainty and allow for constant continuous improvement of processes (with IT systems that can adjust as needed to changing business conditions and desires) – [continual improvement – what is good enough today is not good enough next year]

Important concepts addressed by agile management: highly collaborative, risk tolerance, systems thinking, customer interaction, craftsmanship ethic [joy in work], eliminate waste. Great quote from the webcast:

What we know about knowledge work, and software engineering, is that coordination cost grow non-linearly with batch size. We’ve known this since Greg Brooks published the Mythical Man Month, probably longer than that. So that is a key difference with manufacturing, coordination costs do not grow with batch size in manufacturing.

Related: Kanban In Software EngineeringManagement Science for Software EngineeringImproving Communicationwebcast of David Anderson talking about applying Agile and Deming’s ideas at MicrosoftWhat is Agile Software Development?

A Programmers Take on Agile Software Development

A Case for Agile: Benefits for a Programmer’s Career by Theodore Nguyen-Cao

Through agile development, I’ve been able to deliver working software time and time again. I’ve been exposed to all different aspects of the business. I’ve learn what I like and don’t like to do. I’ve learn what pieces of business I’m interested in and the pieces I don’t care much for. I’ve developed some really good working relationships. I’ve tackled some hard problems. I’ve learned to respond and adapt to the change and turmoil of a startup.

Most importantly, I still feel I’m growing as a developer. I honestly believe the best thing a developer can do in their career is to always be learning. Everything else will follow.

I am also a strong proponent of agile software development. Information Technology projects have a poor success rate. The best method, I have found, to provide better software solutions is agile development (and I find a grounding in management improvement techniques is useful – customer focus, process improvement, systems thinking, understanding variation, data driven management…). My experience is with custom application development (rather than developing Commercial Off The Shelf software – COTS) for which I think agile is a great fit.

Related: Joy in Work for ProgrammersAgile Software Development PresentationMetrics and Software DevelopmentManagement Science for Software EngineeringProgrammers at WorkJoel Management

Deming’s 14 Points (for software development)

Deming’s 14 points (for software development) by Jamie Dinkelacker (Geo/Maps Engineering Program Manager at Google Inc. Focus on lean principles and agile practices for software development):

W. Edwards Deming’s work on quality, while widely misinterpreted and misapplied in the USA, was nonetheless a watershed that Japanese companies, especially Toyota, took to heart…
Below are Deming’s 14 points accompanied by commentary related to software development.

Design quality in, don’t use inspection to find errors. Mistake proof the system.

In a fearful environment, workers do not operate in the organization’s best interest; instead their energies are by necessity focused on self-protection.

Mistakes typically come from bad systems not bad workers. Don’t exhort people to work harder or smarter; instead create a more intelligent workflow and system tailored tot he essential nature of software development as human collaboration (not just coordination) such that people can excel.

A good read. Also a good blog on management improvement ideas and software development (though not very active). See my Deming on Management resource where I try to explain what Dr. Deming actually said and meant and dispel some misconceptions.

Related: Dr. Deming’s 14 PointsDeming’s Ideas at Markey’s Audio VisualLean, Toyota and Deming for Software DevelopmentGoogle: Ten Golden Rules

Lean Software Development

I have posted on the topic of Lean Software Development previously.

Lean Software Development: A Field Guide – the first 3 chapters of this new book are available online [the broken link was removed]. Excellent book that I recommended for anyone interested in lean thinking ideas. Lean Software Development: An Agile Toolkit for Software Development Managers by Mary Poppendieck and Tom Poppendieck, 2003. Articles on lean programming by the Mary Poppendieck

David Carlton has an interesting post on this topic: lean software development.

I’m not sure what concrete effects it will have on my work in the short-term; for now, I’m going to continue reading about lean, waiting for concepts to sink in and crystallize. I imagine that I’ll return to this book in a couple of years and find specific inspirations in it, and indeed that it will have subconsciously inspired me in the interim.

Software development can be extremely complicated and can benefit greatly from making problems visible – jidoka. Inventory is not the key to hiding problems in software development. It might be in the “production of software” but so much software is “produced” and distributed over the internet without producing inventory etc. that the production step is not the main source of problems and longer (in the past boxed software had the same inventory problems other industries experience today). Yet all of us using software have many experiences with the problems users have with software (often on a daily basis). Lean thinking has a great deal to offer for those involved in software development.

By the way, if you are interested in lean application development and are looking for a job in the Washington DC area see, job announcement for a programmer (dead link removed), and maybe we can work together – John Hunter.

Related:

Agility vs. Six Sigma

My response to the agilemanagement list:

I agree with David Anderson [the broken link was removed], in this thread, as well as pretty much everything else actually. If I understand his writing correctly I am probably a bit more critical of how Six Sigma is actual practiced, but that is fairly minor difference of opinion.

I have posted a couple item on managing innovation

You manage processes, such as thinking up a new way to use computer technology, differently than you a process to manufacture tires. But the idea that you don’t manage and improve the process just because the process seems discontinuous is a mistake.

I think David is right to point to Clayton Christen’s work – people talking about managing innovation should read it. Others to read: Edward deBono (he especially has very defined processes to encourage innovative thinking) and Gary Hamel articles.

Previous post on Innovation in Organizations. Google also has good examples, on this topic:

Douglas Merrill, senior director, information technology at Google “Innovation doesn’t happen ‘on the way by,’ it must be design into everything we do,”

Continue reading

David Anderson CMMI Webcast Aug 18

CMMI Webcast Scheduled for August 18th [broken link removed]

David Anderson will present the Microsoft Solutions Framework for CMMI Process Improvement material live at 11am Pacific Daylight Time on August 18th. After the presentation he will answer questions in a chatroom session.

Microsoft Solutions Framework (MSF) for CMMI Process Improvement is a highly iterative, adaptive planning, agile software development process which meets the requirements for the Software Engineering Institute’s (SEI) Capability Maturity Model Integration (CMMI) level 3 and provides a smooth transition all the way to level 5. In this Webcast, David Anderson (PM for MSF for CMMI Process Improvement, author and award-winning blogger) will introduce this feature Visual Studio Team System. Immediately following the Webcast, there’ll be an online chat with David and other members of the MSF team.

Prevoius Curious Cat Management Improvement posts on David Anderson’s ideas: