dcembre 2010Monthly :

Scrum for Team System 3.0

Our customers know that each month sees another release (8 months, 8 releases). We just release Urban Turtle version 3.7 and, although this is still in beta, this version include built-in support for Scrum for Team System 3.0 process template. We know this is a popular template and we hope you will want to try it and send us suggestions. Do not forget that the best way to make a suggestion is by sharing your idea on our community site. Through the community site, others can vote for your ideas and increase their priority.

http://community.urbanturtle.com/urbanturtle#idea

By design, Urban Turtle can work with any TFS process template, whether it is a widely available template such as Microsoft Visual Studio Scrum or a custom template built specifically for your organization. Out of the box, for compatibility with existing process templates, Urban Turtle supports MSF Agile 5.0 (French and English), Microsoft Visual Studio Scrum 1.0 and Scrum for Team System 3.0.

Support for TFS process template is based on external configuration mapping files which can be managed by administrators. For instance, adding support for your own process template only required to create a new mapping file and didn’t involve any changes to the application itself. Anybody who understands XML can do this. The XML configuration mapping file is located at:

%TFS INSTALL DIR%Application TierWeb AccessWebUrbanTurtleconfigurationproject

Although we have yet to release formal documentation for the mapping files, we do provide support should you wish to customize Urban Turtle to better fit with your current process template.

Finally, the Solution For a Bug Free Backlog(part 2)

Here’s a follow up to part 1 of this series.

We’ve decided to keep only these two types of issues in our backlog :

- New Feature
- Improvement.

A new feature can be either a new story or even something people might see as a “bug”.

The whole discussion stemmed from two broken links at the base of our Hibou webapp. We had 0 test for these. None.

They were added in a rush in the footer of our web page at the end of Codapalooza. And I mean really, how many people do you know who have written tests for a link towards your companies website and your team’s website.

Well guess what ? The only part of the whole app we did not test was broken as hell and nobody knew.

A quick reflex would have been to raise a bug, fix the bug and close the issue.

We had a discussion and tried to push things forward. Why didn’t we have a test for this ? What were we trying to accomplish by adding these two links ?

This got us thinking in a logical manner and we figured out that these two links were actually a feature.

We had added these link as a marketing feature in order to promote our team and company.

We then took the bug and wrote a story that looked a little like this :

As a marketer, I would like to see marketing of our organization and team throughout our website in order to promote our team.

Having a story, we can then sit down with our marketing buddy, fiund out what his real needs are and then develop the feature accordingly. All of this using TDD/BDD of course.

What do we use improvements for ? I’ll let you know in a little while.

-Nicholas Lemay

Issue with Android and IntelliJ

During the Codapalooza, we use intelliJ to develop our Android Application.

IntelliJ is a great IDE, but we found an issue with it.

The issue was that the compile was failing with the fallowing error:

  • error : error : null

After an investigation on the net, we discover that it was only because the libs folder was not in the project.  We simply added the folder and everything was working after that.

This was on version nine of intelliJ but i hope in version ten it will be fix.

Finally, the Solution For a Bug Free Backlog

This morning, I found a little bug in our open source Ruby on Rails app code-named Hibou that we developped as team sosoft during Codapalooza.

Business as usual right ? I fired up Jira and added a new issue in our GreenHopper backlog. Done. I went back to my mails.

Eric then came over and we had a talk. He suggested that I not only remove the bug from our backlog, but that we remove the bug issue type entirely from our project.

I was a bit dumbfounded. More talk ensued.

Guess what ? A few minutes later, he had me convinced and we did remove bugs entirely from our backlog. Wondering why we did this ? Wondering how we will keep track of the bugs found by our users ? Wondering how we will keep track of the bugs being fixed ? You think we’re loonies ?

Well I don’t feel like giving away all the answers now. If you guys are interested, let’s continue this conversation and see where we end up.

- Nicholas Lemay

Which stance should I take? The 4 quadrants of Agile Managers

I completed my 360 degree year end performance evaluation last week but this post is not about performance reviews. This post is the mental model I developed following a comment I received during the 360 degree discussions.

Martin, we recognize you are a good coach but as the president of the organization, we still expect you to act as a manager and take a position or make decisions instead of simply asking us questions.

As any other coach out there ever received similar feedback from the team they work with? In my opinion, this is recurring question asked to coaches.

Since defining what my role should be as the leader of a self-organized team, I’ve adapted my leadership style from traditional to coaching, with apparently good impact. Unfortunately, I may have pushed the coaching stance a little too much and need to adjust in order to meet the expectation of a leader.

The above statement and questions that followed in my head, led me to develop a mental model to determine which stance I could take in a conversation. The model also aims to help others who wish to be agile managers, and determine the right stance to take in different circumstances.

Two perspectives and two dimensions

