For few months, I have been using a Personal Kanban board like the one below: 

Figure 1: My current personal kanban board 

This is not an usual style for a Personal Kanban implementation. A more common way is to distribute tasks in limited columns representing items to do, ready, doing and done, which it is an interesting model once it creates visibility in terms of tasks in focus and also encourages flow. My design, however, puts in place a different model. I call it "the initiative box" and I have been using it not only for my Personal Kanban, but also for helping clients to visualize their portfolio of initiatives. 

Semantics

The semantics of the "Initiative Box" is composed by three main elements: initiatives, targets and tasks. An initiative is a project that you are involved with. One initiative can be decomposed in one or more targets. A target is an accomplishment inside the scope of the initiative. In order to accomplish that target, I need to execute some activities (tasks).

The main reason to use a design like that is to see my work as a more holistic set of activities. I'm always involved in quite a few initiatives. Some of the them are long term initiatives (like product development). Others take just few weeks. Each one of these initiatives requires a little of my attention at the moment. The goal is to balance some long term initiatives with few quick ones. I try to do that by making the short term initiatives flow fast, and by making the long term initiatives more sustainable as time goes on. The "Initiave box" creates a mental model based on the constraints provided by the limits suggested on the physical space.  

This approach helps me to restrict my options, which influence me to focus on finishing pendent work, instead of starting new one. Before I accept new work, I learn to "see" my mental map to figure it out how to make it fit. The connection between the high level vision provided by the "initiative/target" semantics with the low level rhythm of planning and executing tasks, is what I think makes this visualization holistic.

How it works

Figure 2 shows how each one of the initiative boxes is structured. You probably need to design your board using one of these boxes for each initiative you want to track. The number of boxes will depend on the limit you want to impose to your portfolio to generate flow and focus. It is important to reserve some capacity (some boxes) to short term initiatives. So, you can always have an horizon to pull new initiatives as the ones on these boxes are getting complete. 

The blue ticket in Figure 2 represents an initiative. You need to decompose it in targets. Those targets should be minimal and a tangible result should be associated to them. I use to have targets with a result that provides some kind of visibility to other people interested in the initiative. When the target become the new current target, it is moved to the "In Progress" area and then it is decomposed in tasks. Only one target per time is allowed in the "in progress" area. Target tasks are positioned on the "Planned" area. As the work evolves, you pull tasks from the "planned" area to the "in progress" area, one at a time. When you finish the in progress task, you move it to the "executed" area. They remain there until all tasks finish.

There is an optional final area on the right side of the box to hold achieved targets. But after some time using this approach, I've decide to deprecate this area in favor of a new retrospective area, which I will explain in the next topic.     

Figure 2: The Initiative Box elements and structure

Self-Retrospective

I think it is important to preserve the past, so you can use it to get better in the future. So, at certain point, the Initiative Box connected to a new visualization idea that I also use in teams. I call it "self-retrospective". I used that with few teams in particular contexts, but here I was interested in how seeing the past can influence me when projecting the future. So, I've created a vertical area, with each month of the year on the right side (pink stickies in Figure 1). As targets are being achieved I move them to the correspondent month in the self-retrospective area (see green stickies in Figure 1). Tasks associated with these targets are also moved to the retrospective area and putted in a space near to the time period that each task was complete. The date of completion of a task or target is noted when I finish them to facilitate this process.

Every time I deliver a target, I naturally review what happened from that point backwards. By reading previous tasks and targets, I create a mental model relating effort and capacity, which help me to remove some false assumptions about my potential throughput of work.  

Other Contexts

I also have been applying this visual management tool to help teams, managers and other professionals to look at their portfolio of initiatives as they look to a map. In this particular example (Figure 3), I help a certain company to put together few leaders and other influencers of the main Value Stream to run and design, as a group, a system for continuous "problem solving" initiatives.

Figure 3: The Initiative Box in a context of "problem solving" initiatives.

After a root cause analysis work, they started two problem solving initiatives for each economic opportunity identified as key at the moment (like increase profitability, turn-over reduction, cost reduction and others), each one with well-defined targets and tasks pulled by people inside or even outside of the group. The semantics is completely different, but the visual structure that supports the visualization is the same "Initiative Box" covered on this post.

In contexts like that where a team is working together in different initiatives, the map is the place where conversations happen. The board is an invitation to discuss not only what should be done, but also how the work should be perceived by everyone (shared mental model). The team working with the board presented in Figure 3 does 15 to 30 min stand-up meetings every 15 days. It is a synchronization cadence to update the results and re-align efforts.

Final Words

The Initiative box offers a more holistic way to see interconnected work. It connects the hierarchy of necessary steps to pursue a goal, preserving important ideas promoted in the Kanban community, like flow, visibility, wip constraints, focus in finishing current work, wisdom to select new work to start, enable conversation and collaboration and finally offering a systemic view so people can see their work as a whole.   

 


Posted by: alissonvale
Posted on: 7/12/2011 at 5:15 PM
Tags: , , ,
Categories: techniques
Actions: E-mail | Kick it! | DZone it! | del.icio.us
Post Information: Permalink | Comments (0) | Post RSSRSS comment feed
 
 
Last May at the Lean SSC 2011 conference I introduced my thoughts to some colleagues about the interpretation of what I think would be one of the fundamental elements in knowledge work systems: cycles of evaluations of assumptions. Alan Shalloway has recently taken this conversation forward, connecting these thoughts to other ideas related to risk and flow on this blog post. So, I have decided to write about the topic in more detail so we can explore this in terms of understanding what I think is part of what the Lean-Kanban and Agile communities do and why it matters so much.
 
Why we should care about assumptions
 
Assumptions are at the heart of all knowledge work activities. In the software development field, you can find them everywhere, from coding to portfolio management, from the smaller technical decisions to larger product design decisions. The evaluation of an assumption ends the cycle of learning and defines the boundaries around systemic feedback loops. Several things happen when you evaluate one or a set of assumptions: 
 
(1) Learning: The evaluation of an assumption holds a very important opportunity for learning. By comparing what you have with what you were expecting, you learn about what you are capable of. You learn to separate facts from intuition. You learn how to work with small expectations and how to quickly change bigger expectations as derivate smaller ones are being evaluated.
(2) Making Progress Towards a Goal in a Terrain of Uncertainty: In knowledge-based environments all you have is uncertainty. You don't know how much time takes to do a task. You don't know how one task is going to affect others until all the assumptions around it are validated. So progress in those environments is not defined by putting another brick in the wall, but by a recurrent evaluation of assumptions that emerges as you move forward from one uncertainty to another. 
(3) Establishing Relations of Causality/Correlation: This insight came from Don Reinertsen, when we were discussing the topic with other colleagues at LSSC11. In fact, as the time to evaluate your assumptions increases, the potential to rationalize the result in terms of causality or correlation will be reduced. These are fundamental mental capabilities to find opportunities to learn and improve. 
(4) Reducing risk: Alan Shalloway was the first to relate this to the work of Bob Charette. By controlling the number of assumptions in a given system, you are actually shortening the range of options and probabilities of getting an unexpected result. I believe if you design mechanisms to control the volume of non-evaluated assumptions in a given system, you are creating the potential to mitigate certain types of risk without too much case by case upfront analysis.  
 
