Planning and scaling with scrum

Jeff_Sutherland_joop_dorresteijn_scrum_zilverline

After working with Scrum for some time, I’ve finally became a certified ScrumMaster (SM) at the zilverline course with Marco Mulder en Bas van der Hoek. Addtionally I met one of the inventors of the Scrum software development process. Jeff Sutherland at our company yesterday!

Scrum is like a homing missile

The old school and dreadful IT project style: The customer wants a new website and makes sure to write an extensive project plan beforehand. Better be extra detailed to make sure we’ll get this project right! The customer assumes the project is clear and believes that developers should be able to give a detailed and trustworthy scoping. Planning commences and the project starts. Within no time, unforeseen occurrences happen and the made promises are broken. Both parties eventually become more hostile towards each other and IT has to work overtime to finish and the customer isn’t happy with the final result. Sounds familiar?

The waterfall method described above is like a cannonball. The customer sets a target in the distance and the developers have one shot at hitting it with their cannonball. The shot is taken and is in vain as in fact, the target was moving and there was unforeseen wind, the outcome became clear when it was too late.

An alternative to this is the scrum approach. The empirical approach in which the customer is closely aligned to the developers, releasing software often makes that demands are discovered along the way. Customer happy, developers happy.

Whilst finding roots in software development it’s also applied at banks, healthcare and government around the world, in the Netherlands there’s even a high school applying scrum at a class, where students show increased collaboration!

Epics and roadmaps

I’ve experienced firsthand that trying to scrum a traditional waterfall/Gantt planning can create a lot of friction in an organization. It starts with acknowledgement that Scrum is nice and all but targets are made for an entire year, the ‘business side’ (as apposed to the IT side) should be able to get some commitments over the year.

This doesn’t mean that one should make a roadmap, we’ve learned that roadmaps are too messy of a prediction. A roadmap feels a bit like a large project. The chances of making it are small.

Source: Standish group

Source: Standish group

But… when will the project be ready?

You’ve haven’t even started with the project yet but usually the costs need to be made clear in advance, and marketing activities planned. Expectations have to be given. “When will you finish?” is a pesky question without a roadmap. This is where one needs to be clear. Scrum allows you to produce a realistic planning after some time of development. By reducing size of projects and always focusing on the single most important thing, you will deliver something quickly, and more can be said about the time left for the rest. Tasks are put on a backlog, with most important things in top an detailed. Abstract things for the future at the bottom.

Cone of Uncertainty

Cone of Uncertainty

Finishing sprint after sprint, you will be able to estimate with more confidence. As you know how many storypoints you burn per sprint. Apposed to a long term development like waterfall, scrum will give quicker insight towards completion with a so called ‘release burndown’, showing how many storypoints are left. Additional tasks are added underneath the chart.

3045759561_b273c9ec39_z

Going wide, not deep

Instead of a ‘island’ culture where one team passes work to the other, scrum teams are multidisciplinary and have full access, responsibility and knowledge of the architecture. Only then they are able to understand the why, how and what of the most important item.

Besides that, there can be only one thing important at the same time. People are terrible at multitasking, for a long time people assumed that if you started more, you’ll finish more. It’s the other way around, the more you finish, the more you’ll finish!

During the training, we made a storymap together. It’s an overview of tasks and time. Our task was to prioritize features. In the Image below, we were building the “bare necessity” row.

05fig14_alt
At first, we added all basic functions .The coach then challenged us and soon we realized that the bare minimum could be stripped a lot more. This was an eyeopener, as I’ve felt into this trap often in the past, thinking “I’ve started working on this anyway, might as well extend a little bit on this part as well.” NO! Work wide, not deep. Only then you can deliver fast. What is the actual minimal working skeleton? We also sheepishly added cards at every column, another team skipped even skipped columns for their first release. Why not?

Scaling scrum

Steady teams and performance

