Archive for February, 2010

h1

How transparent is Scrum?

February 24, 2010

transparencyThe Scrum Guide states that transparency is one of the three legs underpinning Scrum, with inspection and adaption being the other two. Since adaption depends on inspection and inspection depends on transparency, one could argue that transparency is the foundation of Scrum. So I came to ask myself: How transparent is Scrum?

Why is transparency so important?

Because

  • it makes inspection possible, which is needed for adaption
  • it enables visibility, to observe and understand what is happening
  • it leads to more communication
  • it establishes trust (in the process, as well as among team members)

This is why I think transparency is at the core of every good development process.

How does Scrum create transparency?

  • A visual (physical) task board is a great tool to raise the team’s visibility of the status of the current Sprint. For me the instant status report for manager type people is a mere side effect. Much more important is the constant feedback for the team – to be aware of the progress within the Sprint. Only with this knowledge can the team be truly self-organizing. This is why I am usually against all these software tools that try to replace a physical task board. Yes, there is a slight overhead to produce index cards and print out the burndown chart, but in my opinion it is minor in comparison to the raised level of transparency. Advocates of Kanban say that the typical Scrum task board with its columns for Backlog, In Progress and Done is not transparent enough. The column In Progress is a black box, hiding states like Analysis or Development. What is the right granularity for your team depends on your context, like the complexity of your development process, team size and others. My advice is to try keeping it as simple as possible without sacrificing transparency.
  • Early feedback is essential to make sure you are doing the right thing and that you are doing it right. It enables the team to discover and correct any errors and misconceptions as soon as possible. Feedback cycles can be applied at every level of development: pair programming, unit tests, acceptance tests, Daily Scrums, Sprints and releases. The time frames of these cycles range from seconds to months and the feedback is coming from different sources: your colleagues, automated tests, the Product Owner and most importantly the users of your product.
  • Future work seems to be predictable. This is achieved by the Product Backlog, which can be examined by anyone anytime. This creates a sense of predictability during the project. Even though most team members barely ever look at it, its existence creates the illusion of anticipation of where the project is heading.
  • Cross-functional teams work together on a common task. In an ideal (software development) world there is no them only an us. More often than not there is a bit of rivalry and tension when developers, testers and DBAs  are in separate teams. This is because they don’t understand each others pain points, caused by a lack of communication and transparency between teams. In big organizations they might not even sit in the same office or know each other personally. People tend to be so much more understanding and forgiving when they communicate face to face rather than via email. By putting all needed specialists within the same team, Scrum enables communication between them and makes their needs transparent to each other.

Nowhere left to hide

Even though transparency is so important and brings the above described advantages your team might be reluctant about working in a glass house process. To happily do so requires the team to be comfortable with admitting mistakes. Mistakes are inevitable and they are not necessarily a bad thing either. Making mistakes is quite possibly the best learning technique that is out there, as long as you don’t forget about the learning part.

Are you ready for the truth?

This can of course only be achieved if the people leaders of the team have the above understanding about mistakes and react appropriately on them. If your team is scared to admit mistakes, they won’t. They also won’t adopt a transparent process. So be aware that the truth might not look as nice as the filtered reports you are used to. It’s kind of a red pill – blue pill thing.

What did I miss?

  • What other reasons are there why transparency is important?
  • What other things make Scrum transparent?
  • What makes Scrum less transparent?
  • What are other processes using to create transparency?
Image by *SΛM via Flickr
h1

A domain name system for people

February 11, 2010

Yellow PagesLast week my best friend sat the last exam for his university degree. I am currently living on the opposite side of the world, but I wanted to at least send him a text on his cell phone to wish him good luck and to let him know that I am proud of him. Only days later did I remember that he sent me his new phone number and that I haven’t updated my address book yet.

A better world

I wondered if there couldn’t be a service that would automatically update my phone’s address book whenever one of my contacts changed their phone number. This also means that in case I changed my own phone number, I wouldn’t have to notify all my contacts. Coming from an IT angle, I see this service to be similar to a domain name system (DNS) that translates web site names into IP addresses, only with names of people and phone numbers. The most important feature of a DNS is that “it translates domain names meaningful to humans into the numerical (binary) identifiers associated with networking equipment for the purpose of locating and addressing these devices worldwide.” Ideally, I would like to completely abstract away from phone numbers and only need to remember my friends’ names. After all, I want to reach a person not a phone – just like you want to see a website without caring what server it is hosted on. As with IP addresses, people could be completely oblivious to the fact that there even is a number. In this improved world if I wanted to call someone, I just need to know his name.

Don’t stop there

Phone numbers are of course not the limit. The same approach works for physical addresses, email addresses, or any other means by which you can reach a person. Whenever any of your friends changes their contact details, your phone’s address book automatically updates itself.

Back off

Does that mean anyone can find your phone number and your other details just by knowing your name? Or even worse, just randomly pick a number and get your name with it? You probably don’t want that, unless you enjoy spending your time talking to strangers about random polls and lottery tickets. There needs to be some kind of white listing, so you can choose who is allowed to see your details.

Yet another service

This means you and your contacts would have to sign up with this DNS to exchange the right to see each others details. There would probably be a website (with some IP address you don’t care about) to keep your details up-to-date and to manage your contacts. You have your doubts that you will get all, or at least most of your friends, to sign up for yet another website? Granted, but here is the good news: Chances are, you and your friends already have. Long live social networking!

Leverage what you have

With Facebook and Co. growing every day all you need is an application on your phone that logs into your favorite social network and gets the details of your friends and checks for updates from time to time. Only your friends could access your details (if you shall choose so) and you could totally forget about their numbers. After all, you want to call a person with a name, not a phone with a number.

h1

Personas are the tests for requirements gathering

February 3, 2010

John Doe PersonaI just watched a presentation by Jeff Patton about using personas for requirements gathering. I especially liked his comparison of personas to tests in test driven development (TDD). He argues that using personas for requirements gathering is like TDD for development. Personas are the tests for your requirements.

Like tests in development your personas should be created first and your requirements built from them. This also implies that your personas need to be specific, concrete examples from the pool of users, representatives, like tests with concrete values.

Just like tests in TDD help you design your application, personas help you understand the problem space of your application. If you can’t create a concrete persona you probably haven’t understood the problem space well enough.

Tell me a story

Personas are closely related to the topic of storytelling. In his article Better User Experience with Storytelling Francisco Inchauste states:

By centering around a specific theme, or character, the uncoordinated elements of an experience all have a clear goal and purpose. With storytelling, a diverse team creating a website or application can collectively link together the tangible elements and create something that is a meaningful experience and is more than just bits and bytes. [...] Using the created personas and then creating stories about them, we are able to cast a more meaningful vision of the project.

Personas and their stories help the team understand how users will experience the built website or application and how it affects them at an emotional level.

To find out more about personas have a look at the before mentioned presentation by Jeff Patton, this presentation by Alex Horstmann and on Cooper.com.

Image by MIT