Thursday, November 27, 2008

It is a craft aka when do we start the thinking

I participated to OO Days at Tampere University of Technology. The days were quite commercial (way too many open sales pitches about tools) but luckily there were also few good talks.

Alistair Cockburn was giving a talk about Effective Software Development In The 21st Century: The New Face Of Software Engineering that made me thinking the craft of software development. Take a look at his slides.

Another great talk came from James O. Coplien, I especially liked his criticism towards agile implementations and our industry not thinking nor feeling.

Nokia: Making the impossible happen: a few hundred synchronized Scrums -- setup and experiences was pretty "scratch the surface" kind of talk. It sounded very familiar based on the customers I have tried to help scale up. I was disappointed by the fact that Juha-Markus Aalto could not tell us if they actually had improved their cycle-time or even decreased the number of defects.

I find it disturbing that they have put gazillions of euros to get the implementation going on and they do not have any numbers to prove that it would be worth of it - why did they even started scaling before finding this out?!

Tuesday, November 18, 2008

I release my software every day

We had a new office opening party at our premises and as part of the party we were telling about Nextdoor, which is pretty nice web application.

The thing that got most of the interest was the way we have developed it and how we are able to release it every day. As an agile coach I have seen teams applying Scrum or even trying the XP practices, but still not getting stuff out fast due to various blockers in their value stream.

As part of the Nextdoor development we have wanted to demonstrate that "It can be done even you are not 'Google'" and to be honest we have even surprised ourselves with the results.

So to give you some idea what we have done so far:
  • We have a web application that has over 400 use cases
  • All the use cases are automatically tested by our automated acceptance tests on every build (build time about 1 hour, including tests, reports, and deployments)
  • We have practiced "Test-First", meaning that before we write any new functionality, we write the test first (we actually do that in cycles, but still)
  • The implementation from the day that we bought the hardware and started installing software has taken about 120 man days
It has been quite challenging in various aspects. Here is few of the challenges we have faced:
  • Our Scrum team is not co-located
  • All the team members have been part-timers, which makes velocity tracking and coordination pretty hard
  • Usability and interaction design has been challenging
  • We have tried to merge any outsourced resources to our Scrum
  • Some test scenarios are pretty complex (for instance testing of Google Maps integration or fancy AJAX components)
Despite the challenges faced we have seen very good results with our implementation of Scrum and agile engineering practices. For instance we have found that the bug tracking has become actually "fix tracking" as no bug lives very long (most of them get fixed in 24 hours) and therefore the priority of the bug has become almost irrelevant. With 24 hours release cycle the customer (our Product Owner) has become almost a bottleneck as he cannot revise the implemented stories within that time frame. Naturally we release some bigger features via sprint demo (every 2 weeks) still so not all the features are released in "one day pieces".

Some people have argued that our software is not very lean as the test mass that can see as machinery to produce quality software is pretty big and requires maintenance. We agree, but we still are confident about paying the price in order to be able to release as often as we do.

I need to stress that implementing Scrum (or any agile method) requires a lot from the people. You have to be very disciplined to get it right and not to forget adjust and learn from the previous sprint/iteration/thing that you have done. Inspect-Adapt cycle may sound easy, but it is not.

Do not forget the 0-step of every method: Think

Want to hear more? Mail me (marko dot taipale at huitale dot com) and lets see if I can arrange a demo for you :)

Markus also has blogged about this.

Saturday, November 1, 2008

Scandinavian Agile Conference 2008 is over

Based on gut-feeling it was pretty good. We are just about to collect feedback from the visitors to improve it (yeah, Scan-Agile 2009 will happen). I want to thank the speakers (especially the ones that were on Practioners track ;) ) and the visitors (as Vasco puts it: "You are the Agile Finland").

I also want to thank Markus Hjort for co-chairing the track with me and rest of the organizers for giving me a chance to be part of it.

Some stuff that has come online so far:

From Pascal van Cauwenberghe - Business Value Game pictures:
http://blog.nayima.be/2008/11/01/pictures-of-scandinavian-agile/

From Artem Marchenko - Open Space session about Distributed and offshore teams:
http://agilesoftwaredevelopment.com/blog/artem/secret-sauce-offshoring-and-distribution-summary-scan-agile-open-space-session