I joined the ScrumMaster training with some experience under my belt and a lot of questions regarding scaling and performance. Personally, I had to deal with proving increased output of the team this year and I was seduced to start micromanaging expanding time logging of the team. (Micro) managing isn’t going to get the best out of a team. Jeff Sutherland stressed that simply making work of a team transparent to outsiders is enough to get the team motivated and self steering. When all seems lost, decrease the tickets in one sprint and focus on applying the practices correctly. To increase performance is to keep addressing the next biggest improvement in the team. Dysfunction team members, dependencies on other teams etc. What scrum does is making the process quantifiable so you can break dreadful processes instead of trying to satisfy them more rigorously. Also don’t let the team get disturbed too often, “The door from the business to the IT team is closed, whilst the door to the business from IT is always open”.

A common mistake is of management to assume that adding member to the team will speed up the sprint. It’s usually the other way around. Scaling should always be done slowly. While growing, together with the ScrumMaster (SM), a decision can be made to divide the scrum team in two. Do not simply duplicate the disciplines with new hires in an all- new team. Instead, split the existing team. Make sure the independent teams are still able to complete tickets autonomously. At first, it’s still ok to do backlog refinements together. Later, you can allocate an own backlog and own PO when necessary.

Scrum of scrums

With different scrum teams in place, a scrum of scrum meeting may be implemented, addressing coordination across teams in a simular fashion as the conventional standup. Due to the content nature, it’s not uncommon to send the PO instead of the SM. Alternatively to the group just standing in one room, walk past all the teams and their scrum boards.

Portfolio9

With a split team, the chief product owner can keep a scrum-team-per-lane overview with a so called “Epic board”, to helps to see inefficiencies and to plan future sprints together. When there are multiple teams, it’s advisable to plan demo’s after each other and together. Before the training, I read that Spotify implemented so called component teams, in which teams are allocated to various GUI components; one for the music player, another for the login window and so on. To facilitate this, technology needs to change the architecture. Component thinking could lead to double work between the teams but this is ok and a sertain isolated approach on similar things should be encouraged towards the team.

From the Q&A session:

Tips for increasing efficiency?

Let the team do a retrospective round on paper so everybody can give their opinion.
During planning poker, a discussion might occur. Sometimes it might help to end an argument with another round of planning poker instead of a guess from a few people.
‘Fist of five’ for commitment. Count down and raise a range from 1 to 5 fingers when you support the commitment.

Is a ‘research’ ticket a valid approach?

No. A research ticket is not part of work and should not be part of the sprint. A ticket should be completable within one running sprint.

What if you have dependence of a non scrum team?

When you know this in advance, the backlog item simply wasn’t ready and should be marked accordingly and as impediment. This has to be made clear to PO as quickly as possible. It shouldn’t belong at the top of the backlog, as it doesn’t have priority from the business. In that way, the SM is responsible for solving this situation.

Do you count the points of an unfinished ticket?

When a ticket isn’t finished in a certain sprint, do not count points for that ticket in that sprint.

Does the UX’er work in a ‘sprint zero’?

Sprint 0 does not exist. Sprint zero gives the idea that there is a phase where one doesn’t work. This is not the case. The PO and the UX’er have a secret side to the conventional scrum flow. Whilst the team is following the sprint, they already workout the tickets for the coming sprints. In that way they have a ‘secret’ sprint. A UX’er needs to find balance to work within the team, but also work ahead in making the UX foundations for templates before the sprint starts. If the UX’er does everything ahead of the sprint, the team cannot work together for optimal collaboration.

Should I create a second sprint to prioritize non-business things like IT?

get business priority for IT project. Remember to sell the problem, not the solution. Make sure that the BLI isn’t called ‘Varnish v4 upgrade’ but “Get our website to load within 200ms and increase conversion.” be clear about the results.

Tickets & backlog:

A nice way to avoid assumptions on the backlog is to create (abstract) user stories. Avoid assumptions by always asking why. It shouldn’t be possible that multiple items on the backlog are evenly important.