The awareness of being surrounded by assumptions is a property of an environment tolerant to failure. As Alan Shalloway stated on the earlier mentioned post: “Sometimes we are so sure of our assumptions that when we prove them wrong, we call the action doing so an error”. Errors only happen when you have been proven wrong in conduct or judgement by actual facts. It is a mistake to encourage a culture of establishing guilty and comparing results with expectations when what you just have are assumptions. It is important to learn how to separate unexpected results operating on fact-based reality from unexpected results obtained from non-evaluated assumptions.
 
Time is the dominant parameter
 
Acknowledging the existence of assumptions in our knowledge work environments is the first step. However, just knowing the relevancy of this is not enough. We need to know “how” to use this awareness in order to design better work systems.
 
My breakthrough about the “how” came when I first read about John Boyd's work few months ago. His theory is centered on the OODA Loop concept (Observe, Orient, Decide, Act). According Boyd, every active entity, like an individual, a group of individuals or an organization, use the OODA loop to react to events. They first observe the environment or situation they are involved in, then they analyze the data applying it their own background of knowledge and experiences, taking a decision to finally act based on that information.
 
However, instead of concentrating on the quality aspect in each part of the loop, which cycles like PDCA and LAMBDA seem to describe well, Boyd came up with something really interesting. For Boyd, what mattered most is not how good you are at observing, orienting, deciding or acting, but how fast you go through these stages in order to start a new cycle. Despite most of his work being oriented to environments dominated by competition, I think this could be also applied to collaborative environments, when the fundamental principle is about adaptation and responsiveness to new information obtained from an environment in constant change.          
 
As Boyd's theory suggests, the speed of iteration is more important than being right when iterating. If the evaluation of assumptions marks the boundary for feedback loops in knowledge work environments, maybe the same rule applies for how we iterate in our activities. In other words, being fast at evaluating our assumptions is better than trying to force assumptions to be right at the end. So, to be effective in knowledge work environments we need to constantly try to minimize the time between the creation or emergence of an assumption until its evaluation.
 
In order to represent that concept, I've came up with this expression which represents the whole idea in few symbols:
 
? – min(t) → !

Where:
 ? represents the creation of an assumption 
 !  represents the evaluation of that assumption 
min(t) represents the focus on minimizing the time between the creation and evaluation of the assumption
 
How programmers are minimizing the time-life of assumptions
 
If you were a programmer in the mid-1980s you probably remember writing programs on punched cards. Look at how the wikipedia describes a punched card:
 
A punched card is a flexible write-once medium that encodes, most commonly, 80 characters of data. Groups or "decks" of cards form programs and collections of data. Users could create cards using a desk-sized keypunch with a typewriter-like keyboard. A typing error generally necessitated repunching an entire card. A single character typo could be corrected by duplicating the card up to the error column, typing the correct character and then duplicating the rest of the card. (...) These forms were then converted to cards by keypunch operators and, in some cases, checked by verifiers.
 
At that time, programmers had to write their code on these cards and then submit them to an operator who ran the program on IBM mainframe computers. It could take days to get the response from the execution of those programs! After days waiting for the response, the result could be something like: Error on line 32.
 
I started my own career as a software developer in the late 80's. Before being a real programmer, I used to type several pages of printed code in Brazilian magazines just to run them and realize - probably because of my own mistakes while typing the code – that the program didn't work. It could took several hours to copy the whole program line by line. The result of running the program could just be a blank screen or a small square blinking somewhere on the screen.   
 
We all know that the practice of writing several lines of code before you can evaluate them is not as good as evaluating a few lines or even each line as you type.  We also know that the practice of writing a really simple test, that evaluates one single behavior of your code, is considered a better practice than writing complex tests with complicated scenarios and multiple inputs and outputs.  The point is not only about simplicity versus complexity, but also about the speed in which you can evaluate the whole set of assumptions that you carry when you write those lines.  
 
Nowadays, compilers and interpreters are getting quicker at showing typos and syntax mistakes. In some software development platforms, compilation or interpretation of the code occurs in the background, and I have instantaneous feedback of my errors. If I'm using techniques like Test Driven Development (TDD) or Behavior Driven Development (BDD), I can also get instantaneous feedback not only if I mistype something, but also if the system is doing what it should. Ruby developers, for instance, have shrunk this feedback loop even more by having their tests automatically executed in the background for every saved change in their source files.  Developers have been applying intense assumption-oriented semantics to specify their behaviors. So you see words like “should” dominating their vocabulary, which is a clear indication of awareness of  the assumption inherent to each piece of code. 
 
From punched cards and long lists of non-validated code to real time validation for syntax and purpose, what is common in all of those evolutionary leaps is the exponential growth in the ability to  reduce the time-life of assumptions in the form of non-validated lines of code. Every line of code carries its own assumptions. It assumes that it is written in the right syntax, that it is the right instruction, that it is in the right place and it is the best way to do what should be done at that point. 
 
Peer Review
 
Programmers have to deal with several challenges when they are working together in teams. Style and syntax standards, code design, usability guidelines, test practices and other rules should be aligned among all developers in the same team. There are so many details and different situations when you are coding, that just write rules down and expect everyone to follow is not such a good option. 
 
As software development becomes a repetitive activity, quality goes down. That happens because the code is a complex artifact. You need to embrace the inherent variability to prevent the uncontrolled expansion of that complexity. Documented “standards” don’t help to deal with that variability.
 
It is common to use a review cycle to help developers to align themselves in a common structured model. When a feature is completed by a developer, another developer must review what was done. He is supposed to point it out what doesn’t fit in the work structure of the team, what could be better and what could be removed because is not necessary. As time goes on, the expectation is the formation of a shared mental model that everyone follow by agreement, not by rules in a document. 
 
The problem is that there are several ways to do this. One possible way involves one developer handing off the implemented feature to another. That is not a good solution in most cases. Besides the natural issues regarding handoffs, who are receiving the task probably will enqueue it until he finishes his current task. As usually there is no visibility or limits controlling what is happening, the volume of work waiting for review can increase very quickly.   
 
Another way to make code reviews involves the practice of pulling someone to review the code together with the original developer as soon as the feature is implemented. This is a much better solution, once it eliminates the handoff, prevent the formation of queues and promote collaboration. However, it still carries downsides like interruption, context switching, hurry on finish the work and lack of involvement of the reviewer since the beginning.
 
We can think about different solutions for the review problem, but developers have discovered a much more efficient way to handle that, which is called pair programming. In this model, two developers work together during the whole time until the feature finishes. Every action or decision is immediately reviewed by the peer. There is no handoff, no context switching, no hurry, no lack of involvement anymore.
 
However, pair programming still let the space for some dysfunctions once the feature absorbs the mental model of only two people in the team. A technique called promiscuous pairing addresses this problem by making developers change position between each other in a certain frequency, so all of them can work a little in all features.
 
