As architects become more senior, we are expected to contribute to growing the product, the organization, and the people. I gave a talk at the OOP Conference for Software Architecture in February 2021 that explores three roles of an architect that help them meet these expectations: architect as leader, as mentor, as coach. This session offered practical tools, methods, and frameworks that help both experienced and aspiring architects succeed in each of these roles. The slides are available here.
Some architecture decisions are more consequential and higher impact than others, and need to be preserved. We work on systems where the architecture is too large for each person to hold all the details in their head. New team members struggle to understand what they need to know about the architecture. Current team members have challenges knowing what architecture decisions were made, by whom, and for what reason. Architecture Decision Records (ADRs) are a useful, agile, lightweight approach to tackling these, and other challenges.
This is the abstract from a workshop I ran at the OOP Conference for Software Architecture in February 2021. This is an updated version of workshops I have delivered on the same topic. The slides are available here.
Are you working on a system where the architecture is too large for each person on the team to hold all the details in their head for all time? Do new team members struggle to understand what they need to know about the architecture? Do current team members have challenges in knowing what architecture decisions were made, by whom, and for what reason? Some architecture decisions are more consequential and higher impact than others, and need to be preserved.
The right level of architecture documentation supports agility. Architecture Decision Records (ADRs) are a useful, lightweight approach for this. Often no more than a page in length, they capture the key decisions that we need to remember. This hands-on session shares experiences with ADRs, giving you a set of tools to be successful in your team.
Through this interactive session we will explore these questions together:
- What are Architecture Decision Records (ADRs) and why are they useful?
- How do ADRs promote or help agility?
- What are the motivations that led to trying ADRs for preserving decisions?
- What are some scenarios and examples where ADRs are helpful?
- What kinds of decisions should we record with ADRs, and why?
- What are some of the cultural challenges associated with using ADRs, and how do we address them?
This session provides participants with hands-on practice of creating and reviewing ADRs. The session draws from experiences with multiple large-scale, global organisations and system architectures, and builds on established work with ADRs from other authors and practitioners.
The Cynefin sensemaking framework (created by Dave Snowden of Cognitive Edge) has grown in popularity in the agile community in recent years. Used to its full potential, sensemaking and the Cynefin framework are powerful and effective approaches to informing action in complex, dynamic, and uncertain situations. Tony Quinlan and I led a workshop session at the XP2020 conference where we introduced a practical, effective approach based on our work applying complexity techniques in large global technology organisations.
The slides from our workshop are available here. This workshop is based on years of experience with dozens of sensemaking projects. We covered the fundamentals of using micronarrative-based sensemaking and the Cynefin framework to foster transformation, resilience, and agility. This session focused on use of sensemkaing to support transformations. We covered sensemaking in organizaitons, the Cynefin framework, how to determine appropriate action in a given context, how to design experiments for navigating complex situations, how to tailor a sensemaking framework for a particular purpose, and how to integrate sensemaking into your organizaiton.
Software product development organizations operate in an environment of ever-increasing volatility, uncertainty, complexity, and ambiguity. The pace of change is accelerating, business and technology complexity is growing, and organizations are struggling to keep pace. The software development industry has a $300 billion productivity problem, according to one study. Value is not flowing as it should. Flow-based software development is part of the continued evolution of contemporary software development approaches contributing to addressing this problem. It builds on agile and lean software development approaches and incorporates lessons from Deming’s management method, the Toyota Production System, Lean Product Development, Theory of Constraints, Operations Management, and other influences. Flow-based development is foundational to modern systems approaches, including DevOps, Continuous Delivery, Site Reliability Engineering, and more. Creating and sustaining flow in organizations is a challenging problem. Drawing on insights developed over many years working with multiple global product development organizations, this session presents a framework for establishing, understanding, and sustaining flow in organizations.
I presented this session at the XP2020 conference. The slides are available here.
This session addressed the following questions:
- What is flow?
- What is the relationship between flow, lean, and agile?
- Why do organizations adopt flow?
- Where to get started?
- What contributes to flow happening?
- How do we measure flow?
- What makes flow difficult to achieve?
- How can organizations overcome these impediments to flow?
- What is the role of culture in determining how effective flow can be?
Agility implies responding to change appropriately. Every response is a decision. Sometimes we choose among several competing options, sometimes not. Some decisions demand immediate action, others require us to step back and think and weigh our options. There are many decision models that can support how we respond. Often, our decisions are part of a series of interrelated decisions that influence each other. From this perspective, the agility of an organization can be viewed as an outcome of decisions made over time.
Rebecca Wirfs-Brock and I held a workshop session at XP2020 on this topic. In this workshop session, we discuss how to apply three specific decision styles and models that are useful in different circumstances.
Some of the models we use in this workshop come from the field of Naturalistic Decision Making (NDM), which has the goal of studying how people actually make decisions in a variety of real-world settings. Settings in which NDM is appropriate are characterized by time pressure, high stakes, experienced decision makers, inadequate information, ill-defined goals, poorly defined procedures, context, dynamic conditions, and team coordination. In this session we explore NDM in the context of organization agility.
Learning outcomes from the workshop include:
- Learning about Decision Models and how they apply to Agile Software Development and Organization Agility.
- Understanding of how to apply and combine different decision models in different contexts. Specifically, we explore analytical decision making, naturalistic decision making, and recognition-primed decision models.
- Understand the role of heuristics and experiments in making decisions and taking action.
- Understand the role of expertise and how it influences decision and action in organizations.
- Understand the circumstances under which decisions are best taken by individuals, and those where decisions are best taken in groups.
- Understand how decisions influence each other and compound over time.
- Approaches for when and how to record decisions.
For my PhD research I studied several large software product development organizations to get a better understanding flow and impediments. Flow-based development is a rich and growing field with many concepts; the specific focus for this study is impediments to flow. This study takes the perspective that organizations are complex adaptive systems. This research uses sensemaking to get a richer, more-informed understanding of flow, impediments, and the context and culture of the organizations that are experiencing impediments to flow. The organizations that are part of this study are all large software product development organizations. The focus of this study, then, narrows to managing impediments to flow in large software product development organizations, using a sensemaking and complexity perspective.
More details, including a link to my thesis, can be found here.
Rebecca Wirfs-Brock and I developed a workshop on decision making in software architecture. This is an extract from a paper from the IEEE International Conference on Software Architecture (ICSA 2019) that describes the workshop. The final version is in the ICSA proceedings. A preprint of the full paper is available here.
First, we shape our architecture. Then, our architecture shapes us. As architects we bring part of ourselves to the systems we work with. We evolve with our architectures. In this tutorial we consider the metaphor of “terroir” to understand architectures and their sense of place. Terroir comes from the French word used to describe the set of all environmental factors that affect the observable characteristics of an organism, e.g., the unique set of contextual characteristics of place that influence food crops, coffee, tea, or wine. So too in systems, architectures are uniquely shaped by the culture and context of a place. Factors include people, organization, culture, technology, and tenets shared among the architects and makers. Understanding an architecture is a first step towards evaluating it. The set of concepts and practical tools covered in this tutorial are well suited to being used in conducting architecture analyses and reviews and integrate with any other processes an organization might be using.
Structure and Outline
- Part 1: Making sense of system architectures. The tutorial begins by introducing some concepts that help people to make sense of a system architecture. The outcome includes insight not just into the architecture itself, but also the wider context, including culture, decision-making processes, attitudes, constraints, and assumptions that contribute to the architecture. We will demonstrate how to see and interpret patterns to understand architecture context and understand the decision-making landscape of which architects are part.
- Part 2: Decision models for architects. Having established a sense of place for the architecture, we will move into discussing decision models. Different kinds of decision are necessary to evolve our architectures. Sometimes we need to make high-stakes decisions under conditions of uncertainty, with insufficient information, and too little time. Other times we need to balance deep thought, collaboration, and trade-offs among different architecture qualities.
- Part 3: Taking action to evolve our architectures in conditions of uncertainty. Once we have a sense of place, and we have decided how we will make decisions, we will move into action. In this tutorial we focus on making decisions and acting in conditions of volatility, uncertainty, complexity, and ambiguity. We explore the roles of heuristics and experimentation for making decisions under such conditions, and how this influences the evolution and evolve-ability of our architectures.
- Part 4: Practical considerations for the dimension of time in architecture decisions. In this section we will look at the temporal dimensions of architecture decisions. We will look at the time factors that affect our architectures. These include when decisions are made, the cadence of decision making, the impact of decisions over time, and challenges around ensuring follow-through and consistency of decisions over time.
- Part 5: Summary and closing activities. Summary of concepts, decision models and tools; Q&A. In this section we spend time to ensure participants have at least one or two practical things they are ready to try when they get back to the office.
This is the abstract and recommendations from a paper on understanding the context in which architects make decisions that I co-wrote with Rebecca Wirfs-Brock. We presented the paper at the 2018 European Conference on Software Architecture (ECSA 2018) in Madrid. The full paper is available in the ECSA 2019 proceedings, published by Springer. A preprint version is available here.
Many organizations struggle with efficient architecture decision-making approaches. Often, the decision-making approaches are not articulated or understood. This problem is particularly evident in large, globally distributed organizations with multiple large products and systems. The significant architecture decisions of a system are a critical organization knowledge asset, as well as a determinant of success. However, the environment in which decisions get made, recorded, and followed up on often confounds rather than helps articulation and execution of architecture decisions. This paper looks at aspects of architecture decision-making, drawing from an industry-based case study. The data represents findings from a qualitative case study involving a survey and three focus groups across multiple organizations in a global technology company. Architects in this organization are responsible for multiple products and systems, where individual products can include up to 50+ teams. The impact is not just on others in the system; architecture decisions also impact other decisions and other architects. The findings suggest recommendations for organizations to improve how they make and manage architecture decisions. In particular, this paper notes the relevance of group decision-making, decision scope, and social factors such as trust in effective architecture decision-making.
- Consider the space-time separation of teams, and how that impacts architecture de- cisions. When dealing with teams who are separated in space (through multiple ge- ographies) and time (through multiple time zones), make an effort to compartmental- ize the scope of responsibility of teams such that coherent architecture decisions can be made in each location.
- Establish clear decision-making boundaries. Articulate who is responsible for which type of decisions. This can be based on scope of decision (product, system, compo- nent, etc.), nature of decision (product, technology, etc.), or something else.
- If your organization is using an agile development approach, then take the time to articulate how architecture fits.
- Understand who is impacted by decisions made by architects. Establish a feedback loop so that architects understand that impact in a timely manner.
- Start with why. Architects in this study expressed a much higher degree of success in decision adoption when other people understood why a decision is being taken. This is an important part of the context of architecture decisions.
- Take the time to foster trust among architects and those impacted by decisions.
- Consider how architecture decisions are retained and communicated. We see a need for retaining and communicating architecture decisions and their rationale, espe- cially when decisions have broad impact. Documenting decisions, to be effective, should fit into existing processes.
- Some decisions are necessarily made for short-term expediency, e.g. to address an immediate customer need. Perhaps there needs to be some mechanism to flag these types of decisions and manage them, perhaps in a product debt backlog (especially those that will incur architecture debt) for periodic review.
This is the abstract from a paper I wrote about my experiences using sensemaking in large-scale transformation efforts. I presented this at the 49th Hawaii International Conference on System Sciences (HICSS 2016). The final paper is available as part of the HICSS proceedings. A pre-print is available here.
For organizations undergoing agile and lean transformation, it can be difficult to get meaningful, actionable insights into progress and impediments. Teams and organizations are best understood as complex adaptive human systems. Understanding what is happening in such systems requires approaches grounded in the complexity sciences and social sciences. This paper describes an approach using complexity science and sensemaking that helps an organization understand its culture, how it is progressing with its strategic initiatives, and the types of impediments that are holding it back. It provides a means of qualitative and quantitative analysis that helps teams and organizations improve. This paper also correlates the experiences of the people in the organization to its goals of being a more agile organization.
This is the abstract and summary of lessons learned from an experience report I wrote and presented at the Agile 2015 conference in Washington DC. The full paper is available here. Among other things, the paper talks about using A3 problem solving, Cynefin, and the Containers, Differences, Exchanges model from Human Systems Dynamics in the context of portfolio management in large organizations.
Working in a multi-team, multi-program, multi-product environment brings several challenges. One of those is providing a smooth flow of work to teams, and incorporating their feedback, while staying responsive to the needs of the business in a changing environment. Managing the portfolio backlog is a critical piece of the solution. This Experience Report documents several years’ experience working in such environments. The focus of this Experience Report is specifically on managing the portfolio backlog, not the full scope of what could be considered under a portfolio management strategy and implementation. We have found that getting the portfolio backlog management strategy right is a key element in the success of the overall portfolio management approach.
Summary of Lessons Learned
This section summarizes some of the key lessons learned in managing portfolio backlogs. Some general lessons related to solving problems in organizations include:
- Understanding the nature of the problem helps us to take appropriate action to solve the problem. The Cynefin framework helps with this.
- Make sure you are solving actual problems and causes, not just symptoms. A3 problem solving helps with this.
- Understand how to create a balance between agility, self-organization and coherence. HSD and the CDE model helps with this.
- Focus on the end-to-end flow of value through your organization, and on actively removing anything that impedes the flow of work. Lean thinking helps with this.
- Understand what success and failure could look like before running your experiments. This will help you pay beselective about the patterns you pay attention to.
Some specific lessons related to managing portfolio backlogs in large organizations include:
- Define the focus of your portfolio. In general, it is good practice to base the portfolio structure on your product line rather than organization structure. The former is what your customers care about; the latter more temporal.
- Understand what content goes on the portfolio backlog. Define different types of items, e.g., features, initiatives, architecture items, etc.
- Focus on the flow of work from portfolio to teams. The portfolio backlog management approach is an enabler of flow. Define policies for centralized portfolio-level decisions and localized program- and team-level decisions.
- Set up a portfolio backlog management meeting at a regular cadence with the right participants. Create a Definition of Ready for portfolio items. Focus the meeting on feedback from the development teams, and on moving portfolio backlog items to a ‘ready’ state. Do not let it become a status or strategy planning meeting.
- Create conditions that encourage a strong relationship between product managers, engineering leaders and architects. Together they bring multiple important perspectives to creating the portfolio backlog items. Consider also adding user experience design leaders to this mix, depending on the nature of your products.
Finally, this is a process of continuous experimentation and improvement. While some things can ultimately be moved to the obvious domain of best practices, or the complicated domain of good practices, we still operate within an ever-changing and complex environment that requires continuous awareness, experimentation, learning and adaptation. We continue to experiment and make improvements.
This abstract is from a paper I co-wrote with Kieran Conboy for the 37th International Conference on Software Engineering (ICSE 2015) in Firenze, Italy. The final paper is available in the conference proceedings. A pre-print version is available here.
Contemporary lean thinking, especially in knowledge work areas like software engineering, begins with understanding flow. Architecture plays a vital role in enabling the flow of value in software engineering teams and organizations. To date there has been little research in understanding impediments to flow in software engineering organizations. A focus on enabling flow through removing impediments is a useful perspective in creating a more agile, lean thinking software engineering organization. Particularly so when supported by appropriate metrics. This paper presents a case study of how architecture-related impediments impact the flow of work in software engineering teams and organizations. The key contributions of this paper are centered on the concept of flow and impediments in modern software engineering, and its relationship with architecture. We develop an understanding of how a focus on flow and removing impediments, supported by appropriate metrics, is helpful in identifying architecture-related challenges . Drawing on research of one company’s practices the paper presents an example of a scenario where flow analysis using specific metrics reveals architecture-related impediments and shows how addressing these impediments improves effectiveness and productivity in ways that would not otherwise have been revealed.
This is the abstract and conclusions from a paper I presented at Agile 2014. The full text is here.
When adopting agile and lean approaches in our company, one goal for teams and organizations is to achieve a smooth end-to-end flow of work through the system. This paper presents a useful set of metrics that reveal how work is flowing. It describes four metrics we find useful: Cumulative Flow, Throughput Analysis combined with Demand Analysis, Cycle Time and Lead Time.
These metrics help you understand Flow in your teams and organizations. In particular:
- CFDs give deeper insight into what’s happening in queues or workflow states, and help diagnose problems.
- Throughput Analysis shows how work is flowing through our system over time. It is even more useful when combined with a Demand Analysis that shows the proportion of work flowing through the systemthat is Value Demand versus Failure Demand.
- Cycle Time analysis shows how long it takes for work items to pass through one or a subset of workflowstates. This enables teams to make predictions about how long it takes to process planned work items.
- Lead Time analysis shows how long it takes for work items to pass through the entire organization. This enables the organization to make predictions about how long it will take to process requests. We generally use Lead Time to understand the time it takes work to pass through all states, from the moment there is arequest or idea, to the moment the work is complete and in the hands of customers.
- All these metrics can be used to indicate the presence of impediments to Flow in your system. The combination of these metrics offers good insight into what’s happening in an organization. They provide insight and visibility on status, and inform forecasting around when specific content might be delivered.
This is the abstract and conclusions from a short paper I wrote and presented at the 15th International Conference on Agile Software Development (XP 2014) in Rome, Italy. A preprint version of the full paper is available here.
Teams and organizations are complex adaptive systems. Self- organization in complex adaptive systems evolves through a set of Simple Rules. Self-organization is a core tenet of agile teams. Self-organization does not mean everyone gets to do whatever they want to do. Team members create contracts with each other. These contracts create boundaries, or containers, within which self-organization can occur. Teams also create contracts with other teams, the wider organization and other stakeholders. The contracts are both implicit and explicit. Social contracts in complex adaptive systems are more effective if they are based on Simple Rules. Social Contract Theory acts as a lens through which we can better understand these social contracts in agile teams. This paper represents ongoing research that examines the role of Simple Rules and Social Contract Theory in fostering self-organization in agile development teams. The paper discusses four examples of social contracts in agile teams: definition of done, definition of ready, working agreements, and retrospectives.
This paper described the connection between Social Contract Theory and agile teams, viewing agile teams as complex adaptive systems. The field of Human Systems Dynamics provides a suitable lens through which to view teams and organizations as complex adaptive social systems, and defines necessary conditions for self- organization using Containers, Differences and Exchanges. The social contracts in agile teams and organizations are based on the Simple Rules that govern emergence and self-organization.
Simple Rules support coherent behaviors in a system. Definition of done, definition of ready, and working agreements are all examples of social contracts, created using Simple Rules, in agile teams and organizations. In addition, there are examples of social contracts to be found in retrospectives, including the prime directive, second directive and ground rules. These Simple Rules and Social Contracts support emergent behaviors and self-organization.
Teams own their own Simple Rules. As teams adapt their Simple Rules, new patterns are formed in the system. These patterns are governed by the social contracts created by the Simple Rules. Violating the Simple Rules creates a tension in the system that can be resolved by the team enforcing the rules or altering the rules (an Exchange intervention), or by the team membership changing (a Container intervention).
Social Contracts exist within agile teams, between agile teams, between agile teams and management, and within management teams.
Good research is critical to building the body of knowledge of software engineering, and understanding the principles on which our industry is built. Even more, without the solid foundation of theory that comes from research, it is difficult to scale the practices we use in industry beyond a limited context. Lero, the Irish Software Engineering Research Centre, hosted an Industry Research Day today, to highlight and share some of the great software engineering research work that goes on at the Centre.
There are some great talks from partner companies including IBM, Intel, and St. James’s Hospital, Dublin. There are keynotes by Máire Geoghegan-Quinn, the current European European Commissioner for Research, Innovation and Science, and Seán Sherlock, the current Minister of State for Research and Innovation. It is great to see the richness and variety of software engineering research going on in Ireland, and the support available at both an EU and national government level.
My talk is a short summary of my ongoing PhD research work. I talk about learning and feedback cycles, learning to see impediments to flow, and some examples of how to see impediments in your team and organisation. I also talked about some preliminary research results, including how to tell who is really influencing flow and impediments in your organisation, what reaction time can tell us about threats and opportunities, and how to empower teams and engage management through an impediment removal process.
Slides from my talk are available here:
I’ll be speaking at RallyON Europe this September on the topic of Portfolio Management and Organization Flow.
Complexity of product development increases as we move from a single team or product focus to a cross-organisation portfolio focus. Organisation Flow is about achieving the Lean concept of flow at an organisation level, not just at the level of a single product or product line.
This session will look at an approach to portfolio backlog management, and describe how to manage the flow of work through a portfolio of multiple products delivered by 50 teams in 6 locations across the US, Europe, India and China.
We will include examples of some core metrics that help understand throughput and flow in the organisation. These metrics tell a story about what is happening in the organisation. Lessons from these stories include understanding impediments to flow, and understanding who and what in the organisation is influencing flow.
I did an interview last week with Hannah Shain from Rally. The recording from the interview is here:
There’s a great lineup of content for the conference. If you’re in London I hope to see you there!
Update: Here is the slide deck I used at the conference:
This is the abstract from a short paper I write for the Managing Technical Debt workshop at the International Conference on Software Engineering (ICSE 2013) in San Francisco. A preprint of the paper is available here.
Understanding the impact of technical debt is critical to understanding a team’s velocity. For organizations with multiple teams and products, the impact of technical debt combines non-linearly to impact the organization’s velocity. We can think of the capacity of a team as a portfolio. Not all of that capacity can be invested in new features or defect fixing, without incurring negative consequences. A portion of the team’s capacity needs to be invested in the ongoing management and reduction of technical debt. This paper describes a simple technique for visualizing, quantifying and tracking a team’s technical debt as a portion of their overall capacity investment. The knowledge and insights gained through this technique help with better capacity planning, improved forecasting, and helps to justify the business case for investing in managing and reducing technical debt.
This paper described a technique for considering the capacity of your team as an investment portfolio. Investing in technical debt management and reduction needs to be a part of a healthy portfolio. If neglected, a team’s Technical debt will mount over time and impact their feature velocity. Consider the different ways a team could invest its time as Real Options. Make investments in debt reduction explicit and visible, and track actual investments at regular periods. Taken to an organization level, the organization needs to be ware of the amount of technical debt it has, and the overall strategy for investing in managing and reducing that debt.
The topic of my talk was Lean Startup in large organizations, and specifically talking about lessons learned from applying Lean Product Development and Lean Startup principles at Cisco.
The three specific lessons I talked about are:
- Learning to manage batch sizes and limit Work in Process (WIP)
- Customer Development
- Learning to see and manage waste
The slide deck is available via Slideshare:
As of May 2012, the Lean Software and Systems Society has officially re-branded as the Lean Systems Society. As part of the launch, a number of founding Fellows have been named. I am honored and delighted to have been invited to be a founding Fellow of the Lean Systems Society.
The purpose of the Lean Systems Society is:
“to improve the world by improving its systems. The Society organization will be modeled on the United Kingdom’s Royal Society and its “Fellowship of the world’s most eminent scientists.” The Royal Society was created to actively encourage thought leadership in the sciences by honoring original thinkers as Fellows, and encouraging their collaboration and debate. It has succeeded in this mission for over 300 years, and is an ideal model to emulate.“
The Lean Systems Society Credo
From the Lean Systems Society Web site:
“The Lean Systems Society believes that excellence in managing complexity requires accepting that complexity and uncertainty are natural to social systems and knowledge work. Effective systems must produce both better economic and sociological outcomes. Their development requires a holistic approach that incorporates the human condition. The Society is committed to exploring valuable ideas from all disciplines, and fostering a community that derives solutions from a common set of values and principles, while embracing specific context and avoiding dogma.“
Fellowship of the Lean Systems Society
You can see the full list of current LSS Fellows at the LSS site. As of May 2012, the founding fellows are:
|David J. Anderson||Jeff Anderson||Markus Andrezak|
|Jim Benson||Barry Boehm||Bjarte Bognes|
|Bob Charette||Alan Chedalawada||Steve Denning|
|Israel Gat||Hillel Glazer||Siddharta Govindaraj|
|Russell Healy||Chris Hefley||Richard Hensley|
|Curtis Hibbs||Kenji Hiranabe||Greg Howell|
|David Joyce||Michael Kennedy||Liz Keogh|
|Corey Ladas||Janice Linden-Reed||Hal Macomber|
|Ryan Martens||Peter Middleton||Benjamin Mitchell|
|Frode Odegard||Greg Parnell||Ken Power ( me!! 🙂 )|
|Don Reinertsen||Chet Richards||Karl Scotland|
|Alan Shalloway||Sarah Sheard||Chris Shinkle|
|David Snowden||James Sutton||Jean Tabaka|
|Richard Turner||Alisson Vale||Yuval Yeret|
|Greg Yezersky||Jason Yip|
The Fellowship was officially launched at the LSSC 2012 conference in Boston.
Looking to the Future
I’m looking forward to continuing to contribute in whatever way I can to the Lean community, and to helping the Lean Systems Society to grow and flourish. The Society’s purpose of “improving the world by improving its systems” is a stirring and timely call to action for all of us.
What is Lean Coffee?
Jim Benson and Jeremy Lightsmith founded the Lean Coffee movement in Seattle in 2009. Since then, Lean Coffee events have sprung up around the world. The basic idea is for a group of people to get together to discuss topics around which they share a common interest, specifically around agile, lean, kanban, lean startup, etc. There is also an OpenCoffee movement, founded by Saul Klein in 2007. The intent behind OpenCoffee is to provide an open forum for investors, entrepreneurs and developers to come together, meet, discuss ideas, and find opportunities to work together.
The Lean Coffee format is essentially an approach to facilitating learning and collaboration through group discussions. The ‘Lean’ part of the name has its roots in Lean Thinking, and related areas of Lean Production, Lean Software, Lean Startup, etc. The ‘Coffee’ part of the name obviously comes from that nice drink that some of us are partial to. Meetups typically take place in the morning, at a local coffee house, at the same time and place each week.
Lean Coffee events are increasingly becoming a fixture at many conferences, in a similar way that Open Space has. We had a great Lean Coffee event at LESS2011 in Stockholm last year.
How it works
The Lean Coffee format has a lot in common with Open Space, particularly in the sense that you are asking people to move away from an agenda-driven gathering to a more open, collaborative, dynamic, emergent type of gathering.
- Everyone offers topics they are interested in discussing by writing them on index cards (or sticky notes).
- Everyone presents his or her topic as an Elevator Pitch (max 1 minute per topic).
- Use dot voting to vote on each of the topics. Each person gets two votes. You can only vote once per topic.
- Prepare three columns on a table or wall. Call them “Planned”, “In Progress” and “Done”. Add all topics to the “Planned” column, with those that received the highest votes at the top.
- Discuss each topic in turn. Move the index card for the topic into the “In Progress” column. Initially, ask the proposer to explain the topic, then go round the table to give an opportunity for everyone to provide an initial comment, then open discussion.
- When the topic is done, move on to the next one. The topic proposer decides when the topic is done, and moves the index card to the “Done” column. If someone disagrees, then s/he can raise a new topic. Expect to discuss 3-4 topics over the space of an hour or so.
- Consider time boxing each topic to 15 minutes max.
- At the end of the overall Lean Coffee session, run a quick retrospective. What did you like? What didn’t you like? What are ideas for improvement?
As a variation, particularly if you have a large group, consider splitting into sub-groups if people are particularly passionate about specific topics. Then get back together after the topic discussion to present highlights to, and get feedback from, the wider group.
Lean Coffee at work
The idea and format for Lean Coffee is very simple and effective. It can be used in work too. For example, consider hosting a Lean Coffee event every week in your office. It can be a great way to share experiences and challenges across teams and gather interested people who don’t normally get to discuss these topics together.
If you find your retrospectives are becoming routine, then this is a good way to break out of the rut. There is no leader or facilitator required. The team can self-organize a Lean Coffee style event without any preparation. The team decides which topics to discuss, and how long to spend on each topic.
The only prerequisites are a set of index cards or sticky notes, a set of Sharpies, and some interested and willing people.
Some sites for Lean Coffee Meetups around the world:
- Seattle Lean Coffee. http://seattle.leancoffee.org/
- Lean Coffee San Francisco. http://www.meetup.com/Lean-Coffee/
- Lean Coffee Sydney. http://www.meetup.com/Sydney-Lean-Coffee/
- Lean Coffee Toronto. http://www.leancoffeeto.com/
Writings about Lean Coffee
- Jim Benson. “Seattle Lean Coffee Kicks Off!”. Available at http://ourfounder.typepad.com/leblog/2010/01/seattle-lean-coffee-kicks-off.html
- Running a Lean Coffee. Available at http://wiki.limitedwipsociety.org/display/consortwiki/Running+a+Lean+Coffee
- Adam Yuret. “Seattle Lean Coffee Could be Anywhere”. Available at http://contextdrivenagility.com/2011/08/04/seattle-lean-coffee-could-be-anywhere/
This is the abstract from a paper I co-wrote with Kieran Conboy and Meghan Drury. It was published in the June 2012 issue of Journal of Systems and Software. The full paper is available from Elsevier.
Drury, M., Conboy, K., and Power, K. (2012). “Obstacles to decision making in Agile software development teams.” Journal of Systems and Software, 85(6), 1239-1254.
The obstacles facing decision making in Agile development are critical yet poorly understood. This research examines decisions made across four stages of the iteration cycle: Iteration Planning, Iteration Execution, Iteration Review and Iteration Retrospective. A mixed method approach was employed, whereby a focus group was initially conducted with 43 Agile developers and managers to determine decisions made at different points of the iteration cycle. Subsequently, six illustrative mini cases were purposefully conducted as examples of the six obstacles identified in these focus groups. This included interviews with 18 individuals in Agile projects from five different organizations: a global consulting organization, a multinational communications company, two multinational software development companies, and a large museum organization. This research contributes to Agile software development literature by analyzing decisions made during the iteration cycle and identifying six key obstacles to these decisions. Results indicate the six decision obstacles are unwillingness to commit to decisions; conflicting priorities; unstable resource availability; and lack of: implementation; ownership; empowerment. These six decision obstacles are mapped to descriptive decision making principles to demonstrate where the obstacles affect the decision process. The effects of these obstacles include a lack of longer-term, strategic focus for decisions, an ever-growing backlog of delayed work from previous iterations, and a lack of team engagement.