What to do when Scrum doesn't work
Keynote slides from Scrum Gathering, Cape Town
Positive atmosphere and lots of laughs, really enjoyed the audience! The whole topic felt a bit like poking a stick at a hornet's nest, but it looks like I got away with it, at least so far :o)
Slide samples:


Kanban for Scrum practitioners
Slides from my deep-dive workshop at Scrum Gathering, Cape Town
Thanks for attending! Lots of interesting questions and insights came up during the workshop.
Sample slide:
ANN: Agile contracts - a client's view
Lunch seminar 3 september
Leading Lean Software Development with Mary Poppendieck
Sep 16-17 in Stockholm
The course also includes an evening seminar on Sep 15.
Save SEK 2000 by registering this week (early bird price expires on Friday Aug 20).

There are still a few spots left, more info and registration here:
http://www.crisp.se/leadinglean/20100916
Join us!
Kanban and Scrum - making the most of both
Slides from Agile 2010, Orlando
- Slides in PDF format - if you don't have powerpoint
- Slides in Powerpoint format - if you want the animations
I was a bit worried that the participants would be tired & unengaged since this was the last session of a week long conference. But I threw in some exercises and jokes to liven things up and was happy to see that everyone seemed highly engaged througout the whole session! The course feedback forms confirm this - the average rating of the session was 5.0 out of 5! Every one of the 85 feedback forms said 5. How to improve from here? :o)
Sorry for those of you who couldn't get in (the room filled up quickly). These links may be of interest to you:
Slide excerpts:

Scala Code Kata Roman Numerals
Babysteps Scala
The KataRomanNumerals says you should write a function to convert from normal numbers to Roman Numerals: e.g.
1 --> I
10 --> X
7 --> VII
Unfortunately I could not attend at this meeting, so I had to do it on my own during a few summer nights when my family finally was asleep :-).
Here's my solution:
object Program extends Application {
class RomanInt(number: Int) {
def toRomanString() = {
val ones = List("", "I", "II", "III", "IV", "V", "VI", "VII", "VIII", "IX");
val tens = List("", "X", "XX", "XXX", "XL", "L", "LX", "LXX", "LXXX", "XC");
val hundreds = List("", "C", "CC", "CCC", "CD", "D", "DC", "DCC", "DCCC", "CM");
val thousands = List("", "M", "MM", "MMM");
thousands(part(1000)) + hundreds(part(100)) + tens(part(10)) + ones(part(1))
}
def part(digit: Int) = {
number % (digit * 10) / digit
}
}
implicit def Int2RomanInt(number: Int) = new RomanInt(number)
println(154.toRomanString()) // prints 'CLVIII'
}
Here's the code with better formatting.
Please comment and correct if I didn't write idomatic Scala or if you have suggestions for improvements.
/Hans
Highlights from USI 2010 and Lean SSC London
Long term sustainable releases with 99% backward compatibility [USI 2010]
In "The challenges of long-term software quality in open source" Jürgen Höller described how they worked in the Spring team to achieve 99% backward compatibility by avoiding revolution and using evolution, even when radical new features are fit in. During the last seven years the Spring team have absorbed 4 major JDK's and 4 generations of J2EE. I was sure this was possible and Jürgens team shows it is. A challenge to all of us the next time we want to restart from scratch :)
Learning to Learn - becoming a Lean startup [Lean SSC]
In this presentation Damon Morgan shows how they as a company now have reached a level where they continuously do set based engineering of business ideas. He showed using their Quote web page how experimenting with not so obvious changes lead to a jump in business leads. I noted another experience which I have seen - when you get flow going, estimation is redundant.
Using Kanban to get knowledge and continuously improve [Lean SSC]
Benjamin Mitchell blew me away with his presentation. I had some seriously great laughs :) But there are some serious learnings as well. Benjamin has done some great efforts in experimenting with statistical process control in software. For example, he could demonstrate that a bulk part of the product portfolio wasn't generating value to cover the complexity it brought by. But what does help if there isn't a thinking process in the organization capable of absorbing these learnings? I will highlights his takeaways, which we all can improve on:
- THINK for yourself in your context
- Get KNOWLEDGE by studying your process as a system, end to end from the customer's point of view
- RUN EXPERIMENTS to learn while you work
Canned Wicket Test Examples
Can of worms, can it be?
Unit testing of the GUI is not the same as unit testing through the GUI. We are interested in the logic of the GUI rather than the placement and order of the GUI widgets on screen.
Testing the logic makes the tests less sensitive to changes in presentation but introduces the problem of JavaScript dependent features. AJAX is in the vogue so we wish to be able to do testing of that too without being forced to start a browser. There is some support for AJAX in Wicket that may be reached using the test framework that is part of Wicket. However, it is not straightforward to use and there are some pitfalls.
Here are three examples of avoiding those, one for each of the check box, drop down and radio group controls.
Go for success
What to pull into the sprint
Jeff Sutherland often talks about ready-ready. It sounded clear the first time I heard it. But I have recently got a deeper understanding of the concept. Here is my new understanding and why I think it's important for successful development.
Experimenting with Kanban Principles at NDC 2010
My slides
Anyway, here are the slides
Ps: A great conference for an old MSoft geek :)
Kanban and Value Stream Mapping workshop
Slides and pictures from my workshop at Agile Spain 2010
The Essence of Agile
slides from my keynote at Agile Spain 2010, Madrid
Impressed by the turnup, 300 people is good for being the first agile conference in Spain!
Some Gotchas for Java Developers Learning JavaFX
Experiences from a workshop
I would say it is a quite subtle difference.
What happened was that the onKeyPressed and onKeyReleased were not called. My immediate reaction was that it was due to some bug in JavaFX but yesterday I realized what had happened.
Limited WIP Stockholm #3 - Kanban from the trenches
When: Monday May 31:st 18.00 - 20.00
Where: Avega's office, Stockholm
How do I join? mattias.skarin( at )crisp.se
Agile and Architecture
Slides from my presentation
Yesterday I held a presentation on the subject "Agile and Architecture" at EDB. They have an internal competence network which meet
My point in this presentation was that every system has an architecture that determines the qualities of it. Given a set of functions, different architectures will give these functions different qualities, such as performance and cost of maintenance.
This is still true, no matter if you do waterfall, RUP or Scrum.
Slides from my keynote at Agile Estonia
Mind over matter
More to come on that subject .)
Anyway, here are my slides: "Mind over matter"
Cheers
Japanese translation of 'Kanban and Scrum - making the most of both'
Lean vs Traditional Project Management
IMHO
This week, we have Mary Poppendieck with us. She held an evening seminar which inspired me to think about the differences between Lean and traditional project management. I also am inspired by the questions I get from my spouse on this.
I thought that it would be interesting to do a side-by-side comparison between the two. I am no process expert, I am just a programmer who has been the subject of 30 years of different processes. I have seen DOD 2167, RUP, PROPS, PEJL, XP, Scrum and a few others. So this is just my humble opinion.
| Aspect | Traditional Project | Lean | Comment |
System thinking and Kanban
|
"Training workers against demand and ensuring they are responsible for what they do is preventative (the better alternative to inspection). All arbitrary measures (standard times, cost, targets and standards) are removed from the system and instead real measures are used to help managers and workers alike understand and improve the work. It is better, for example, to know the actual time it takes to complete transactions as ‘one-stop’; this improves resource planning. Similarly it is better to know the true experience of the customer for any work that goes through a flow (endto-end time or on-time-as-required) in order to improve the flow and, consequently, reduce costs. There are many examples of these principles in use, published examples include Pyke (2008), McQuade (2008), ODPM (2005), and Jackson, Johnstone and Seddon (2007), Seddon and Brand (2008).
At its heart, the systems archetype is concerned with designing against customer demand, managing value rather than cost. And this is the heart of the paradox: when managers manage costs, costs go up; when they learn to manage value, costs fall. It is a counter-intuitive truth." |
It struck me how these principles can be deployed using a Kanban system:
- design against customer demand : create the kanban board starting with the demand
- focus on value creation over cost elimination: set highest priority in completing work before accepting new. Use WIP limits to ensure that is happening.
- know the actual time it takes to complete the transaction as "one stop" : learn the cycle time of flow and use this to plan resources rather than spent time
What is Crisp?
What we are and how we figured it out
Here is an english translation of these pictures.
The first picture is titled "What is Crisp?". It defines our purpose.
The second picture is titled "Crisp strategy". It defines how the company works and why.
Read on if you are curious about how and why we created these simple A3 pictures, and why it has had such a strong impact on our company.


