Weekly post (weekly)

Posted from Diigo. The rest of my favorite links are here.

How long will that take to get done? The dreaded question

So you’ve gone over requirements, and have an idea of what needs to be done, then the client/project manager pops the question developers dread:

How long will it take?

Then, depending on your situation, you might:

  • Give a number based on gut feel
  • Look at historical numbers for something of a similar size
  • Call a psychic hot line
  • Break down the job into smaller tasks and try to estimate those

No matter what your approach is, estimating is just plain hard. Is there hope?

Estimate in two parts – part one: relative sizing

How big is each dog compared to the other?
How big is each dog compared to the other? Photo courtesy http://www.flickr.com/photos/andreyevbr

It turns out that we humans are pretty good at relative estimates. We can compare two or more items and agree quickly on the size of one compared to the other. Take these dogs, for instance. How much larger is the labrador on the far left compared to the poodle on the far right, assuming by large we mean height? If we gave the poodle a relative size of 2 compared to most dogs, we might say the lab is a 5. We can then give a relative number to each dog without too much effort.

Now if I were to ask you for the specific height of each dog, we’d have a much harder time both estimating and agreeing on the final number. We’re not so good at actual estimates. Estimating helps us plan, but we don’t want to spend so much time on it that the cost outweighs the benefit.

Now imagine if each of those dogs was a small feature of a system your team plans to build. We’d then have a list of features each with their relative size, and a total size for all features. That gets us the first part of estimating, that is, how much work there is to do, but we still don’t know how long it will take to do the work.

Part two: how much can we get done in a specific amount of time?

For reference sake, let’s call our unit of measure ‘points’. We can determine how long a project will take by dividing the total points by an estimated velocity. Velocity is the rate at which the team completes work. For instance, one team might be able to complete 40 points of work on average over 2 weeks. If total points is 200, then the team will need 10 weeks to complete everything planned:

200 points / 40 points every two weeks = 5 * 2 weeks = 10 weeks

So how do we determine this velocity?

There are several ways to do this, but a simple way to get started is to take a random or representative set of stories (what features are called in Agile), break them down into tasks, and then estimate those tasks in hours.

Let’s say a team that has 100 hours in a 2 week sprint. They take a sampling of stories and come up with the following estimates:

  • Story A (13 points): 20 hours, 20 hours total
  • Story B (8 points): 15 hours, 35 hours total
  • Story C (5 points): 10 hours, 45 hours total
  • Story D (13 points): 20 hours, 65 hours total
  • Story E (8 points): 15 hours, 80 hours total

At this point, the team feels they can’t take on any more stories for the sprint. They leave a 20% buffer for the unexpected.

The total points planned for the sprint is 47 (13+8+5+13+8).

The team will need a little over 4 sprints to finish, so let’s call it 5: 200 points / 47 = 4.3, or 5 sprints.

We can also determine worst case / base case scenarios, based on how far along we are into the project, using what is called the Cone of Uncertainty principle. Mike Cohn talks about how to apply this in his book.

Bonus: now we can calculate project cost easily

We can also calculate the cost of the project by totaling up hours for each two week time box, or sprint as it’s typically called in Agile. If the team spends 100 hours every 2 weeks at an hourly rate of $100, then each sprint costs $10k and the project cost is expected to be $50k:

2 week sprint cost = 100 hours * $100 / hour = $10k

project cost = 5 sprints * $10k = $50k

I’ve tried to illustrate some simple techniques to create better estimates. Break the task into two parts, first calculating the size of work and then the speed at which work can get done. There is a lot more to estimating that I haven’t covered here. If you’d like to learn more, I’m hoping to offer a one day Agile course at the upcoming Plone Symposium East. If you can’t make it, please post your comment / question below.

Happy team, satisfied customers

If you are going to the Plone Symposium East, or considering going, this post is for you.

I’m offering a one day course on the fundamentals of Scrum, the most popular Agile software development framework. It’ll be a fun, hands-on experience, using games instead of Powerpoint slides to teach.

The catch is I need 10 people to sign up to make the trip and effort to prepare cost-justifiable. You see, I would be going mainly to the Symposium offer this course. Agile is technology agnostic, so while I am an active supporter of Plone, I don’t need to brush up on my buildout skills or learn the ins and outs of deploying Plone at a university (though I’m sure Calvin and Michael will give insightful and entertaining talks). I want to offer something back to the Plone community, and Agile is what I know best. Reconnecting with Plone peeps over beers comes a close second. 🙂

My passions lie in helping others, and I get my satisfaction in helping individuals enjoy their work more, teams becoming more productive and clients pleased with the result. I get to support teams as they embrace more fully Scrum’s five core values: commitment, focus, openness, respect and courage.

