Posts tagged ‘Kanban’

How cross-functional should my Team be?

In a Lean/Agile world teams should be cross-functional. Period.
Or maybe it’s not that easy? What does cross-functionality actually mean? And is it true that the more cross-functional, the better?


I wrote an article together with my brother Arne Roock adressing these questions. The article is published in the current edition of the “Agile Review” by it-agile. The article is available as PDF for download. (There is also a german version of the article).

August 13, 2013 at 5:26 pm Leave a comment

Wie cross-funktional soll mein Team sein?

Agile Teams sollen cross-funktional sein. Punkt. Oder ist es vielleicht doch nicht ganz so einfach? Was genau bedeuted Cross-Funktionalität eigentlich? Und gilt generell die Regel: Je cross-funktionaler, desto besser?


Zu diesen Fragen habe ich zusammen mit meinem Bruder Arne Roock einen Artikel verfasst, der in der aktuellen Ausgabe der “Agile Review” von it-agile erschienen ist. Es gibt den Artikel auch als PDF zum Herunterladen. (Es gibt auch eine englischsprachige Version des Artikels als PDF).

August 13, 2013 at 5:02 am Leave a comment

Buchempfehlung: Tribal Leadership

Nicht mehr ganz taufrisch ist das Buch “Tribal Leadership” von Dave Logan, John King und Halee Fischer-Wright. Trotzdem ist es immer noch sehr lesenswert für jeden, der sich für Team- und Unternehmensentwicklung interessiert.

