Quick Links Week #7

January 18, 2010 in Agile, Links by Mark Levison

PeterDrucker002_jpg[1] Sorry for the missing a week – I’ve got serious business site renovations going on stay tuned for an announcement in the next week or two (Note this is an estimate and not a commitment).

Jonathan Rasmusson offers the Drucker Exercise a simple way to get a team to gel at the start of a project. I think I might use this with the next team I coach to help break down those initial barriers.

The Mostly Free Detroit Agile Conference a great little conference in Dearbon Michigan (a bit far from Ottawa). Which leads to Matt Heusser: Conferences on the cheap – Matt offers ways of doing conferences for much less than the expected rate.

I keep on hearing about Continuous Deployment and while I think that most teams are not ready for this by a long shot – its one hell of a goal. Eric Reis introduced me to a great case study from Ash Mauyra. The downside of being an outside coach is I rarely get to see clients make it to this level. Usually they let go of their outside consultants long before they get to this stage. Way to got Ash.

Over at Cutter Jim Highsmith has some good reminders around Self-discipline and Self-organization. Short, simple and sweet.

A very large list of on line collaboration tools. Might be useful assuming that you feel you really need distributed teams (see Self Inflicted Agile Injuries).

A Community of Thinkers – A personal commitment

January 14, 2010 in Agile by Mark Levison

imageIn December Liz Keogh, Eric Willeke and Jean Tabaka finding themselves in Boulder at the same time got together at the Rally offices. In only a day they managed to draft a statement of the beliefs and respect. If we all agree to follow them and respect each other many of the rifts that have appear in the Agile community in the past year will start to heal (see the comments under Jean’s post: “Escalation” for examples of those rifts. Also see the Cutter 2010 predictions).

Agile Quick Links Week #6

January 5, 2010 in Agile, Links, TDD by Mark Levison

image I’m back in the saddle after having taking a couple of weeks off the internet.

This week we open with a pair of posts around TDD. First up Scott Miller of Atomic Objects ran a simple experiment: Faster, better, cheaper! TDD wins in a simple experiment and then earlier this year Mike (GeePaw) Hill wrote: How TDD and Pairing Increase Production a good explanation as to why it works.

Xavier Quesada Allue aka Mr Visual offers: Build a taskboard in 10 steps.

Not a blog post but a useful tool: Sonar from Codehaus may give a way of measuring some (but not all) of your technical debt.

Dean Leffingwell uses Little’s Law, Queuing Theory and Starbucks to show us why large backlogs are not Agile: An Agile Illusion: How That Nice Backlog is Actually Decreasing Your Team’s Agility

Anyone who has taken Agile Training from has heard my remarks about team size. Johanna Rothman gives us: “Ideal” Team Size and Ratios – I’m with her more 9-10 people on a team and you will get separate sub teams forming. On the subject of how many testers/writers does a team need? I like to start with one of each and add developers until they’re at capacity.

Richard Lawrence is chugging away and creating new versions of Cuke4Nuke – a version of cucumber that allows you write your step definitions in .NET: Screencast: Testing Web Applications in .NET with Cuke4Nuke and WatiN

Michael Dubkaov shows us why its a good idea for developers to have some slack time: Kanban Psychology. Can You Say No?

Self Inflicted Agile Injuries

December 20, 2009 in Agile, Tools by Mark Levison

image Offshoring is frequently promoted as a way to produce great products for far less money. So many software development companies boast about sending large amounts of their work to India or China to reduce costs. Unfortunately in doing so they’re often reluctant to pay the price to create and maintain high performance distributed teams.

Agile works on the basis of a few simple principles:

  • Short Feedback loops – which leads to iterations, TDD, …
  • Radical Transparency – which leads to daily standup, demo/review, …
  • Face to Face Communications – which leads to high trust, group problem solving, …
  • Value – which leads to eliminating waste
  • Continuous Improvement – which leads to retrospective, adoption of engineering practices.

Thinking back on every project that I’ve ever worked on (Agile or not) the quality of communications was a good predictor of the success. So when we run distributed teams there has to be a focus on making the communications work.

At best the typical approach to this problem is to buy web cams, fancy video conferencing software and conduct our meetings sitting in front of them. But that misses the point – these devices improve the quality of communications but not enough. They don’t build trust. To really build trust you have to meet face to face for at least a week. Unfortunately trust is weakened through the course of the year, so it has to be renewed. At a minimum team members need to visit each other twice a year.