Is it Worth the Cost?

At US $250, this is the most expensive training option on the menu, but compared to other Agile training offerings, this is a bargain rate. No, you won’t be a super high performing team after one day of training, but you’ll leave understanding a flexible framework you can use to:

  • Know at each step how the project is progressing (amazing, but true) and use simple charts to communicate progress to the team and client
  • Get far better at estimates
  • Adjust the plan with minimal effort, even late in the project when your client wants to make 50 “minor” changes before launch
  • Lower the overhead of managing projects
  • Keep developers happy by coding more, sitting in killer meetings less
  • Lessen the impact of context thrashing, that is doing too many projects / tasks at the same time
  • Get an agreed upon definition of done to avoid subjective back-and-forth wrangling
  • and the list goes on…

Plus don’t forget you get to play with Legos for half the day. What could be better?

Web Collective shows off their Lego creations during sprint demo
Web Collective shows off their Lego creations during sprint demo

Group Discount

Scrum is for teams, so to make it easier for companies to send more than one person, I’m offering a 10% discount for each sign up, including the first one. That’s a $25 savings per person. I haven’t figured out how to do that within the event registration system, but I’ll get it to you one way or another. To qualify, you do have to work for the same organization.

Decide By April 30 and Get a Bonus

I need a few more sign ups by the end of this month before committing to buying plane tickets. Will you join me the Symposium? Anyone who signs up by the end of the month can join me for dinner after wards where we’ll dive more in depth on the issues / topics that matter to you.

Special Offer: One-on-One

Want even more help? You can either try and corner me at a pub for free (though quality of responses may be diminished) or join me for a one on one hour session to answer any questions you might have, talk through whatever issues/challenges you are facing. Make your list and get your own personal Agile coach. Email me if interested.

Register for course

Twitter Essentials: Examples and Steps to get Started

Too engaged in Twitter to look up and smile.
Having too much fun with Twitter to look at the camera.

Twitter is an amazing networking tool, but for many people, it’s hard to “get” Twitter at the start. My experience is people (including me) struggle with the benefits of Twitter and the value in using the tool for 3-6 months, sometimes more. Many just give up before reaching the “a-ha” moment. Last night I had a great time introducing Twitter to 8 eager students in my first ever public class. The goal of the course is to reduce the time to get value from Twitter, and to get productive right away by bootstrapping people with tools and know-how.

Overall, I’m satisfied with the experiment. We covered everything I had hoped to in the allotted two hours. People had lots of great questions. By the end, everyone was active on Twitter and had learned the basics of posting links, replies, re-tweets and direct messages. We used PeopleBrowsr so everything they did in class would be available to them at home or work.

A few lessons learned:

  • Double-check that you’ve packed the power chord (battery expired with few min left).
  • Class of 8 worked well for assisting people. Beyond 12 or so, have an assistant.
  • Use high contrast colours on slides when you can’t turn off all the lights.

The slides from the course are at the bottom of the post. I’ve posted references to items mentioned during the course:

Twitter examples mentioned:

Tools for building your Twitter community:

  • Twittgroups has all kinds of groups by topic or location. I set up a Sault Ste. Marie group a few months ago. Find new people to follow and add your own Twitter profile to the page so others can follow you.
  • Use Twitter advanced search to do specific searches by location, keyword, person, time line. I find people in the Sault area on a regular basis
  • Mr. Tweet looks at who you follow, what you tweet about to come up with a relevant list of new people to follow.
  • We Follow is a user-generated Twitter directory. Find people to follow by topic. Add yourself to the directory under three topics using hashtags. You can find me under Agile, Sault, coach.
  • Twubble is a simpler version of Mr. Tweet that looks at who your followers are following and recommends people.

Tools for improving your Twitter profile:

Gerry recommends PeopleBrowsr Twitter app for managing your tweets. To get the most out of PeopleBrowsr, click on the Tutorial link at the bottom of the screen after you log in.

Come meet other Saultbies on Twitter at the next Sault Tweetup event, May 19 @ Cafe Natura.

View more presentations from gerrykirk.

Daily post (weekly)

Posted from Diigo. The rest of my favorite links are here.

Unbottle It!

unbottle_sm2

Maude Barlow and the Council of Canadians brought their 19 city tour of Ontario to Sault Ste. Marie tonight. Maude is one of those legendary people you just have to meet when the opportunity comes, so I managed to catch part of her speech between other personal activities. I even got to chat with her for a few moments before she was whisked away at the start. I was impressed by her passion, commitment and determination to establishing water as a human right.

Below is the live blog transcript of the first hour of the event, possibly the first ever event blogged live in Sault Ste. Marie. Now you know another useless piece of trivia.