As was explained in the context of coding, here we have the same pattern of evolutionary leaps. When a developer starts coding, assumptions about this code are created. Is it following the style and rules used by the team? Is doing what was supposed to do? Is there some design issues or flaws that should be solved before finishing? These and other assumptions are living in the system until being evaluated by another team member. The review process is just another way to evaluate these assumptions. Again, the time is what matters. In the first review model, the handoff extends this time quite a lot. The second model, when a developer pulls another to do the review, the time of evaluation is reduced to the time for develop the feature, which is better. The pair programming model makes this time to be near zero, but it still maintains some assumptions in the system. By doing promiscuous pairing, your evaluation embraces more assumptions and the time remains minimal.       
 
How the management system is affected by assumptions
 
Accumulation of assumptions is probably one of the biggest sources of dysfunction in value-add activities in knowledge work environments. It is not different when we analyze management activities. 
 
The Agile Manifesto probably has marked the emergence of a new paradigm in the software development world. In terms of management, the Agile movement, and after that, the Lean-Kanban movement in software development, both promote a different approach. The predictable world of Command and Control was left behind, opening space to a new understanding focusing on people  over processes and collaboration over contract negotiations. Managers are now supposed to be system thinkers, instead of resource controllers. While this transformation was taking place, in terms of assumption evaluations, dramatic changes occurred.
 
When someone is doing a task for others, there are some implicit assumptions made during the whole process. Is the right direction being followed? It is being done correctly? Is that the right thing to do at the time? Many times we hear the same story. Weeks or months after a manager assign tasks to developers, usually in large batches, they discover that nothing works as expected, that the code has no quality, and developers are taking the blame and leaving the project. 
 
Most managers would say that this happens because of lack of control, that managers should command and control tightly. But, should they? Should they try to impose predictability to a naturally unpredictable environment? I don’t think that is the answer. In those types of projects, as time goes on, new assumptions are in constant generation because you are essentially dealing with partial information all the time. As the project moves forward, you start to collect pieces of information that were lacking when you first started. Evaluating assumptions helps you to confirm or refute decisions that were created in the first place by the lack of that information. This applies not only for developers writing code, but for management practices as well.
 
Let’s analyze some management practices using this perspective. Nowadays, more and more developer teams are doing 15 minutes stand-up meetings on a daily basis. They do that to improve communication and alignment towards a shared goal. What they probably don’t know is that in every one of these meetings they are evaluating some important assumptions: that everybody on the team have been working in the right direction, that everybody is going to work in the right direction tomorrow and that the team know about the problems so members can help each other to overcome problematic situations. Do you agree if we evaluate these assumptions every week, instead of every day, we are just allowing the accumulation of some critical assumptions that could jeopardize our short-term goals? Those meetings are usually kept really simple, short and frequent, because the focus is not doing the meeting right, but do it frequent enough to not allow that assumption to live without validation for a long period of time.
 
Why short iterations?
 
Scrum practitioners have also been applying the concept of short evaluations in assumptions to dealing with estimations. They assign “points” (Story Points) to units of work. The amount of points for each unit increases as the complexity or uncertainty for what is expected of that work increases. The project is broken into timebox iterations. When an iteration starts, the team defines how many points each unit of work is worth and the total number of points they can handle for the whole iteration. What a lot of Scrum teams don’t realize is that this is just an assumption. The total amount of estimated points is an assumption of future throughput, not a commitment whatsoever. The number of points for each unit of work is also just an assumption of the understanding of the problem that has to be solved, not a commitment to fit the work to its estimation.
 
Now you probably can understand why short iterations are frequently better and why teams working this way are considered “more mature” than teams working with longer iterations. If you really want to know more about your capacity, then the time to evaluate the created assumption is crucial. Taking more time to do this evaluation ends up increasing the number of live assumptions in your system, making your knowledge about the capacity of the project less precise.  
 
The Sprint Review is another Scrum ceremony which is useful on controlling assumptions in software projects. As the team is producing working software, non-evaluated assumptions about that work are being accumulated. Is each feature what the customer was expecting? As the development process starts, those assumptions come to life for every feature. Only when the feature is presented to the customer you can evaluate them. The Sprint Review marks the point where the evaluation happen. As the cadence of this ceremony is aligned with the time that an iteration get complete, shorter iterations will reduce the time-life of that assumption in projects running in a timebox fashion. 
 
Continuous Deploy
 
After a feature is reviewed, another assumption appears: Does the new feature will need any adjustment to work well? The implemented feature needs to be deployed so the customer can actually use it. In order to publish a new release of the product, it is common to wait for a certain volume of new features sufficient to form a cohesive business operation. The average scale of this wait time is months. It is a quite large timeframe to keep non-validated assumptions alive.
 
The side effect of this delay is know as “release stabilization”.  Feedback from users comes in so large quantity right after the release being published that the team needs to stop the development of new features for weeks until have all these requests addressed. In other cases, it is not the volume of requests that bothers the team, but the lack of any request! Some features are released and nobody uses. The cost of added complexity to the code is really underestimated when this happens. Indeed, this happens a lot.
 
Some web companies with millions of users are showing the path to solve this problem. The time to reach the user is being minimized by a model which new features are progressively deployed for clusters of users in cycles of evaluation. So, a new feature is first deployed to a small group of users. The use of the feature is evaluated. If people don’t use it, the feature is simply killed. By other hand, if the new feature generates good feedback and attraction, they deploy it for the next group of users. Additionally, the first group points some flaws or misbehaviors in the product. This is corrected before the next group receives the feature. New analysis is made and feedback is collected, and the cycle goes on until all users get the feature. 
 
Again, the main difference between the two models is that, on the second one, you recognize that what you did is based on assumptions. The users are the ones that are going to evaluate them, not the Product Owner or any other proxy role in your project. What makes you effective is how quick you can go to the customer to make this evaluation.
 
WIP Constraints
 
The emergence of the Kanban change management method brought new tools to deal with assumptions. Flow, Visibility and WIP constraints are in the essence of this approach. Those elements have a huge contribution in terms of reducing the time-life of assumptions. 
 
Let’s go back to the customer review problem addressed by Scrum teams with the Sprint Review ceremony. We already know that teams working in short timebox iterations are  better in controlling the time-life of assumptions than teams working in longer iterations. But we can do better than that. What would happen if we create in our working system the ability to evaluate those assumptions as soon as you have the minimal conditions to do it, instead of doing in a pre-defined scheduled time? 
 
With a WIP constraint you can control the accumulation of existent assumptions in the feature review process. The PO will be involved as soon as this accumulation reaches a desirable level. You can argue that more pressure on this cadence is not possible because of the PO availability or because any other reason. Fair enough. In this case, you can’t reduce the volume of assumptions in your system because you are subordinated to a constraint that you can’t remove. But don’t loose the opportunity to make your system better in controlling assumptions just because you want to stick to a method prescription. Scrum is a good set of practices, but are not the best set of practices, simply because, as the Cynefin Framework model suggests, in complex environments, there is no such thing as best practices. What exist are emergent practices. So, there is no reason to not design your process in a more efficient way. 
 