Scrum organization

I found that some organizations are completely scrum. At ING bank, they do standups at every level of the organization starting bottom up. When there is an impediment at bottom, it should be answerable within 2 hours when top management has a standup._

Hello world: Mia Dorresteijn

mia_HDR

I’m a father now! Suna gave birth to a healthy daughter. Her  name is Mia Dorresteijn, she was born on 2nd of December 2014. Birth weight 3680 gram and a length of 51 cm. Both mother and baby are doing great!

oneyear

Continuous deployment model

We’re moving to continuous deployment; What is it, how does it impact the organization and how do we get there?

Early 2010, our DIY fashion company had a ‘heartbeat’, in which every Wednesday, just after lunch, we would release a new version of the website. Although scripted, this climax of a weeks work was always a stressful time for the developers. We had to get the entire staff to agree on the release window and run numerous tests before and afterwards. Due to the hassle of putting things live, some companies release less often, monthly or perhaps every month. Why such a fuss for a release?

Continuous deployment (CD) minimizes the time spent of putting new code to the live users, in production. This is done by automating each step up to deployment, avoiding human intervention where possible. Leading to less stress, which is good :-). In the last years, we’ve gone from ‘waterfall’ method, with an infrequent release, to a bi-weekly release. The next logic step would be to be continuously improving the site, without the ‘overhead’ of releasing software. This is not only a mentality change for the IT department, it also changes the entire organization as idea’s can be implemented in a swiftly (scrum) matter and less ‘project planning’ is involved.

CD leads to a number of advantages:

  1. * Due to automated testing of code combined with reviews quality will be improved
  2. * New ideas are realized quicker; as you can deploy an addition the same day!

To achieve this, we had a scan by Xebia which identifies the various ‘levels’ of automatic deployment. I think it’s an insightful overview and thus I wanted to share it here:

DevOps Monitoring Testing Provisioning Deploying Building
Level 5 Complete Operations and development are both part of the same multidisciplinary delivery team and share responsibilities. Monitoring of business level quality metrics. Predictive failure monitoring.
Monitoring data is used actively to improve the system.
100% fully automated tests all the way to production Self Service portal for requesting environments.
New environments are created with each new release. Network automatically configured.
Continuous end-to-end deployments. End-to-end automated gated builds.
Level 4 Advanced An envoy of operations works along in project, an envoy of development works along with operations. Application Health and Build/Deploy dashboards available to teams, provides continuous insight into quality, health and performance metrics. Automated dynamic quality tests like security scans, functional and performance tests guarantee quality of code. Environments created and torn down by a push of the button. Supporting systems automatically configured Test-gated deployments of end-to-end applications. Deployments occur over multiple environments. Central build environment.
Teams actively reuse generic components in a secure and controlled manner.
Level 3
Average
Development and operations work together when this is required. Monitoring of software quality, application performance. Reports accessible through dashboard. Automated static code and security analysis after code check in. Environments are identical. Operating System is virtualized. Several tools used to provision and configure an environment. Environments are identical. Roll out of applications performed by a push of the button. Auto- deployment to D, T, A and P. Build on commit. Archived components are made available for reuse by other teams.
Level 2
Beginner
Code accompanied with release notes with which operations should install and manage the application. Monitoring of application log files for errors. Reports generated on demand. Automated tests are initiated as soon as code is checked in. Tests are focused on unit /component testing only. Scripted installations per component for each environment. Supporting systems manually configured. Self service deployments to development and test. Automated builds are performed in a central area and activated manually.
Level 1
Base
Operations engaged at the end of the project. Monitoring of system metrics (CPU, disk, memory, process). Reports accessible to Operations. All tests require manual activity. Some tests are automated but have to be initiated by hand. Manual installation and configuration of Network, OS and software for middleware, databases, application servers, etc. Deployment through execution of separate deployment- and db scripts. Manual configurations and installs / env. Builds are performed on local workstation by use of one or more separate build scripts.

 

