Friday, February 18, 2011

Apple, Scrum and the importance of a good Product Owner

My job as a coach and trainer gets me around quite a bit. It is always thrilling to meet new people and to learn about all types of industries. During those encounters, I often get asked how companies like Google, Apple and Facebook do work. Before I left the USA for Switzerland, I used to work for ThoughtWorks out of their San Francisco office. During that time I had the chance to peek under the covers of a couple of those well known bay area players. Pretty much all of those companies are agile, not necessarily in a Scrum or XP way but they surely value their people with trust and autonomy. Yes, these are exactly the most important ingredients for self-organization.
The one company which I never even put a foot in was Apple – I drove by twice a day – but 1 Infinite Loop is a black box for me. So how does Apple do what it does? How could this company recover like a phoenix from the ashes? I admire Steve Jobs. He does magic on stage when showing Apple’s latest products. He has a strong personality and there are quite some stories floating around about his famous tantrums. So, how did this man turn around Apple? Well, to be honest I don’t believe that it was a one man show completely; however this one man is in the exact right position.
Let me explain how I see the role of Steve Jobs though Scrum glasses.
Each Scrum team consists of one ScrumMaster, a Team and one Product Owner. For larger projects you can have more Scrum Teams working together, which is called a Scrum of Scrums. A company wide Scrum of Scrums enables the company to do agile product portfolio management , which is crucial to overcome the stasis of annual plans. At the very top of those Scrum of Scrums, you have THE Product Owner, the over-Product Owner, the one person responsible for what gets developed in which order. Steve Jobs is exactly this person at Apple. Sure, he is CEO and has absolute power. However, in contrast to other CEOs which are too far removed from the details, Steve Jobs is exactly interested in these details. He had the whole iPhone redesigned because it had more than one button. He decides to accept or not to accept the products. He gives the acceptance criteria and he has to like what he sees or it does not see the light of the day.
To me this confirms that one of the most critical roles in a Scrum Team is the Product Owner. Sure, the best Product Owner with a lousy team will not succeed either, but a great team can only be on top of the game with a great Product Owner.
The success of a project depends on the Product Owner, its role but more importantly the person, and definitely NOT how good or detailed the requirements are. A good Product Owner enables the Team to rise above and make a great product the right way.

Tuesday, February 1, 2011

PSD (Java) Train the Trainer

From Jan 20th until 28th the first PSD (Java) Train the Trainer gathering took place. It was held in Sao Paulo/Brazil. The idea behind train the trainer is to horizontally scale up our effort to teach good and emergent coding practices to developers. With more trainers there is more exposure. Let’s cross the chasm!
The training was two-fold. First Giovanni Bassi from Lambda3 held a two day PSM class to reinforce the agile fundamentals of Scrum. The potential trainers are by no means new to Scrum, most of them are veterans with years of field experience. The PSM class helped to set a common foundation and understanding within the group. The following Monday the PSD class started. One week of four mini sprints, each one with sprint planning, development, daily scrums, review and retrospective (details). The idea is to communicate what real agile development using Scrum by applying XP practices feels like. I strongly believe that once a developer has drunk the Cool-Aid, they will always try to get that feeling back. There is no way back - they are addicted, addicted to best of breed development practices. The five days are laced with theoretical blocks to explain the underlying ideas and principles. So, it is a great mixture of hands on and theory.
In contrast to the PSD (.Net) course, the Java one is less tool focused and more on the craft. Our backlog management is done with paper on a pin board and bugs are handled through the backlog – no issue tracking system. All used software is open source. (Eclipse, SVN, Ant,Hudson, Cobertura, EclEmma, Mockito, …). A low tech story board with paper is still the most effective information radiator.
The students were great, throughout they were agile-savvy and smart people. It was fun to work with them and during late night discussions I had the chance to learn from them as well.
Brazil was the perfect setting for this training. There is a vibrant agile community and Lambda3 is a driving force. I am looking forward to see more inovation coming from this part of the word. Globalcode was an excellent host and very forthcoming.
We named ourselves the Boi Tátá Team. (Boi Tátá is a mythical Brazilian creature)
There will be more PSD (Java) Train the Trainers. If you are interested please get in contact with