Handoffs
 
WIP constraints have the potential to control the time-life of assumptions in several ways. A particular useful scenario is when you are dealing with handoffs. Despite being a necessary evil in some cases, handoffs should be avoided most of the times. When you transfer work between people, teams or organization units in a continuous way, you start very critical assumptions: Has the work arrived in a good condition? Who has received gets what was expecting? Who has to respond is going to do that in the expected timeframe? Is rework not going to be necessary? Is enough information about the work being passed with the work? 
 
WIP constraints can minimize the impact of handoffs by forcing this assumptions to be evaluated before new ones are created. When everything is fine to move on, you are allowed to start new work. This practice has the potential to transform any knowledge work environment because, beside other reasons, you are controlling the amount of assumptions that are living in your work system in a given time. You do that by forcing their evaluation in a dramatic shorter cycle. 
 
Visibility
 
Visibility is another Kanban element which has a systemic effect in assumptions. One fundamental aspect of work models is how much time is necessary for people react to new information that comes everyday. When the work model is visible, people on the team start to share a mental map where conditions and information about each important piece of work can be signalized. 
 
In knowledge work, it is quite easy to see important information hidden in e-mail inboxes, phone calls or memos. If the work of everyone is projected on a single map, you move the assignment  model from a “per-individual-basis” to a “system-basis”. With a single map, people have a place to pull the work based on explicit policies and to discuss strategies to handle their challenges every day.  
 
What visibility does is reveal one of the most important assumptions in knowledge work: that the system is working fine. When aligned with other Kanban principles, visibility empowers people to discuss a better distribution of efforts based on availability and importance, instead of just familiarity or personal assignment. They can anticipate and swarm in problems as soon they emerge.  They can work as a real team.
 
Customer Assumptions
 
As it was mentioned at the beginning of this text, you can observe a software development work system in terms of how it deals with the accumulation of assumptions over time.  This can be done by observing how people are dealing with their operational tasks, how managers are managing and how team practices can be organized to guarantee frequent evaluation of assumptions. But you can go further on this.
 
The recent Lean Startup movement is teaching us a valuable lesson. This community is learning how to minimize risk in creating the wrong product by evaluating assumptions about what customers really want during the development process. They use concepts such as Customer Driven-Development, Business Model Canvas and Minimum Viable Products to empower people with a effective method to do that.
 
The most common form of product development in the software development field involves the generation of a backlog of features. Then, you manage progress by comparing the planned features with the already developed features.  The problem with this approach is that it carries a large quantity of hidden assumptions about what the customer really need. A product can take years to be developed. After all this time, you discover that nobody wants to use it. Basically, because your focus remained on trying to meet scope, budget and schedule.
 
The Lean Startup community is learning to reduce the cycle of discovery of customer needs to a minimum time and effort. People now are launching product releases in really short cycles. They are reaching the customer even without a real product developed. They are doing this because they know that even the most brilliant idea is formed by a set of assumptions, and these assumptions need to be continuously evaluated before you do a major investment in the wrong product.
 
Basically what changes is the way you progress in your product development initiative. In this model, instead of moving from one feature to another, you move forward by evaluating one assumption after another. When you don’t have a positive response to your assumption, you pivot. The idea of pivoting makes the approach really strong. When you pivot, you use the new information that you have obtained to change the direction of the product making it compatible with the customer response. This is quite counter-intuitive because by deviating it from the original intention actually makes it stronger.  
 
Here the same concept applies. It is the time and frequency of the evaluation that matters, not how perfect you do it.
 
Trade-off
 
There is a clear trade-off regarding how to find the optimal time to evaluate assumption for each feedback cycle.  It seems like value-add activities tend to offer space to near zero time, depending on the available tools or techniques.  However, coordination activities, like meetings, handoffs and reviews hold a transaction cost which makes the constant reduction of time not so useful. 
 
As an example, standup meetings are a coordination activity which can be really effective on a weekly basis, a daily basis or even twice a day depending on the context. A team of managers can do that with project team leaders in a weekly basis. More than that will not generate any value because there aren’t enough assumptions accumulated on this period to be evaluated.  For a software development team, twice a day is too much, while for a maintenance team, living a period of crises, can do that twice a day easily. 
 
However, in all those cases there is a optimal limit to reduce time between assumptions evaluation. The transaction cost of the activity helps us to define that limit. When you reach it, a good way to go further is stop thinking about how to reduce the time and think about how to replace the practice entirely. In this case, you act differently keeping the purpose of that practice in the context of the feedback cycle. The evolution from developers review to pair programming is a good example of this type of change. The purpose was sustained but the means was modified. 
 
Takeaways
 
The evaluation of assumptions is a thinking tool. It can be used to analyze a system using a new perspective. It can be potentially useful for most knowledge workers, including developers,  managers, product designers and other IT specialists. Each one, in their own problem space, can use this tool not only to take better decisions, but also to improve the current know-how, designing the process to be more responsive and self-regulated.
 
If you are somehow involved in a Lean, Kanban or Agile initiative, stop for a while and try to think about the feedback loops that you have in your environment. When they are going to close? What assumptions are you carrying on at the moment? When they will be evaluated? What are the possible risks of letting non-validated assumptions accumulate in the system as time goes on?
 
Processes don’t evaluate assumptions, people do. Processes have feedback loops, but who close those loops are people. So when the Lean, Kanban or Agile communities tell you that “is all about the people”, pay attention to it. At the end is all about how your culture empower them to make good decisions, no matter what are their level of influence.  

Posted by: alissonvale
Posted on: 6/30/2011 at 3:18 AM
Tags: , , ,
Categories: Management | Projetos Ágeis
Actions: E-mail | Kick it! | DZone it! | del.icio.us
Post Information: Permalink | Comments (1) | Post RSSRSS comment feed
 
 

Nas próximas semanas estarei em Brasília visitando algumas empresas e me reunindo com pessoas interessadas em saber mais sobre como utilizar Kanban para otimizar seus processos de trabalho.

Estarei apresentando também duas palestras sobre o tema nos dias:

18 de maio (terça-feira) de 19:00 às 20:30 da noite.

19 de maio (quarta-feira) de 10:00 às 11: 30 da manhã. 

Entrada Franca! 

As apresentações serão realizadas no excelente Auditório do 2o. Andar da Biblioteca Nacional de Brasília, que possui um programa muito interessante de disseminação de conhecimento para a comunidade sobre os mais diversos assuntos. Vale a pena conferir. 

Segue o cartaz de divulgação das palestras, seguido de um resumo dos assuntos que serão tratados 

 
Abstract
 
Kanban: Evolução Sustentável de Processos Existentes
 