Das Buch vertritt die These, dass für die Leistungsfähigkeit von Teams und Unternehmen die vorherrschende Kultur wichtig ist. Sie stellen ein 5-stufiges Modell der Kulturentwicklung in Teams/Unternehmen vor:

  1. “Life sucks” – Das Leben an sich ist schlecht und es wird auch nicht besser werden. In dieser Stufe kommt es häufig zu Gewalt gegen andere oder sich selbst – wenn das Leben sowieso an sich schlecht ist, ergibt es auch wenig Sinn, sich an moralische Maßstäbe zu halten.
  2. “My life sucks” – Das Leben anderer Leute mag gut sein, aber mein Leben ist schlecht. Auch wenn der Übergang von “Life sucks” zu “My life sucks” sich häufig wie eine Verschlechterung anfühlt, ist es ein Fortschritt. Die Erkenntnis, dass das Leben nicht für alle schlecht ist, enthält die Chance, dass es für mich auch besser werden kann.
  3. “I am great (you are not)”: Ich bin großartig, viele andere leider nicht. Daher muss ich immer alles selbst erledigen. Dieser Zustand ist der vorherrschende Zustand in den Unternehmen in den USA (und sicher auch in den meisten anderen westlichen Ländern).
  4. “We are great (they are not”: Jetzt steht das Team-/Unternehmensergebis im Vordergrund nicht mehr das, was ein einzelnes Individuum leistet. Das Team/Unternehmen grenzt sich dabei gegen andere Teams/Unternehmen ab und definiert sich auch dadurch, dass es besser ist.
  5. “Life is great”: Jetzt verschwindet die Abgrenzung gegen andere und ein höheres Ziel (Noble Goal) definiert das Team oder das Unternehmen.

Laut den Autoren kann man bei der Kulturentwicklung Stufen nicht überspringen. Wenn man sich auf Stufe 2 befindet, kann man sich nicht einfach zu Stufe 5 weiterentwickeln, man muss den Weg über die Stufen 3 und 4 nehmen.

Das Buch zeigt Techniken, mit denen man (anhand der verwendeten Sprache) den Zustand von Teams/Unternehmen bewerten kann sowie Techniken, wie man die Kultur weiterentwickeln kann.

Das ganze ist übrigens nicht einfach ausgedacht, sondern mit Studien belegt und so finden sich in dem Buch immer wieder Fallbeispiele zu den einzelnen Stufen.

Von mir eine eindeutige Leseempfehlung für alle, die sich für Unternehmensentwicklung interessieren.

August 12, 2013 at 9:16 am Leave a comment

it-agile 28 weeks later

In january I blogged about the internal state of it-agile. Let’s have a look what changed during the 28 weeks since then.

  • We have introduced autonomous business teams to enable scaling and support local experimentation. The business teams synchronize monthly at a whole-day face-2-face meeting and with an offset of two weeks at a shorter monthly telco.
  • After we introduced the teams we discovered some limits to the teams’ capabilities. Not every team was able to generate sufficient customer demand to “make a living”. Therefore we created a virtual sales team (consisting of members of business teams) that focused on demand creation.
  • There was a institutionalized group called “senior consultant group” consisting of the two CEOs and the two most senior consultants. This group decided to dissolve since most of its responsibilities were transfered to the employees and business teams over team.
  • One left over was the process for deciding on salaries. Employees had and have peer groups with whom they discuss their personal development and peer groups may suggest increases in salaries. The final decision was made by the “senior consultant group”. As this group dissolved completely we introduced a “SalaryChecker” group consisting of four people elected by all employees. (The two CEOs were proposed as candidates for the group but didn’t accept the nomination. The current “SalaryChecker” group consists of the two “seniors” of the original board and two other employees.
  • Intrinsifier published an article about it-agile.

September 2, 2012 at 12:54 pm 1 comment

Selbstorganisation im Unternehmen

Selbstorganisation in Teams ist durch Scrum und andere agile Verfahren heute quasi Stand der Kunst (ja, ich weiß, ess es vielfach in der konkreten Umsetzung noch hakt). Aber ist damit das Ende der Fahnenstange schon erreichen? Ich glaube nicht. Nun, um ehrlich zu sein, ich weiß sogar, dass das nicht der Fall ist (durch den Grad der Selbstorganisation, den wir bei it-agile aber auch einige andere Unternehmen erreicht haben).

Selbstorganisation über Teams hinaus und sogar im ganzen Unternehmen ist möglich. Ich habe Folien auf Slideshare hochgeladen, die zeigen, wie Selbstorganisation auf Unternehmensebene funktioniert: Folien

Die Folien stammen von einem halbtägigen Workshop, den ich bei einem Kunden zu dem Thema “Selbstorganisation im Unternehmen” durchgeführt habe. Wer so einen Workshop auch gerne bei sich im Unternehmen durchgeführt haben möchte, kann sich dazu gerne bei mir melden.

June 9, 2012 at 8:32 am Leave a comment

Risk Management in Complex Domains

We had a discussion with some it-agile colleagues about risk management in complex domains and if there is a relevant difference to complicated domains. Here is my current understanding.

Classical risk management in software development comes from waterfall like approaches tailored for simple and complicated domains. In a nutshell you create a list of all risks at the beginning of the project. Every risk has a probability and a potential damage. Multiplying probability with damage yields a kind of “risk cost” which is then used to prioritize the risks. After that we define countermeasures or mitigations for the risks. Here is a short introduction to classical risk management.

In my experience the focus of classical risk management  is on creating a plan that can be executed without big surprises. And second is focus is on avoiding the risk to ensure project success.

For this traditional approach it is crucial to anticipate cause-effect relations. That is possible in simple and complicated domains but not in complex domains. Therefore traditional risk management is of limited value in complex domains (yes, I tried it for some years).

Feedback driven approaches like Scrum have built in risk management for a lot of typical risks:

  • Does the software match customer needs?
  • Will we deliver in time?
  • Does the software scale?
  • etc.

But we believe there is more to it. Let’s have a look at a story told by Don Reinertsen at the LSSC 2012 conference about fire fighting. Fire in forests behaves in a complex way. It is impossible to forecast what the fire will do in the near future. There is the influence of wind and rain and even the fire itself may create relevant wind.

The fire fighters do risk management in a when-then pattern. “When the fire crosses this boundary, then we will evacuate this town.” It is not possible to guarantee that the fire will cross this boundary. Therefore we make a plan to minimize damage not to avoid the damage completely.

We think that this pattern of risk management is applicable also for software/product development. We identify the risks that may cause critical damage and were we need to react really fast. For these risks we create a plan what to when the risks becomes reality.

This is exactly what one of my clients did when the global financial crisis started. “When sales drops below this point we will reduce costs here and use money from another business area to avoid layoffs.”

With such a plan the appropriate preparations can be done in advance (e.g. not signing long term contracts that bind a lot of money and put new investments on hold). And it creates a safe atmosphere for employees. They see that there is a plan and that this plan does not include layoffs.

In complex domains risk management ist more “when X will occur we will do Y” than “to avoid X we will do Y”. (That doesn’t imply that traditional approach had no place n complex domains. It is just less important.) But one thing stays the same: More important than risk lists are the collaborative discussions about risks with and within the team.

P.S.: I used the term “risk management” throughout this blogpost although I think it is misleading. Risks in complex domains can’t be managed. We only can prepare to be able to react accordingly. But by now I don’t have a better term. I love to see proposals in the blogpost comments.

P.P.S.: I like to thank my colleagues for the discussions about the topic, namely Arne Roock, Norbert Hölsken, Christian Dähn, Jens Coldewey, Sebastian Sanitz (and I hope that I didn’t forget anyone).

June 8, 2012 at 2:36 pm 6 comments

Incremental Platform Migration

In Scrum workshops participants often come up with platform migration as a task not suitable for Scrum. Examples are the migration from Rails 2 to Rails 3 or from one EJB version to a new one.
For technological reasons it is often not feasible or even impossible to have both platforms in parallel in the system. And the new platform API has breaking changes. Therefore installing the new platform results in a completely broken system and the team would need several Sprints to have a potentially shippable product again. The consequence at first sight might be to adapt Scrum regarding shippable product increments or to use another approach.

Fair enough!

But: Sometimes we gather new insights when we make the probem worse. What would one do if we had to replace the programming language (e.g. migrating a COBOL system to Java)? You wouldn’t just install the Java compiler and try to compile the COBOL source files, would you?

You would rewrite the whole system step by step having potentially shippable code all the time. When this approach works for replacing the programming language it should work for an easier problem like replacing infrastructure as well. And it does.

Rewrite the system on the new platform/infrastructure feature by feature. Of course you make heavy use of copy&paste to reuse the existing code.

Is it worth it?
At first sight the incremental approach needs higher efforts. There has to be something on the plus side to make the approach attractive:

  • Bugs are easier to fix: When you make a mistake during the big bang migration you will not recognize it until you have finished the whole migration. But then you introduced the error weeks or months ago and it will take you a really long time to figure out how to fix the bug. Using the incremental approach shortens the time from producing the bugs to detecting and fixing the bugs. That makes it much easier to fix the bugs and therefore reduces the effort.
  • Remaining time is easier to estimate: When you proceed feature by feature you can compute an average velocity and create a rough forecast when all features are done.
  • Release early: With proper prioritization you can deliver the migrated system to some customers long before all features are migrated. (You could start with the features for the customer who needs the smallest feature set). These early customers would give feedback about the system in production and so lower the risk of the whole migration.

May 31, 2012 at 8:15 am 3 comments

Older Posts