developing

Our team scored at level 3 during the scan some time ago. We’re working on achieving level 4 and later 5. For one, we puppetized our servers this year, allowing central management of their configuration, easy deploy of new machines.

At the early stage of the project, we introduced a so called building server (Jenkins) and put a monitor link on a large tv screen (photo) on the workfloor. This had immediate effect, firing hundreds of pre-written unit (code) and regression (tests on the frontend UI) every time a developer commits a piece of code to the ‘default’ (shippable) branch in our code repository. This saved our Quality Engineer a lot of time. It also made the process more visual, our team was able to see who broke the code. Next we’re scripted the deployment up to production. Here, human interference is still required but this is something we can let go once we trust the system more and more.

Write code > commit > pull request, review (manual) > build > package, staging > production > post deploy test

The final result will be a flow where a programmer will work on a new feature or bug in an own environment. (so called branch) Once the work is complete, the code will be pushed to the ‘default branch’; which will initiate a ‘review’ moment where another developer has to approve the change. The code is then on the default branch, which should at all times be ready to go to live. At this time, our build server will perform numerous unit and regression tests, upon which, the code is deployed to production. On production, another test is done to ensure the quality.

We still have some steps to go, but already reap the advantages of this system today.

Ozakajō Osaka castle

Originally called Ozakajō, it is one of Japan’s most famous castles, and played a major role in the unification of Japan during the sixteenth century of the Azuchi-Momoyama period. Osaka Castle is situated on a plot of land roughly one kilometer square. It is built on two raised platforms of landfill supported by sheer walls of cut rock, using a technique called Burdock piling, each overlooking a moat. The central castle building is five stories on the outside and eight stories on the inside, and built atop a tall stone foundation to protect its occupants from sword-bearing attackers.

With 15k views on flickr my best photo ever.

Create your own font!

Screen shot 2014-10-23 at 6.50.59 PM

The Internet is beautiful! Sometimes you find a gem that’s just worth sharing.

At myscriptfont.com, everyone can transform ones handwriting to a computer font. The process is simple:

  1. Print out the template
  2. Fill it out
  3. Scan it
  4. Upload to myscriptfont.com

The result is a TTF, SVG or OTF font which you can install on your computer or even online.

I made one together with Suna and the image above shows her reaction. Still thinking of the practicality of this but it’s interesting nonetheless!

Crocodile in the Yangtze

“We are fortunate to live in this time, we are fortunate to live in the Internet era. We are fortunate to live in China.” Said Jack Ma as he addressed his 16.000 employees in a stadium, as he is received with a rumbling applause.

I just finished watching ‘Crocodile in the Yangtze’. A story about how an English teacher starts alibaba.com in 1999 in Hangzhou and later taobao.com to compete and defeat ebay in his home country.

Having walked the streets of Hangzhou in 1999, I’m a bit sad I didn’t bump into this visionary leader. I’m really thankful to Porter Erisman that he has consciously recorded all these scene’s and putting it together into this retrospect on the growth of alibaba. It’s a story of an David beating Goliath.

Full movie: crocodileintheyangtze.com

Ran from Amsterdam tot Zaandam with Startpagina.nl

running

I’ve been avoiding large (marathon) events; why disturb the peace of running by yourself on a random dike in the Netherlands? However, I got invited for a run with the team of startpagina.nl and I couldn’t resist. It was also a great motivation for me to run throughout the summer.

This run from Amsterdam until Zaandam is one of the largest in the Netherlands with almost 90.000 participants.

I used to be very serious about my time; No talking, no sightseeing and straight to the finish. This day I decided to enjoy the experience. High fiving the little kids beside the road. Due to the warm weather, I drank some water at every stop (not something I usually do) and finished within my goal of 1h 30m.

at the start

This was my third event I ran on my five fingers and I realize it’s not so popular in the Netherlands. (people keep asking about them).