Apesar de ser mais conhecido em ambientes de produção industrial, o Kanban está se tornando uma abordagem popular internacionalmente para otimizar processos nas áreas de tecnologia, negócios, serviços e outros tipos de trabalho não-industriais. O corpo de conhecimento acumulado em torno dessa idéia oferece atualmente um conjunto muito simples de técnicas e ferramentas que, se aplicadas a um ambiente de trabalho ou organização, otimizarão os processos já existentes na direção de criar mais agilidade, flexibilidade e previsibilidade nos resultados esperados.

Seu poder está na sua simplicidade, pois não é necessário comprar softwares caros, nem investir em consultorias ou programas de certificação. Na facilidade de adoção, pois ele não causa transtornos para as necessidades de negócio da organização. E também na facilidade de aceitação pelo grupo de trabalho, já que interfere o mínimo possível no processo já adotado.

Nessa palestra, será apresentado o Kanban como o modelo de "gestão evolucionária de mudanças" que vem sendo aplicado com sucesso em empresas do mundo todo (tais como a BBC de Londres, o Yahoo!, a Microsoft e a HP) para otimizar a gestão de atividades ligadas ao trabalho do conhecimento, tais como desenvolvimento e manutenção de software, produção de jogos, suporte técnico, infra-estrutura de TI e outros tipos de serviço, onde o balanceamento da demanda contra o rendimento do sistema de trabalho é essencial para garantir a sua sustentabilidade.
 
Gestão Lean, quadros kanban, criação de fluxo, workflows de processo, sistemas puxados, modelos de coordenação, intersecção entre setores, além de outras técnicas de visualização e limitação do trabalho em progresso serão demonstradas como catalizadoras para a geração de um ambiente de melhoria contínua permanente não só em pequenos grupos de trabalho, mas também em grandes organizações. 
 
 
Não deixe de comparecer!
Até lá! 

Posted by: alissonvale
Posted on: 5/13/2010 at 9:04 AM
Tags: ,
Categories: Announcements
Actions: E-mail | Kick it! | DZone it! | del.icio.us
Post Information: Permalink | Comments (0) | Post RSSRSS comment feed
 
 
The snow ball effect: that is the metaphor that I was thinking about when I have prepared the talk "Making the Work Visible" for the Lean Software and System Conference occurred last week in Atlanta. The first idea turns around visualization as a catalyst for obtaining system understanding. To visualize an specific characteristic of your process, you need to think about it in a structured way, connecting this visualization to underline properties of your system. The exercise of doing that continuously generates understanding, which is what we are looking for at the end.
On the other hand, something interesting happens when you raise your level of system understanding. New ideas emerge. The need to visualize different perspectives of the work appears. The snow ball effect takes place and a new focus on how the system is designed can be established.

Three Design Focuses

After a small history and introduction, I started to describe what became the three main focuses and discoveries we have when designing our system:

#1 - Thinking in ecosystem rather than linear processes
By doing that, we amplified the directions we could follow to create understanding. We have connected different perceptions regarding the process. Themes like collaboration, personal involvement, engineering artifacts, coordination, achievements and others were considered once they are part of the whole ecosystem. Linear processes are still there, but not alone anymore.

#2 - Contextualizing visual information rather than using traditional reports
Information is part of the understanding process. You need information to get understanding. The usual way to get information is by querying your electronic data. While this is still a useful and important approach, when designing our system, we found valuable to connect the information about the work with the work itself. So, for instance, as you are seeing the current work in progress, you are also analyzing average wip allocation regarding the nature of work or the target market.

#3 - Organizing the system considering interconnected perspectives
This is probably the most important aspect of our design. Connecting different perspectives to model the environment help you to comprehend how things interact with each other. Visualizing the ecosystem in one direction enable you to create the necessary interconnections to see the system as a cohesive unit, amplifying your understanding about the whole.

Here is our model based on perspectives:

Figure 1: The system organized in perspectives
The system visualization expand itself from the employee to the customer, revealing several perspectives in the middle:
  • A personal perspective offers perception of involvement for each employee that participates on the system;
  • A team perspective gathers individual contribution around common goals and results;
  • A systemic perspective offers an end-to-end visualization of flow, besides information to handle the work as a whole in different systemic situations like demand, in progress and releasing.
  • A customer perspective allows you to extract the flow of work related to specific client or market targets which aggregates several clients.

Filtering Perspectives

Some perspectives are orthogonal to the main perspectives described earlier. They represent an specific filter applied to the whole system, so you can isolate the work with different characteristics, like the market target, for example, or the continuous improvement actions, as I have demonstrated on the presentation. We can expand that to isolate whatever characteristic of the system we think relevant to isolate. The main point here is that you can see the whole with an specific and meaningfull filter applied to it.

Figure 2: Orthogonal filtering based on meaningful properties of the work

Making things visible

You can make more things than you can imagine visible. Even abstract concepts like collaboration can be materialized if you have records of current/recent interactions between people doing the work. In essence I've presented 7 (seven) different dimmensions of visibility. Each one of them somehow connected to the main perspectives and affected by orthogonal filtering as well. Here they are:
  • the nature of the work;
  • the workflow;
  • collaboration;
  • time;
  • information;
  • engineering traceability;
  • movements;
On the following slides you can get some clues about how all these dimensions are make explicit.

However, a more precise perception will come when you watch our electronic environment visualization in action, which are not available in the slides. As the presentation was recorded in video by the InfoQ portal and also in a desktop recording tool, we can wait for the release of these media to get the full picture about what is behind all these concepts. While this not happen, I let you some screen shots to help you on visualizing what I meant by "Making the Work Visible".

perspective of an individual

team perspective

system perspective

customer perspective

time perspective

system performance perspective

card swarming view

business activities

expanded WIP


A big "Thank You" for the kind audience in Atlanta and also for the several good feedbacks that I had after the presentation.

Posted by: alissonvale
Posted on: 4/25/2010 at 1:59 PM
Tags: , ,
Categories: Conferences | Management
Actions: E-mail | Kick it! | DZone it! | del.icio.us
Post Information: Permalink | Comments (2) | Post RSSRSS comment feed
 
 
The day was April, 24th, 2010. The place a restaurant at the Lenoux Mall in Atlanta. The event, an special speaker lunch attended by a meaningful representation of the Lean/Kanban community. On this space/time reference, I had the most important experience of my professional life ever: It was officially announced that I have won one of the inaugural Brickell Key Awards for my recent work in applying Lean/Kanban techniques to design a technical/operational environment regarding the service-oriented business that I own in Brazil, a company called Phidelis.

The award itself should be enough to remove the floor below me. But, in addition, it was given to me in a special event illuminated by a range of people which had heavy participation to form my professional values and technical skills. People whose books are in my shelf since 2003 when I have started my journey to the Agile/Lean way of work. I'm talking about an audience formed by, between others, David Anderson, Mary/Tom Poppendieck, Jean Tabaka, Joshua Kerievsky, Allan Shalloway and Don Reinertsen. An audience formed by all the new friends that I made in this community in recent years as well, with a special mention to David Anderson and Siraj Sirajuddin. Both gave me confidence to keep going considering the though challenge of communicate complex ideas in english, a language that I'm not fully proficient yet.  