So if you really want to get a high performing team – don’t underestimate the real costs, budget for travel – a minimum of twice a year to build and maintain trust. Don’t short change your distributed teams.

Agile Quick Links Week #5

December 15, 2009 in Agile, Games, Links by Mark Levison

This edition of the Agile Quick Links is being brought to you from a hotel room in Santa Clara.

Matt Heusser takes on one of my favorite recent peeves with: The Fishing Maturity Model.

Gojko Adzic writes about a recent XPDay 09 session: Shock therapy agile adoption at 7Digital. The good news with this shock therapy is that no humans appear to have been harmed in the process.

High Performance teams (see: "The Wisdom of Teams" by Jon Katzenbach and Douglas Smith) is important background for Agile teams. In “What makes a true team” The Financial Post has effectively done a good job of summarizing Katzenbach and Smith.

Looking for good Lean games, I was reminded of the Theory of Constraints dice game: What is the Dice Game or Match-Bowl Experiment? (quick description) and The Dice Game(s) – better explanation and a chance to fire people if the dice don’t their way :-)

Like clock work every 2-3 months someone on the Scrum Development mailing lists asks: “Can the Product Owner and the Scrum Master the same Person?”. Thanks to Boris Gloger we now have 10 reasons to say no.

We’ve all seen the results of individual rewards – pay someone to fix bugs – you will breed bug writers. Reward Firefighters (on a team) and you will get firefighters. Laszlo Szalvay wrote: Personal Heroics vs. Team Success.

Quick Agile Links Week #3

November 30, 2009 in Agile, Links, Science by Mark Levison

This week I’m leading off with a pair of items on the Brain and recovering from challenging Cognitive tasks: Cognitive Recovery Time and A Dream Interpretation: Tuneups for the Brain (NY Times – login required). The first suggests that your brain needs some recovery time after doing something “challenged” your brain. The second reinforces the importance of sleep and dreams in integrating ideas and information. What this says for TEDx attendees next week – I’m not sure expect that we presenters will have to work hard to make our ideas stick. I also think its a bad sign for the typical two-three day Agile training course.

Joe Little shares his: Agile Principles – examples: all WIP is bad, bad news doesn’t get better with age, You learn the fastest by small mistakes.

Ilja Preuss says something that’s been on my mind for a while: Index Cards are Tools, too!

Johanna Rothmann tells “How Not to Win Friends and Influence People” – I’m only disappointed that she didn’t name names.

Finally Abby Fichtner reminds us: Agile Leadership: Methodology Ain't Enough

If you enjoyed this post, subscribe now to get free updates.

If you want to bring Mark into your organization for Training, Coaching or Consulting please visit the corporate site: The Agile Consortium.

Why use an Agile Coach?

November 23, 2009 in Agile by Mark Levison

metal Whistle From time to time I get asked the question why use an Agile Coach I’ve read a book or taken a CSM course. It seems pretty easy. So why would I want to hire a coach?

With just a single team this is basically right, a good coach will still make a difference but you can bootstrap your efforts on your own.

So why use a coach:

  • You want to get going faster
  • You want to avoid the mistakes that most people make when they start (Scrummerfall, Command and Control Management).
  • You’ve started and don’t know how to deal with the organizational impediments that Agile has revealed
  • You want to scale
  • You want to recover an “Agile Attempt” that went off the rails
  • You want to recover a traditional project that is late and over budget
  • You’re struggling to Agile in a hostile environment

The reasons vary with each client, but in my mind it boils down to the fact that Agile is easy to describe and hard to do.

Update: Don Grey and Esther Derby have already written on this topic. Great minds think alike.

If you enjoyed this post, subscribe now to get free updates.

If you want to bring Mark into your organization for Training, Coaching or Consulting please visit the corporate site: The Agile Consortium.

Quick Agile Links #2

in Agile, Links by Mark Levison

image

Following from last week, I’m doing a weekly series of posts on interesting Agile Links I’ve seen in the past week.

Steven “Doc” List, has a pair of posts on blame: A Culture of Blame and With Blame Goes Guilt – a healthy reminder about where we should place our focus.

Mike Dwyer: Lessons Learned with Distributed Scrums – his experience mirrors my own working with a distributed/dispersed Agile team. Distributed is still painful but tools like this go a little way to minimizing the pain.

Tool Vendors Reply to My Agile Challenge

November 19, 2009 in Agile, Tools by Mark Levison