Arriving in Zaandam, I took the train back home. Leaving the town, I was pleasantly surprised with it’s center architecture. It looked typical Dutch but with a modern twist.

zaandam

Travelling Korea; The food, the people and the nature


What is it like to visit Korea? Well, look at the video above from “yongguk namja” and get an idea. It’s really an awesome place to travel to. Additional to the above, some highlights to my trip last week;

Arrived at the beach (Boryeong).

Arrived at the beach (Boryeong).

One of our new year resolutions was to visit the sea this summer. However, it didn’t seem to work out and as the weather turned cold already in the Netherlands I didn’t think it would happen. So I was delighted to visit the sea in Korea! Since the end of the summer season was also approaching here, family was worried that I wanted to swim, but to my surprise the sea was warmer then I’m used to. This Boryeong beach is famous for an annual mud festival. The place is buzzling with small dining ventures and mud therapy centers. And actually, I wasn’t the only one in the water; The people in the water came to swim or hang out on their inflatable boats. However NOT to get a tan on the beach as you see in Europe.

Hwe (회) with fresh sidedishes

Hwe (회) with fresh sidedishes

After swimming we ate ‘Whe”, thinly sliced raw fish and other raw seafood (similar to Japanese sashimi); This restaurant was based right outside the port, full with small fisher vessels. Based on the first floor of the building, we had a great view over the harbor. Whilst getting used to eating while sitting on the floor, the Soju was welcomed with these raw foods. (Korean rice liquor) The food wasn’t cheap but it was quite an experience.

Having a Chuseok dinner with the family. Felt part the group regardless of limited Korean.

Having a Chuseok dinner with the family. Felt part the group regardless of limited Korean.

Another marker of the end of the summer were the Chuseok preparations, which is a celebration of the good harvest, Koreans visit their ancestral hometowns and share a feast of Korean traditional food such as songpyeon and rice wines such as sindoju and dongdongju. It’s a typical time to meetup with the family. Unfortunately I had to travel back to the Netherlands for the real ceremony but I was happy to join the mother’s side of the family for a great dinner. A bit intimate photo but I really enjoyed this authentic experience. You can see me sharing a drink with my uncle’s.

Ran 11km until the 대전천. (new Daejeon bridge)

Ran 11km until the 대전천. (new Daejeon bridge)

To keep in shape and defeat jet-lag, I ran an 11km run upon arrival. I really wanted to run but Korean traffic seems really dangerous and I don’t like waiting for traffic lights while working out. An alternative plan was to do 40 rounds on the university’s running track. Fortunately, I found a river running all the way from our appartment to the city center. This was a great to run, as you can see in the photo there was a dedicated cycle track with soft asphalt. Mountains in the distance and a river. I saw crane birds, storks wonderful. Closer to the city, Koreans were sitting beside the water, I found that a friendly nod leads to smiles like 99% of the time :-)


In Korea, if you ask a barista for a ‘Dutch Coffee’ you get cold coffee with ice cubes.

The chemical lab looking device (photo) works like this: You add a liter of ice water in the top level water container, followed by about 100 grams of grounded coffee in the compartment below, then simply let’s it run and wait for about 6 hours. The ceramic or paper filter starts dripping and you store the dutch coffee in the fridge. Really refreshing! Whilst I saw this device for the first time in 2012, I was able to order Dutch coffee in most Korean coffee places, and even in Shanghai. Read more in my blogpost from 2012 regarding this coffee.

At Kakao office and meeting with Sun Hyun-woo of talktomeinkorean.com

At Kakao office and meeting with Sun Hyun-woo of talktomeinkorean.com

Korea is such a dynamic place which gives me a lot of energy. Yesterday I meetup with Kakao. Their Kakaotalk messenger is the ‘Whatsapp/wechat’ of Korea, and outside. They have 140 million visitors, it’s great technology of which a lot can be learned. Very exciting to see their office from the inside and have a peek into this technology company; It shows that Korea harbors modern and cutting edge technology companies these days. See more pictures from their office here.