I have been asked to say some words and I've used the opportunity to offer the award to the Brazilian Agile Community, which have been helping me all this years, not just in the process of learning, but also to establish good partnership and friendship necessary to follow the path of change that we believe is going to create evolution in the way we do our work.

Thanks a lot for everyone who was directly or indirectly related to this. I'm honored and excited to work even more in spreading the Agile/Lean/Kanban word.    

Read the Official Announcement here: 

http://atlanta2010.leanssc.org/2010/04/2010-brickell-key-awards-announced/


Posted by: alissonvale
Posted on: 4/24/2010 at 6:29 PM
Tags: , , ,
Categories: Announcements | Conferences
Actions: E-mail | Kick it! | DZone it! | del.icio.us
Post Information: Permalink | Comments (3) | Post RSSRSS comment feed
 
 

That was the title of my presentation last Thursday at Agiles 2009, 2nd Latin-American conference on Agile Development Methodologies. I have designed this presentation trying to summarize what the Kanban community is trying to spread recently as a new way to manage knowledge work. 

Download the slides here to follow this post about the presentation

By the way, knowledge work was the first topic of the presentation. The initial discussion was about how software development fits with knowledge work (slide #1) and how such activities can be associated with a huge quantity of variations in scenarios and contexts (slides #3 to #6). Understanding the nature of knowledge work is the key to not get trap in trying to translate manufacturing tools and techniques unappropriately.

Context Matters 

Don Reinertsen's quote about best practices and the importance of the right context to consider them as "best" warn us to be carefull when choosing best practices just because thay are supposed to be "the best" (slide #7). Context is relevant, so Kanban allows you to design processes that fit to the context, instead of manipulating the context to fit a specific process (slide #9). 

The word "process" generates fear on the agile community. In fact, there is a reason to put this word on the right side of the manifesto. But, there is no reason to think that no process is the goal. Kanban establishes a new balance on the relationship between people and processes, establishing a way to empower people to design their own processes. Hence, Kanban is a collaborative exercise for process design and offers thinking and action tools to empower people to evolve processes by themselves (slide #11). The process is owned by people, which can connect Lean with Agile in a incredible way.

And there is more... Kanban is also a Mindset

So many case studies around the world describe a kind of transformation process emerging once you absorb the "paradigm of flow". A Kanban implementation holds only four essential tools. But there is a whole new mindset out there. The WipLimitedSociety is agreggating people and content regarding something bigger than the four essential tools. A whole new body of knowledge is emerging right now. The "Yes We Kanban" logo is the symbol of this mindset (slide #13).

It's not so easy to structure this mindset in a way that people can understand. I give my try, anyway. So, my way to describe the Kanban Mindset is by showing patterns, tools and the type of thinking spread by the people who is talking about and applying such ideas.  The result was a pyramidal structure like the one that I introduce at slide #14: Thinking Tools, Process Design Patterns, Capability Measurements, Collaboration and Team Model Patterns and A Culture of Continuous Improvement. 

Thinking Tools

(#slides 16 a 20)

Thinking tools guide practitioners when they are applying Kanban. System Thinking help coaches and team members to understand why they are doing what they are doing. See your work environment as a system can make you conscious about causality and effects of actions. This type of thinking, despite of being very abstract, is very powerfull. A single intervention can cause a huge influence on the system as whole. 

Once System Thinking can be viewed as the starting point, Lean Thinking is the basis. Almost every operational concern is guided by the need to identify value appropriately and make it flows throught the system, improving the process continuously and eliminating waste progressively. 

Theory of Constraints is another element on this thinking process. Once you have flow in your process, you are going to start to see bottlenecks that make it slow in certain part of your system. The Theory of Constraints establishes that your system is so strong as its bigger bottleneck. By using knowledge of this theory you can dramatically leverage the throughtput of the system or, at least, you can get understanding about what are the right investments to do in your system to get higher or better results.

Queueing Theory is another key thinking tool in the Kanban mindset. What lies behind knowledge work is the unpredictable nature of arrival times and task durations (slide #19). Queues are always there and the understanding of its behaviour is in the toolbox of every Kanban thinker.

Finally, there is the Real Option theory that has been discussed lately. It establishes the basis for risk analysis by raising the importance of managing choices and defer commitments to generate options.

Process Design Tools and Patterns

The idea that processes can be designed using tools and patterns instead of procedures and documentation forms is mind blowing. In slide #21, I delineate four essential tools and some other patterns for process design using Kanban. This list is just an extract of what I have been listening as solutions to common problems used by practioners and discussed by the community. Here they are:

Essential Tools

Value Stream Mapping
Visual Management
Pull System & Single Piece Flow
Limited WIP

Patterns

Buffers & Queue Limits
Classes of Service
Leveling Work
Two tiered Systems (Expand/Collapse)
Swimlanes/Expediting
Triggers
Priority Filters
Perpetual Multivote 

Obviously, this is not the full list of patterns that people are applying to their Kanban implementation. What matters here is the idea that patterns can help a team to solve very specific problems when they are trying to design their processes. You can try to extract the basic meaning of each pattern by looking at the slides #21 to #40. You can also leave a comment on this post if you need more info about one or other.

I just want to leave a few words about the last two (Priority Filters and Perpetual Multivote). They were initially proposed by Corey Ladas as patterns for designing the process of select work to inject into the system. I think the perpetual multivote system can be particularly interesting to select work from a continuous improvement backlog queue.  

The description of those can be found here: 

Collaboration and Team Model Patterns

(slides #41 to #46)

It's difficult to realize how collaboration patterns emerge on Kanban projects without actually doing Kanban. The first thing to notice is about the ownership of process rules. The best Kanban teams are using all these tools to master the process. They, in fact, own the process usually helped by a coach with a System Thinking or Lean Thinking bias. 

What people call "swarming" is the most interesting pattern, in my opinion. Usually happens when people have to look at the process board and decide what to do next. The Kanban limits avoid people from inject more work into the system, so they have to find a way to help pushing the work in progress out. That's the moment when Collaboration patterns start to emerge. 

Teamlets, feature teams, and other collaboration structures start to be notice daily.

Capability Measurements

(slides #47 to #53)

I think this quote from John Seddon illustrate why we have to be carefull with measurement in our systems: "Managing with functional measures always causes suboptimization, because parts achieve their ends at the expense of the whole."

Kanban gives to the team the ability to measure capacity and use that measure to bargain or manage its commitments with customers and stakeholders. Capacity can be known using time measurements (lead/cycle time) or volume measurements (throughput). It's common for Kanban teams and coaches to use Cumulative Flow Diagrams to analyze throughput and find bottlenecks and other systemic issues on processes. 

A Continuous Improvement Culture

Finally the main goal of a Kanban implementation: establish a Kaizen culture. A culture of continuous evolution of the system. What Kanban team have been reporting so far is the constant appeareance of "kaizen events" as the time goes on. In slide #53, I mention three action tools to establish this culture: 

* doing Operations Reviews regularly; 
* enabling Continuous Improvement (CI) Actions by reserving capacity in the system to inject CI work items continuously;
* expanding oportunities for improvements removing bottlenecks, eliminating waste and reducing variability.


Posted by: alisson.vale
Posted on: 10/11/2009 at 3:25 PM
Tags: , , ,
Categories: Conferences
Actions: E-mail | Kick it! | DZone it! | del.icio.us
Post Information: Permalink | Comments (0) | Post RSSRSS comment feed
 
 

Last saturday I was at Agile Brazil 2009 conference. It was a great one-day conference with a lot of influential brazilian Agile thought leaders and practitioners talking about Agile. 

Interesting how Rio de Janeiro offers an audience with high mature levels of knowledge to discuss and argue about software development. It's definitely a great place to host national and international conferences about Agile.

It's also interesting to watch Lean and Kanban become so controversial in the Agile world. I can classify the Agile Communitty impressions about the "Flow Paradigm" in four categories:

1) People that believe in this paradigm as the only alternative for their projects but still don't know how to start;

2) People that believe in this paradigm as a possible alternative for very specific projects (like the ones dealing with support, bugs and intense change request).

3) People that is looking very carefully and avoiding any oficial statement until fully understand and know how it works in practice (I've noticed several thought leaders in this situation)

4) People that believe we are moving backwards with this approach.

Anyway, in my opinion, everyone should look very carefully to this new approach. After I've started to use it, I really can't see myself using the timebox approach again, even for new product development. The leverage in subordinate the system to its demonstrated capacity is really meaningfull. But I have to admit this is very risky for teams with low maturity in Agile practices.

My presentation: System Leverage in Agile Projects

The whole point of my presentation was to describe how changing your way of thinking can create real opportunities to leverage Agile projects (or even any other type of project).

I've started describing the difference between System Thinking (the new way of thinking) and Analytical Thinking (the old way). The main message was about System Thinking as a model to get understanding of why things work the way they do, in opposition to the Analytical model that gets knowledge about how things work. Use System Thinking to solve problems changes dramatically the potential to create leverage in software projects.

Some of the points of leverage that I have described in the presentation were: 

- Focus on the purpose of the system;
- Demand Management is so important as Demand Planning;
- Forget functional measures and focus on measure the capability of the system (e.g,cycle time) or the conditions of the system (e.g, failure demand vs value demand).
- Establish flow end-to-end (from the customer to the customer)
- Limit WIP
- Leadership, Team Work and generalist people are elements that improve flow; 
- Every waste activity points to the design of your process or the design of your product;
- Refactor your process is so important as refactor your code is.

You can download the presentation here:

For portuguese readers

For english readers


Posted by: alisson.vale
Posted on: 6/29/2009 at 11:32 AM
Tags: , ,
Categories: Conferences
Actions: E-mail | Kick it! | DZone it! | del.icio.us
Post Information: Permalink | Comments (0) | Post RSSRSS comment feed
 
 

I always looked at risk management activities using the event-driven risk approach offered by the current project management traditions.Perhaps because of this, I've never paid so much attention on this topic before, as I am doing now. 

Flying back to Brazil from the conference in Miami, I had the opportunity to read the amazing piece of text that David Anderson wrote about Risk Management on the proceeding book of the conference. After that, I've started to think about risks in a different dimension. Now, I’m diving on this conclusion:

Mutual Trust Relationships can be sustained by intrinsic risk management mechanisms.

There is definitely something more in dealing with risks than just trying to create mitigation and contingency plans up-front.  

To be relevant, risk management has to be merged into the system to orchestrate his behavior.

I have this feeling today that any decision point in a process should be oriented by some risk analysis approach. I’m not talking about a plan for risk mitigation here; I’m talking about a process for continuous risk mitigation. Is that possible?

In David's article, he describes a technique that uses Classes of Service (CoS) as an instrument to make the system works oriented to risk decisions according Cost of Delay. So, before you inject new work into the system you are conditioned to think about risks, once you have to classify each work item by doing an analysis of the associated Cost of Delay. The type of risk is going to influence behavior by the application of different contextual policies. Pure System Thinking!

Labeling work items is a interesting mechanism to influence system behavior. If you use an e-mail system like Gmail you can see that in practice. When you decide to tag messages by some form of classification, you define a visual agreement mechanism that is able to influence your behavior. You are going to act differently when you see a message with a special tag type. 

What David is proposing is labeling work items by risk criteria, which is going to subordinate the system to be risk-oriented, a fundamental part of self-sustainable processes. So that's why David's article got my attention in the conference book. Explicit Risk Management is missing in our process. We have to figure it out how to apply this knowledge on it.

In our process, we have a different use for Classes of Services.

Instead of thinking about the risk, we are thinking about Value mapped to agreements that we need to respect as we interact with our customers. 

We talk to them in these terms:

“You (the customer) should trust us (the vendor) as we will try very hard to keep your business up and running by solving any problem (1) that you have or by helping you in any operation (2) that you need assistance from us; we also are going to sustain your processes by doing improvements and adaptations (3) as your business evolve and, while we do that, we are constantly trying to deliver new features and capabilities in our software to create new business opportunities (4) that generates value for you in your market share.” 

This “Agreement Statement” maps to our Classes of Services (CoS):

1 - Problem solving
2 - Support and Operations
3 - Improvements for sustainability
4 - New Value

The intention of our "Agreement Statement" is to create a Mutual Trust Relationship with them by being flexible with their needs and getting flexibility from them for our needs (which are mainly estimation, prioritization, error tolerance, and others). So, all units of work derived from this CoS have Value for the customer. But the lack of any of this agreement can make the long term relationship that we aim becomes unstable.

We need to create balance by delivering units of work observing the system against this "Agreement Statement". During this observation we have to consider each individual customer and the whole system to make right decisions.

We have an assumption here which is based on the fact that we have different entities of our system competing by the same (and limited) resource. So they have to trust us that we are going to take the best decision considering this "invisible" competition that is happening in background. This decision process is all about "risk analysis.” 

So, Risk Management is an important activity to create effectiveness on this decision process. An effective decision process creates trust, and high levels of efficiency on risk control leads to high levels of trust on this relationship.

Using CoS as David suggests seems to be a quite reasonable approach, once CoS is the primary way to classify units of work in Kanban Systems. But, I’ve realized an underlying model for managing risks here, which are leading us to the definition of a new orthogonal ax in our system for risk-oriented work items classification and also for risk-oriented policies. Merging risk analysis into our system to influence its behaviors is going to be my next challenge for now.

 


Posted by: alisson.vale
Posted on: 5/12/2009 at 4:58 PM
Tags: , ,
Categories: Management
Actions: E-mail | Kick it! | DZone it! | del.icio.us
Post Information: Permalink | Comments (2) | Post RSSRSS comment feed
 
 

Last week I was in Miami attending the Lean and Kanban conference. This post contains my personal view about the conference and about some hot topics that gain my attention while I was there. 

 

 

Between Sessions on the 2nd day 

Structuring the community  

The announcement of the new Lean Software and Systems Consortium makes me think about how important is to take this community to a next level in terms of organization. I have this perception that the Lean community is fragmented today in a couple of different trends. It would be cool if this Consortium could be a real representation of the whole Lean community. But I really don´t know if it is going to be possible considering how we are structured today. Anyway, I'm an enthusiastic about this idea and I'm ready to contribute somehow to make this happen.

People

Amazing how this community is surrounded by brilliant people that really knows about what they are talking. I am still impressed with the quality of the attendees. Many of them were there to teach, not only learn. I really don't know what was better: the talks or the conversation between them. The residual learning generated by the conference came from a flat transference of knowledge, not a top-down (speakers->audience) one. The presentations were open to conversation, people asked questions during the talks, not only after them. Many times, people asked for the microphone to clarify positions and thoughts, not just for questions. The open space at the end just make this more evident.

 

 

Preparing board for the Open Space 

 

Enlightening People

David Anderson brought powerfull ideas on his talks. David has this ability to makes me have shining and sudden ideas when he talks or writes. It's not about trying to teach how to walk the path, it's more about direct you to a possible path and let you decide how to walk it. His recipe for success is becoming more powerfull as the community is getting more experience with Lean and its principles. WIP reduction, quality focus, demand versus throughput and prioritazation are already "a spread message" as we saw in most of the study cases. However, the new "reduce variability" message is still out of the people focus. Maybe we are going to see progress on this issue in study cases at the next conference.

An important message that I've got from David was to avoid the temptation to establish any type of "Lean Framework". Let's try to not copy the way that how other industries are applying Lean and focus on principles. If the message is strong (as it is in Lean), people are going to be able to find the right way to make it work in their own situations.

Jean Tabaka was another key personality of this conference. In her presentation, she was able to transform all the materialism that surrounds Lean with numbers, curves, graphs, and other technical stuff in something organic, system oriented. I like pretty much of the continous learning approach suggested by her. Actually, I have written about this on my article for the proceedings book. Profound knowledge about your own system, mostly formed by the business, the organization culture and the people is the most powerfull way to get leverage for growing. Jean has also an incredible leadership nature. She is always leading all conversations or activities that she is envolved. She also gives to the audience a real bonus by showing us how to facilitate an Open Space and how to conduce a wonderfull retrospective. Amazing the way that she works.

Corey Ladas was a big surprise for me. Definetely one of the most open-minded and intellectualized members of the community nowadays. You can watch him talk for hours without getting bored. I've got a copy of his Scrumban book and I have to say that the title can distract potential readers to buy it. This book is an amazing description about Lean applied to software development. A really practical view that is pretty rare to find in other Lean publications in the software area. The Scrumban technique is there, but is just a small part of a whole rich content about Lean.

Study-Case Talks

Several presentations described different ways that Kanban and Lean were introduced in a lot of scenarios. It's interesting to see how powerfull solutions are built when you don't prescribe the how ("practices and methods"), but provide the why ("values and principles"). This community is empowering people around the world to discover the best way to design processes and to influence culture organization with simple instructions like create limits to WIP and make value flows. I really like the way that Eric Willeke and Chris Shinkle prepare their material. Eric told us his story in a very unusual and interesting way. How Scrum has failed in absorb the company scenario and how kanban embraced this scenario and empowered people to make the work done. Chris Shinkle got my attention by the creative approach comparing his kanban adoption to the Dreyfus Model of Skill Acquisition. This insight is awesome not just for Kanban and Lean implementations, but for whatever initiative that intents to spread knowledge for people in organizations.    

 

New Room Layout just before the Open Space session 

 

My Presentation 

I presented at the second day just before lunch. The main challenge for me was try to describe our model, which has its own peculiar details, with the limitations of my english-as-second-language issue. But the massive feedback that I've collected after the presentation makes me believe that this was not an issue at all.

I have started my presentation describing our model which is based on a mutual trust relationship with our customers. This relationship emerges from the observance of four aggreements defined as "quick problem solving", "support for operations", "improvements for sustainability" and "new value". Actually, they are all perceptions of value by the customer (it needs and pays for all of them), but for us, three of them are perceptions of waste ("new value" is not). So they are conflicting perceptions of Value. In fact, it is difficult to establish priority between the Value generated by this activities. It's totally contextual. So we try to create balance between them. Giving to the customer nothing more than they need, at the time they need.

Classes of Services for us are the representation of this aggreements in our process. Units of work are derived from these classes of services. The Units of work are represented by cards that flows between different stages in an eletronic board that holds a set of stages distributed in 3 big areas: Demand Management, WIP Management and Delivery Management.

So, I have talked a little about each area describing some interesting issues like a prioritization filter for Demand Management, the collaboration model in WIP Management and Release per Feature and Traceability in Delivery Management.

The presentation has finished with a demo of this eletronic board and other open source tools that compose an integrated environment for technical operations.

You can download my slides here

You can read people tweeting during my presentation here

You can read reviews of each presentation here

[Update] David Anderson wrote some nice words about my presentation here

[Update] Some discussion in Agile Executive about my presentation here

Retrospective results at the end. 

 

So, finally, I would like to say thank you for everyone that was there and that I have a chance to talk with. I see you guys on the next conference. 


Posted by: alisson.vale
Posted on: 5/10/2009 at 8:40 AM
Tags: , ,
Categories: Conferences
Actions: E-mail | Kick it! | DZone it! | del.icio.us
Post Information: Permalink | Comments (1) | Post RSSRSS comment feed
 
 

Less than two months left to the Lean and Kanban Conference in Miami and some exciting news have just happened last days.

The price is lower now and there are options for choosing between a "Full Lean Day", a "Full Kanban Day" or both. Look at the final version of the promotional flyer and open the conference web site to read more:

 

Using David Anderson's words: "the greatest ever assembled group of experts in Lean software development will be convening in Miami in May to explore the frontiers of agile and lean in software development". He is talking about: Alan Shalloway, Dean Leffingwell, Peter Middleton, James Sutton, Corey Ladas, Karl Scotland, Amit Rathore, Sterling Mortensen, Aaron Sanders, Rob Hathaway, Max Keeler, Linda Cook, Eric Landes, Eric Willeke, Chris Shinkle and David Laribee. He also starts to talk about them in his blog here and here.

I'll be there too. My company has been using the Kanban approach for more than a year and we learned a lot during this time. Since then, we've been building an eletronic kanban board to support the process and the way we use this board to manage our process will be the focus of my presentation.

Now we are working to detach the board from the rules of our process. We are creating features to allow process customization. The idea is customize the definition of workcells, stages, limits, classes of services, flow rules and others Kanban concepts. Depending on the acceptance of the tool and feedback from the community, we can go to the Open Source model, giving back to the community all the support that we receive to improve our processes with these ideas. That's speculative yet, but quite possible.

I see you there! 


Posted by: alisson.vale
Posted on: 3/11/2009 at 8:33 PM
Tags: ,
Categories: Announcements
Actions: E-mail | Kick it! | DZone it! | del.icio.us
Post Information: Permalink | Comments (0) | Post RSSRSS comment feed