image Last week I challenged Agile Tool Vendors and the post got a little bit of attention, I got replies from Rally: How Agile is Rally?; Danube: How Agile is Danube? and MicroTool: How We Use Agile to Develop Our Tools.

In addition there were several comments with replies: Robert Dempsey:

CEO and Founder of Atlantic Dominion Solutions. We developed Scrum'd: http://www.scrumd.com. A great post and an excellent challenge. To answer your questions:

# Your Definition of Done

We define done for each user story. Acceptance criteria includes the behavior a user can expect from the app when using it, the workflow for the feature, that it needs to be tested (and how it will be tested), any validations that occur, and if there is documentation for the feature that it is updated.

# Whether you use TDD? Or at least Unit Testing?

We do full TDD for all of our stories. We didn't start out that way, however now that we have a full test suite we keep it that way. Also, if a bug is found, then a test needs to be written for that and then the code fixed.

# What do you do for Acceptance Testing?

We have staging servers set up for internal testing. We also have a few select customers that we let into our staging servers, and I show (in person) some of our current and potential clients the features to get their feedback as well. In addition, we use Get Satisfaction for our support site, and ask that commenters who suggested features that we implement to check out the release and see if it's what they wanted.

# How often do you release?

This depends. We try to do monthly releases. Sometimes it longer, but typically it's less. The release schedule really depends on the importance of features to our user community.

# What did you learn in your last retrospective?

You don't always get it right the first time, however anything you do release needs to work correctly. Also, continuous integration is a huge help as your product gets bigger, and of course, testing is an absolute necessity. We would rather delay a release to ensure quality than release stuff that won't work.

Marcin Niebudek (creator of TinyPM)

I like challenges, so…

Our DoD for stories:

  • code meeting minimal requirements committed
  • unit tests passing
  • feature is working under FF, Chrome and Opera
  • feature is working without any significant failures under IE
  • feature is tested and accepted by at least one team member that was not implementing the story

Our DoD for release:

  • WAR and .exe distros built successfully
  • all unit test passing
  • all functional bugs fixed
  • all UI bugs fixed or small UI bugs (mostly for IE) at least scheduled to be fixed
  • installation and upgrade documentation updated
  • installation tested on Windows and Linux
  • new features list updates at product web site

Do we use TDD? Well I would not say that becuase our coverage is not 100% which means some of our code is not unit tested (glue code), but yes we do unit testing with "test first" style for all domain and business logic code and we tend to shift into BDD style right now.

As our Product Owner is also one of active developers, for acceptance testing we tend to verify features within a team as we have strong and common vision of a product within the team (see also acceptance in our DoD for stories). It's a low ceremony process (as all our processes in the team)

How often do we release? Every 2-3 months.

What have we learned from our last retrospective? That we need to shift into feature branches to be able to release small stories more often while the big ones are still in progress.

Do you see any flaws or warning signs in what I've posted here? Go on, say it… we're always happy to improve…

It would be fun to hear from Target Process, ThoughtWorks Mingle team, VersionOne, AgileBuddy, anyone else I might have missed.

If you enjoyed this post, subscribe now to get free updates.

If you want to bring Mark into your organization for Training, Coaching or Consulting please visit the corporate site: The Agile Consortium.

My Challenge to Agile Tool Vendors

November 10, 2009 in Agile, Tools by Mark Levison

image I keep on seeing announcements for the next great Agile Task Tracking tool. I just saw one posted to Scrum Development where it’s author said: “I haven't done much testing, so if you find a bug and want me to fix it let me know :-) ”.

My reply: Congrats I'm sure you have an excellent application. I'm wondering if you see the irony – you're posting to an Agile group and say that your app has hardly been tested? What is your definition of Done? Do you use TDD? At least Unit Testing? What was your approach to acceptance testing?

My Promise

Here is my promise to all of my future clients, I won't show you an agile tool that wasn't developed using Agile methods. From future tool suppliers I need to know:

  • Your Definition of Done
  • Whether you use TDD? Or at least Unit Testing?
  • What do you do for Acceptance Testing?
  • How often do you release?
  • What did you learn in your last retrospective?
  • ….

If you can’t answer these questions I’m not interested in your tool.

Update I mis-understood the author's intent. He's not releasing a tool, so much as testing the waters to see if there is any interest. For these purposes I think he did the right thing. I still stand behind the statement I would show a client a tool where the vendor couldn't answer the above questions.

If you enjoyed this post, subscribe now to get free updates.

If you want to bring Mark into your organization for Training, Coaching or Consulting please visit the corporate site: The Agile Consortium.