Besides Kakao, I also had the pleasure to meet Sun Hyun Woo. Hyunwoo Sun is a YouTube star and the best Korean language teacher in the world. Period. Together with the team he built he has a community of over 110.000 Korean learners (200k facebook likes) around the world. If you are interested in Korea and the Korean language there is no way not to find Hyunwoo Sun’s free lessons on http://talktomeinkorean.com. Since talktomeinkorean and eatyourkimchi.com started a cafe (named you are here cafe) in Hongdae, we couldn’t resist to have a look and meet the people behind this concepts.

Compulsary Korean barbeque on the last night

Compulsary Korean barbeque on the last night

It was a short trip. Almost forgot to eat some Korean barbeque. Actually, Korean food is about way much more then barbeque. But who can say no to such a dinner before leaving back home?

Long weekend in Shanghai

20140826-180812.jpg
It seems to be a good tradition to visit Shanghai now and then. We met up with friends and ate the fruits and dishes that we craved.

Arriving during Friday’s traffic rush, we had some trouble hailing a taxi from the metro station. A friendly passerby explained that you can bid for taxi’s with an app these days, but instead I called a friend to pick us up.

On Saturday we enjoyed a south Chinese lunch (小南国), haggled for presents at pearl city (didn’t do that for a long time!), and ate a modern Shanghainese meal (Lynn) with different friends.

However good and rich the Chinese kitchen is, the next day we enjoyed Japanese foods like okonomiyaki, shabu shabu, and soba; as those are all also hard to get in my home country. Afterwards we left for a stay at the sofitel Sheshan, a bit outside the city; again amazed by the size of Shanghai, and the ghostly quiet rows of skyscrapers, block after block with each probably capable to host all the people of my small town of Culemborg.

Shanghai is such an energetic city and there is so much to do; we both think it was worth coming here, if even for a short time! Leaving at 5 am to the airport, the G20 was already busy with cars (day and night) and we realized the smog also continues day and night. It has been getting worse and breathing it is the price to pay to live here, I guess one can’t have it all.
20140826-174313.jpg

20140826-172738.jpg

20140826-172938.jpg 20140826-173120.jpg

20140826-174420.jpg

20140826-180820.jpg20140826-173053.jpg 20140828-081241.jpg

At work; upgraded kieskeurig.nl

I met a colleague in the hallway last week and he asked me about the planned upcoming release of Kieskeurig.nl; He called it a “major league” event. Weirdly, as technical manager of the site, I wasn’t worried about the launch event at all.

“major league”? well, ok, with 2,7 million visits a month a lot was at stake, but we had gone through the entire launch procedure dozens of times. Nothing could go wrong. Personally, I couldn’t wait to launch the user-friendly and responsive site, with improved search and support for new product groups like garden, pharmacy and cosmetics. It was actually long due.

The deadline was today. So we launched yesterday – in the middle of the night, the whole team (which grew a lot recently) joined in to help. Even if only to help with testing, and to be part of it. It was a short night, and when I made my way to the office this morning, we started a hour-to-hour-post-it-based-standups to prioritise potential problems for the site. Needless to say, we ended the day with bubbles and cake.

BtNflHZIQAAvKOD.jpg_large

I took away a lof of valuable learnings about the process:

  • We work scrum, but just before the launch, had to let go of some of the procedures. Be flexible.
  • Work closely together with experts, the industry and visitors to gain insight. (Reason for us to do AB testing of the site before launch)
  • A sharp deadline (though sometimes painful) works wonders when trying to achieve a lot in little time.
  • I’m really proud of what we build and I want to thank the whole team for their efforts. Tomorrow the real fun starts, in the next chapter.

    visit the site here: http://www.kieskeurig.nl

    2004

    2004

    2005

    2005

    2006

    2006

    2007

    2007

    2008

    2008

    2012

    2012

    2013

    2013

    2014

    2014