Below is my mental model which takes into considerations both participants’ perspective on a specific situation – the other person’s (to the left) and yours (at the bottom).

Each of the two people either has a complete and immediate answer or solution to the situation at hand or an incomplete and/or untimely answer (which means the person is likely to find the complete answer after thinking about it for a while but the time frame is shorter than the allowed time. These two dimensions offer four possibilities or four quadrants.

Debating

In this situation, the other person already has the answer (or solution) to a specific situation while your knowledge of the topic is incomplete (or absent). Consequently, the only way you can actually contribute to the discussion is by improving the solution and by challenging the other person’s answer in an attempt to improve the answer or the outcome.

Coaching

In a situation when neither of the two participants know the answer to a specific situation, you can take a coaching stance. As such, asking clear questions in an attempt to help the other person come up by themselves with the answer to the situation. This stance allows the development of the individual as opposed to the improvement of the solution.

Educating

In the situation where you already know the answer but the other person doesn’t, you share the answer to the situation and explain how you got to the solution. The objective is to develop the skills of the other person so they may come up with their answer next time they are faced with a similar challenge. As with the coaching stance, acting as the educator focuses on the development of the individual which will eventually take you to the exploring stance.

Exploring

In this situation both parties already clearly know the answer to the situation and as such, a discussion takes place to explore all perspectives in an attempt to make sure the best options have been properly covered. As with the debating stance, the exploration aims at improving the quality of the idea since the individual already came up with the solution.

Using these four quadrants makes it easier to determine up front which position I will be taking in the conversation and allows me to be fully coherent from one discussion to the next.

Stop modifying JIRA Mail Templates…Create your own!

With Minyaa 2.2, the Timesheet Management comes with a dedicated notification mechanism.

Timesheet Management introduces the Notification Type Timesheet Approver

and the set of Mail Template associated to the Timesheet Events…

Two new features in Minyaa Core have been introduced, allowing you to define your own Notification Type and Mail Templates.

These solutions require only a small effort in terms of development, allowing you to integrate your own Notification Types and Mail Templates into a plugin.

For Notification Type, the process is as follows:

  1. Create your own plugin with its atlassian-plugin.xml
  2. Create a descriptor of all Notification Type provided by the plugin
  3. Create a Class in charge of subscribing itself to the Notification Type Directory
  4. Create a Class for each Notification Type

See details here.

For Mail Templates, the process is as follows:

  1. Create your own plugin with its atlassian-plugin.xml
  2. Create a descriptor of all Mail Template provided by the plugin
  3. Create a Class in charge of subscribing itself to the Notification Type Directory
  4. Create required template for Mail rendering:
    • Mail Subject
    • Mail Body in Text
    • Mail Body in HTML

See details here.

For the moment, since these extensions are embedded in a plugin, there is no editor yet. However, it is easier to deploy than applying modifications in an existing Template.

Next steps:

  • Template stored in Database
  • probably an editor
  • and perhaps a dedicated Scheme

More to follow…

GreenPepper 2.8 now available

This new release includes a performance improvements for the Hudson plugin, use of Maven coordinates for the Maven Runner, greenpepper-include-macro now available for the XWiki plugin, many improvements to the core and much more…

See the release notes for more details…

Adaptation, Anticipation, Exploration – guest post by Jurgen Appelo

(Thanks to Jurgen Appelo for this guest post - © 2010 Jurgen Appelo)

The business unit I was leading some months ago was a fine example of a complex adaptive system trying to survive. As a young start-up business, our prime objective was to find paying customers. We anticipated in which places we could find them, and we adapted when it turned out they weren’t there. (Regrettably, the second often follows the first. For many startup businesses survival is a long process of learning what doesn’t work.) And sometimes we simply experimented, not knowing whether the results would be good or bad, only to learn what worked and what didn’t.

In most agile methods, this learning takes place in the form of increments and reflections, both of which are done iteratively. An increment is a new release of a product into its intended environment, and its main purpose is to invite feedback that enables learning, adaptation (looking backward) and exploration (trying things out), while reducing the need for anticipation (looking forward) to a manageable level. The released product influences the environment, and the environment then responds to it in some (possibly unexpected) ways. The knowledge gained is used to adapt, to anticipate what will be needed in the next release, or to continue exploring when we still don’t know.

Reflections (often called retrospectives) are used to understand whether or not the project itself is operating in the right way, and how to improve parts of it in order to be more successful. The last team I worked on delivered many increments of our tools, some of which were successful, and some of which failed miserably. And we had plenty of reflections on how we ran our business, some of which were rather painful, and some of which hurt like hell.

Increments and reflections are an example of double-loop learning, a concept proposed by business theorists Chris Argyris and Donald Schön. An often cited example of double-loop learning is the simple thermostat combined with a human operator (which I will repeat here, for lack of inspiration). The thermostat adjusts itself frequently based on the information about room temperatures that it gets from the environment (the first loop, using a model of the environment). But the thermostat is operated by a human being who modifies its settings based on her earlier experiences with comfortable temperatures and anticipated changes like holidays or weather forecasts (the second loop, refining the model of the environment) [Augustine 2005:170].

I think that continuous improvement in a business environment takes place in two loops, and involves adaptation, exploration, and anticipation (see Figure 1).

Figure 1 - Double-loop learning versus improvement

Though adaptation is often mentioned as a key component in agile software development, we shouldn’t forget the role of exploration and anticipation in our businesses. We not only need to solve problems. We also must try new things just to see what happens, and innovate by developing solutions to issues that we think will be important (in the next release, or shortly thereafter).

We expect uncertainty and manage for it through iterations, anticipation, and adaptation. (Declaration of Interdependence)

Doesn’t Anticipation Violate Agile?

Anticipation is like alcohol. It is healthy when used in a small dose. But it is addictive, and most people use far too much of it.

Agile software development does not reject anticipation. But it tries to reduce it to the smallest possible amount, where it is still beneficial instead of harmful.

In my former little startup business, we did plenty of adaptation, exploration, and anticipation. Frankly, I did so much double-loop learning with my team that my brain thought it was a roller coaster.

Are you adapting, exploring, and anticipating too?

This article is an adaptation from a text out of the book “Management 3.0: Leading Agile Developers, Developing Agile Leaders,” by Jurgen Appelo. The book will be published by Addison-Wesley, in Mike Cohn’s Signature Series, and will be available in book stores near the end of 2010.

http://management30.com

http://mikecohnsignatureseries.com

References

Augustine, Sanjiv. Managing Agile Projects. Upper Saddle River: Prentice Hall Professional Technical Reference, 2005.

Why did Santa deliver the gifts 2 weeks early this year?

Image by Matti MattilaImagine my surprise as we were having dinner last night around 6:40 pm (fettuccine alfredo was on the menu) when I heard a huge “bang” coming from the chimney. The twins, my wife and I quickly got up and went to the living room to discover a dusty Santa Claus putting gifts under the Christmas tree.

“What the heck?”, I said out loud. “Santa, it’s 6:40 pm on December 12th! What are you doing?”, I asked.

“Ho, Ho Ho!” said the old man. “What do you mean? I’m delivering your Christmas gifts. Can’t you see?” said Santa.

“I can clearly see that you are bringing gifts but my question is why on the evening of December 12th? You are 2 weeks early!” I said looking at the various gifts on the floor. All of a sudden I noticed one gift wasn’t even wrapped.

Santa noticed I saw the un-wrapped gift and said “Sorry about this one, there are a few little issues but it should do the job for now anyway – especially considering I am 1 year late!”, he added “… and I apologize since these gifts are for 2009. I’ve really busted my timelines this year”. Whipping his forehead, Santa said, “I don’t have much time to explain but I prepared this document for you to explain everything. I am sure you will find it very useful. My elves spent the last 9 weeks writing the document”.

“They elves wrote a document instead of working on preparing the gifts? Really!”, I said.

Before I could say anything else Santa turned around, moved up the chimney and disappeared. My wife and kids looked at me stuned.

“Daddy, what’s wrong with Santa?” asked Alessia.

“Sweety, daddy doesn’t quit know but I’m sure I will find the answer in the huge manual Santa left us”, I said pointing toward the document.

“Daddy, look! This box is wrapped with toilet paper and it looks like it was open. What’s in there?” asked Giordano. Before I could even speak, he had ripped the paper and opened the gift. “Daddy, these are the pokemon cards I asked for last year. I’m too old to play with these. I don’t need them anymore” said my son angrily.

“Dear Mister. With the greatest magnitude of our sorrows and an unexplainable reason ask for your forgiveness in the event of the delay for the gifts of Christmas and to your honorable family…” I read from the document. ”Honey, this looks like it was translated into bad English. “Do you think Santa outsourced the elves’ work this year?” asked my wife.

Flipping true the book, “It looks like Santa claims that as part of the implicit agreement and based on our list of last year wish list, he delivered what we asked for”, I explained. “As I can see from the documentation, Santa no longer accepts changes in people’s request which is way he delivered what we asked for – even if it is no longer required”, I told my wife.

“Mommy, looks like Santa dropped an envelop on the floor before leaving”, said my daughter as she gave the envelop to my wife.

“Well, I can’t believe it. Santa is asking for a bigger budget and claims he will deliver the remaining gifts around March 14th!”, said my wife clearly upset.

“Wait a minute” I shouted. “It seems to me that Santa should be using Scrum next year. I’ll give him a call on Monday to explain how it could help him deliver on the expectations…”, I concluded before we all went back to a cold dinner.