Latest Entries »

YouAin’tGonnaNeedIt – YAGNI

YouAin’tGonnaNeedIt – YAGNI is an XP principle based on Hoares Law (or Knuth’s Law).

It broadly refers to gold-plating in code and premature optimisation, with regard to Capacity Testing.

The interesting fact I found out this morning was that Charles Hoare denied he ever said it. He did say:

“There are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies, and the other way is to make it so complicated that there are no obvious deficiencies. The first method is far more difficult.”

What Donald Knuth said was:

“Premature optimization is the root of all evil (or at least most of it) in programming.”

It’s always worth bearing YAGNI in mind, it sits quite nicely next to a KISS approach.

anchor We had to re-boot our approach to Sprint Planning today due to concerns over the way Story Points had distorted our planning sessions. Estimation is a key feature of planning in Scrum and is based on the Wide Band Delphi technique first identified by the Rand Corporation. The Story Points in themselves should have little intrinsic value in the Planning session and simply act as a facilitator for discussion to identify risk or a lack of understanding of requirements. The real value of Story Points lies in the ability to predict Velocity, allowing the Product Owner to perform Release Planning.

Story Points had distorted our activities by becoming a major focus of the planning sessions with an adherence to previous known Velocities. The team lacked the freedom or opportunity to take a common sense or commitment based approach. In short the Story Points had become the main discussion topic when making the Sprint commitment, rather than looking at the work itself.

How did we re-boot the session?

  1. User Stories presented by Product Owner
  2. User Stories tasked up
  3. Planning Poker – Story Points written on the back of the cards
  4. Sprint Commit – User Stories committed to based on content not Story Points
  5. Story Points exposed

I was discussing the session with @cootetom and he pointed me in the direction of an article on Anchoring which was fascinating.

“Anchoring or focalism is a cognitive bias that describes the common human tendency to rely too heavily on the first piece of information offered (the “anchor”) when making decisions.”

He correctly pointed out that Anchoring was playing a part in disrupting our ability to estimate using Story Points. Following the process above we removed the Anchor from the Commit part of the Sprint Planning and prompted some fresh thinking.

I’m a firm believer in the value of Story Points and will continue to help the team use them in the most effective way. It remains a challenge to help team members divorce the relative nature of Story Points from absolute concepts like time. Several team members have confided that they make that conversion in their heads and then pay lip-service to a Story Point approach. The concept of Story Points will be an area of team development that I’ll be exploring in the near future.

Kelly has made this inspired recording (see link below) showing the simplicity of the Scrum Masters role. The analogy of the chess game which is applied to Scrum is also very relevant here – Simple moves that make a complex game. I liked the mp3 so much that I’ve transcribed it:

I’m going to teach you how to be a Scrum Master in 1 minute.

First of all decide who will have the final say about priorities for your product – that is the Product Owner

Put all the features you’d like to include in a list – that is the Product Backlog

Put the list in the order that you’d like to do things and keep it up to date as things change

Get the whole team together every two weeks and plan the next two weeks work, working from the top of the backlog – that is Sprint Planning

Write what you want to do on post-it notes or cards and stick them on a wall in a column called to-do – that’s your Sprint Backlog

Get the whole team together at the same time every day for a 15 minute stand-up meeting, each person takes turns to say briefly how they are getting on, what they did yesterday, what they are doing today and if anything is holding them up – that is your Daily Scrum

Move the post-its or cards to an appropriate column on the wall for example in-progress, done or blocked

What ever happens get together at the end of 2 weeks to discuss what went well, what didn’t and what you can do differently in the next two weeks

Invite others to join you afterwards for a review or showcase of what you’ve done

And that’s it, that’s Scrum in a nutshell

Apologies Kelly if I’ve missed anything!

One Minute Scrum Master – original article

One Minute Scrum Master – mp3

This article has been inspired by a former colleague who has recently taken up the mantle of Scrum Master. As a new Scrum Master you face very unfamiliar Yodachallenges and your success is very much based on your ability to utilise coaching and soft skills to gently guide your team and colleagues. As a bit of fun, I’ve used some quotes from Yoda to frame the top 10 tips for Scrum Masters:

10. “To be Jedi is to face the truth, and choose. Give off light, or darkness, Padawan. Be a candle, or the night.”
–YODA, Dark Rendezvous

Scrum is an MRI scanner on the business you work with and the team you are coaching. The outcome of a successful Agile transformation is the exposure of issues that impede the progress of the team. The number one role of the Scrum Master is to remove these issues wherever possible or enlist help if the issues lie beyond the scope of the team.

Light the way to a brighter future for your team – remove impediments

9. “On many long journeys have I gone. And waited, too, for others to return from journeys of their own. Some return; some are broken; some come back so different only their names remain.”
–YODA, Dark Rendezvous

Each Sprint is a journey, as is the process of Agile transformation. The path of that journey is illuminated by the Sprint Burndown Chart which at once celebrates success and exposes a deviation from the path or Sprint Goal. Scrum is as heavy or light on metrics as you choose as a team. I would recommend that a Sprint Burndown Chart is created manually or reported daily if you have the software in place to do this. The chart should be displayed prominently on you whiteboard or other information radiator.

Take the journey with your team and share the path – Show the daily burn down

8. “To answer power with power, the Jedi way this is not. In this war, a danger there is, of losing who we are.”
–YODA, Star Wars: The Clone Wars, “Lair of Grievous”

Know that you are a Servant Leader and you should be available at all time to serve the needs of your team and facilitate Scrum process. It’s highly likely that you will encounter Product Owners or other colleagues that enjoy the Command and Control approach to management. Command and Control is not the way of the Scrum Leader. You must find ways to protect the Scrum team from legacy power structures and guide colleagues by becoming an exemplar of Servant Leadership.

A key part of the Scrum process is Stacking the Backlog. The Product Owner is the only person who can prioritise the backlog, but the backlog is open  to other people to add items and is owned by the team. As a Scrum Master, a great way to facilitate the output of useable high quality chunks of software is to facilitate Stacking the Backlog. The process of Stacking the Backlog is the breaking down of large User Stories to smaller Stories that can be delivered in a single Sprint. The Scrum Master should support the Product Owner.

Know that you are a Servant Leader – Facilitate Stacking the Backlog and support the Product Owner

7.”When nine hundred years old you reach, look as good, you will not, hmmm?”
–YODA, Star Wars Episode VI: Return of the Jedi

It’s important to have a sense of the legacy the team is leaving behind. Time and time again we encounter legacy code that is extremely difficult to maintain and re-develop. A good Scrum Master encourages Agile engineering practices which build quality in to the software development process at the start. Bear in mind that a hyper-productive team will make a hyper-productive mess. Simple practices such as Pair Programming produce code the team can be proud of.

Be mindful of the software legacy you are creating – Implement Agile Engineering practices.

6.”If no mistake have you made, yet losing you are … a different game you should play.”
–YODA, Shatterpoint

A key principle of Scrum is ‘Inspect and Adapt’. The Sprint Retrospective is the key meeting to examine the process the Team is using and enable the ability to provide continuous improvement. Empiricism is built in to Scrum right from the Daily Meeting, to the Burndown and finally the Sprint Retrospective.

Engage the team in continuous improvement – Facilitate the Sprint Retrospective meeting and act on it’s findings

5. “Death is a natural part of life. Rejoice for those who transform into the Force. Mourn them do not. Miss them do not. Attachment leads to jealousy. The shadow of greed, that is.”
–YODA, Star Wars Episode III: Revenge of the Sith

Scrum is a team game and it’s vital that work is accepted by the team as a whole. Scrum helps to engage the individuals in the team and reduces the dissatisfaction that leads to people leaving the business. Inevitably over time people will move on. The concept that you need to grasp here is ‘Bus Factor’. Bus Factor is the number of team members who could leave before the team ceases to function. Teams that consist of specialists have a very high Bus Factor i.e. code ownership and knowledge of the codebase is held by one individual.

The team should take the next available Story not ‘cherry pick’ from their comfort zone – Develop a cross-functional team

4.”No! Try not. Do, or do not. There is no try.”
–YODA, Star Wars Episode V: The Empire Strikes Back

Scrum has a simple set of rules that make up a complex game. The implementation of those rules is straight-forward and the framework and roles should be followed closely. There is a tendency to try to cherry pick parts of the framework and do the bits that fit easily with the existing culture. Commonly you may come across Product Owners that are Scrum Leaders or Scrum teams that have Project Managers. Be clear that mixing roles or missing roles is like having a game of football without a referee or goalie – it just doesn’t work.

Follow the Scrum framework – Ensure the correct roles are in place to guarantee success

3.”Lost a planet, Master Obi-Wan has. How embarrassing. How embarrassing.”
–YODA, Star Wars Episode II: Attack of the Clones

Communication is key to the success of a Scrum team. The Daily Meeting ensure that at least once a day the team has the opportunity to let each other know how they are getting on. The Scrum Masters role is to facilitate the meeting. Be wary of the team reporting to you – they should be speaking to each other. If necessary make an excuse and don’t attend the meeting for a few sessions allowing the team the space to speak to each other.

Encourage communication – Ensure the Daily Meeting takes place

2.”Fear is the path to the dark side. Fear leads to anger, anger leads to hate, hate leads to suffering.”
–YODA, Star Wars Episode I: The Phantom Menace

The incisive nature of Scrum is intimidating to incumbent power structures and those that hide behind them. The role of the Scrum Master is to educate and act as an Agile Ambassador. The business benefits of adopting the framework need to be repeatedly emphasized and communicated to the wider business. Return on Investment and the continual release of reliable and working software are two of the key factors that should be explained regularly and clearly to everyone involved.

Become an Agile Ambassador – Communicate the benefits of Scrum

1. “When you look at the dark side, careful you must be … for the dark side looks back.”
–YODA, Dark Rendezvous

The responsibility for the adoption and practice of Scrum, lies with the Scrum Master. The Scrum Master shows by example that the techniques and framework of Scrum is the most successful way to move forward. If as the Scrum Leader you start to miss elements out or take the line of least resistance that these cues will be picked up by the team and the business and the benefits of Scrum will not be realised.

Walk the walk and talk the talk – Take responsibility for the adoption and practice of Scrum

Thanks for looking over Yoda’s top ten tips for new Scrum Masters.
Here they again in summary:

10.   Light the way to a brighter future for your team – Remove impediments
9.     Take the journey with your team and share the path – Advertise the Daily Burndown
8.     Know that you are a Servant Leader – Facilitate Stacking the Backlog
7.     Be mindful of the software legacy you are creating – Implement Agile Engineering practices
6.     Engage the team in continuous improvement – Facilitate Sprint Retrospectives, act on findings
5.     The team should take the next Story not ‘cherry pick’ – Develop a cross-functional team
4.     Follow the Scrum framework – Ensure the correct roles are in place to guarantee success
3.     Encourage communication – Ensure the Daily Meeting takes place
2.     Become an Agile Ambassador – Communicate the benefits of Scrum
1.     Walk the walk and talk the talk – Take responsibility for the adoption and practice of Scrum

If none of that helps then watch – Sh*t bad Scrum Master say…

Have you got any hints and tips you’d like to add to Yoda’s list?


Creative Commons License
All work is licensed under a Creative Commons Attribution-NoDerivs 3.0 Unported License.

There is a lively debate around whether the Death Star could be classed as an Agile Project. I would suggest, that it’s more relevant to look to the Rebel Alliance. The Alliance shows us a good example of a cross-discipline hyper-productive Scrum Team in action.

The Death Star project does have a clearly defined Vertical Slice, which would seem to point to an Agile approach. The planet-destroying superlaser was delivered as a functional artifact whilst other less important features were dropped.

On closer inspection however we could surmise that the legacy command and control management structure has produced a flawed ‘Scrumbut’ implementation.

The failure to embrace good Planning and Engineering Practices left the weapon with a fatal flaw – open exhaust conduits that allowed it’s destruction.

Don’t be too proud of this technological terror you’ve constructed.” Darth Vader

Clearly a reference to ‘gold-plating’. It seems that Darth Vader was not attending the Daily Meeting or Sprint Review. I’ll leave you to decide whether Darth Vader was a Product Owner or Scrum Leader.

The Death Star was an Agile Project | Hacker News

1] Ackbar, Return of the Jedi “It’s a trap!” [2] The Emperor, Return of the Jedi “As you can see, my young apprentice, your friends have failed. Now witness the firepower of this fully ARMED and OPERATIONAL battle station!” qa-ds1-15215: I was checking out the design and noticed that thermal exhaust port AH-51 is open to the world.
Death Star II As an Agile Project

So, Vader takes an Agile approach. He prioritizes the features list (“Look, we really need the big laser thing; our customers will just have to come to us at first.”), and he works in vertical slices. At the end of the movie, it seems to have paid off.

A recent marketing campaign for MS Project postulated that Luke Skywalker achieved his goal in Episode IV using a traditional Gant Chart. I’m somewhat sceptical – the intuitive nature of the force and the distributed nature of the Jedi are far more akin to a self-organising Agile model.

The Episode IV team comprising Luke, Han, Leia, C3P0, R2D2, Chewy and OB1 is clearly a hyper-productive, cross-discipline Scrum Team. Conforming to the 7+ or -2 team number ‘sweet spot’. The team follows the pattern of an effective geographically distributed(at times) Scrum.

InfoQ: Jeff Sutherland: Reaching Hyper-Productivity with Outsourced Development Teams

Nathan Marz explain Storm, a distributed fault-tolerant and real-time computational system currently used by Twitter to keep statistics on user clicks for every URL and domain. Founding members of the ICAgile Consortium, Ahmed Sidky and Alistair Cockburn, discuss IC Agile, along with Bob Payne, a consultant, coach and trainer.
Distributed Teams Content on InfoQ (Information Queue) is an independent online community focused on change and innovation in enterprise software development, targeted primarily at the technical architect, technical team lead (senior developer), and project manager. InfoQ serves the Java, .NET, Ruby, SOA, and Agile communities with daily news written by domain experts, articles, video interviews, video conference presentations, and mini-books.

I was recently thinking about a definition of ‘self-organising teams’.I quickly came to the conclusion that collecting examples of self-organising behaviour was the best means to help this process.

My team approached me because they were confused about how we calculated Capacity for a Sprint. The team had two new members and I was reducing their capacity down to 50% and therefore the number of hours that were available for project work by the same amount. @phil_12d3 (Twitter tag) pointed out that this made no sense as everybody was at work for the same amount of time. The result of the variance I added, was that the newer members of the team ended up filling up their time with Support work. My attempt to measure and estimate personal capacity for the Sprint was flawed. We worked through a few new ideas as a team to find a better and more accurate way to estimate the number of productive hours available.

Phil eventually honed the rough calculations we made on a white board to the infographic below:














Creative Commons License
All work is licensed under a Creative Commons Attribution-NoDerivs 3.0 Unported License.

The hours are broken down between Project work, Support time, Meetings and Study time per developer. This made for a far simpler calculation.The variance in how long different tasks would take, was applied via a modifier during the final phase of Task Estimation. I was slightly uncomfortable with the necessity of allocating tasks per team member at the beginning of the Sprint. The preferred route would be a fully multi-disciplinary team that chose which tasks were worked on a voluntary and priority basis. My intial misgivings were overcome by the enthusiasm of team members over the ability to measure capacity and thus delivery on a daily basis.

To return to my original point; the process we went through as a team to develop this crucial process is an excellent example of a self-organising team. The team was not only focused on delivery but also the mechanism to improve the estimation and process of the Sprint.

Can you identify examples of self-organisation within your teams?

Facebook V Twitter

Facebook and Twitter offer very different environments for Marketing. Facebook is an immersive and deep experience where the average user spends 7 hours per month. Twitter has been regularly described as a cocktail party, where users will dip in and out of their Data Stream.

There is a great new Infographic (see below and by Digital Surgeons which dissects the audience of Facebook and Twitter. As you might expect from a micro-blog platform, Twitter users are far more active in updating their status – 52% update daily versus 12%.

Facebook’s advantage is it’s extreme stickiness. Facebook users are twice as likely to log-in to the system as Twitter users.

The question of which is the best channel for Marketing rages on.


Further articles, discussions and data is available on my Storify story:

Any thoughts? What is your experience of Marketing on these channels?




Gamification is part of a new vocabulary which seeks to describe the fusion of different disciplines. As I’ve read more deeply about Gamification, I’ve come to realise that the concept is easily identifiable within the Scrum Framework. For an example the Daily Meeting has many facets which seek to open channels of communication through Gamification. The Daily Meeting is built around a few simple rules which you can easily set in to a game metaphor (in bold):

1. The same time every day – The fixture
2. All the team must attend – You must be part of the team to play
3. Team stands-up and huddles – Many games engender a sense of proximity to ensure involvement and to provide an immersive experience
4. Takes place in the same place – The pitch
5. Time-boxed to 15 minutes – The game is time-limited to promote intensity
6. Early meetings should adhere to three questions – Simple rules promote inclusion and participation

  • What did I do yesterday
  • What will I do today?
  • What’s in my way?

7. Use a speaking token – A ball or baton is thrown from player to player
8. Signal the end – The whistle is blown and the game is over

The Scrum Master acts as a referee facilitating the meeting but not interfering or running the meeting. The Daily Meeting is a perfect example of how Gamification can help us be more effective at delivering a ‘product’, managing our time and transforming the world of work.

The Scrum Framework introduces Game Mechanics to the workplace and by doing so delivers business advantage.

Have you used Gamification in your products or workplace? Is ‘Gamification’ part of a new vocabulary or empty hyperbole?

Further information on Gamification

A great place to start looking at real world examples of Gamification is this article by @adachen:

Sharleen Sy has written a good article on why Game Mechanics work:

Seattle’s Tech Flash has a great article on how Gamification has impacted business and science:

Microsofts Ribbon Hero is an example of Gamification of software applications:

I previously wrote about the benefits major marketing agencies were experiencing by implementing Agile techniques within their business. Taking that concept one stage further I’ve re-engineered Mike Cohn’s ubiquitous Scrum framework diagram to show how Teehan and Lax’s six steps to Adaptive Marketing can be applied to this process.
Mike Cohn’s Scrum Framework Copyright 2005 Mountain Goat Software
Adaptive Marketing Using The Scrum Framework  – Diagram
Creative Commons License
All work is licensed under a Creative Commons Attribution-NoDerivs 3.0 Unported License.

The Six Steps are as follows:

1.     Product Backlog

The agency and client define the objectives of the engagement and establish several key performance indicators. The first step is all bout establishing the vision with the client and producing a product backlog with the team.

2.     Sprint

The creative team is dedicated to the project for a set period of time allowing them to focus on the task. Creating the Sprint is a familiar concept to Agilists and it makes perfect sense in the context of a marketing campaign.

3-5.     Meetings

Steps 3 -5 are encompassed in the Empirical framework of Scrum. Ideas are rapidly developed, tested and deployed
Ideas evolve and adapt over time. Performance is closely monitored allowing the team to make adjustments.

The combination of Sprint Planning, Daily Meetings, Sprint Review and Sprint Retrospectives all support an inspect and adapt approach to marketing.

6. Sprint Review and Retrospective

Project success is determined by achieving the KPIs. The Sprint Review meeting covers the necessary KPI’s to ensure that all activities match a state of ‘done’ and whether the process and campaign were successful.

Using the Scrum Framework gives transparency to the Adaptive Marketing process, a corner-stone of the Agile approach.

Do you practice Adaptive Marketing or have you implemented Agile at Enterprise level? Have you used the Scrum Framework outside of Software Development? How did it go?

Due to the volatility of our developer resource we recently decided to opt-out of Scrum and adopt Kanban. Kanban is an Agile technique that is less prescriptive than Scrum. There are many similarities between the two systems including the use of white-boards and post-it notes to track progress. An important difference is that the white-board is owned by the process not the team. The board makes transparent, the flow of work through the team.

The white-board has similar columns: not done, in-progress, done. The columns have an agreed limit on how many jobs can be in each column. We agreed on up to two per developer.

Kanban does not have any notion of a Sprint. Kanban limits the number of items that can be in-progress by WIP (work in-progress). WIP limit is the key method to tweak and optimise the flow of work.
So the response time (how long it takes to respond to a change of priorities) of a Kanban team is however long it takes for capacity to become available. Capacity is measured by the general principle of “one item out = one item in” (driven by the WIP limits). You don’t have to wait for the next Sprint to progress work and testing, deployment and review are all a continual process. Due to the emphasis on experimentation and the Scrum mentality to ‘Inspect and Adapt’, we decided to include Daily Stand Ups’ in our version of Kanban.

The basic steps we took to complete the adoption were:

1. Agree Kanban adoption with Dev Team Manager

Senior management was concerned about compliance for audit purposes and the possible breakdown of process. We allayed any fears by emphasising the similarities with Scrum process.

2. Agree with Product Owner

The P.O had previous experience of Kanban in a production environment and was therefore happy to adopt the process and added value based on their own experience.

3.Training session and agree column names and WIP limit with team

There was some trepidation and a lot of discussion around WIP limits and whether the whole process offered anything better than ‘just a list’. I emphasized that though Adaptive rather than Prescriptive Kanban offered the opportunity to maintain process and measure flow.

We had a planning meeting and jumped in. The interesting thing is that quite quickly we identified that testing was a bottle-neck. We knew colloquially that this was the case but the Scrum board had never exposed the relationship between testing and deployment. We tended to remove all the jobs at the end of the Sprint and the tasks that had been awaiting test or had been tested and not deployed would be forgotten. We adjusted our working practices and white-board to clearly show whose responsibility it was to test code in Development and in our Main environment.

Our team has become less volatile recently and we have returned to the more familiar territory of Scrum. Utilising Kanban was beneficial and we have reverse engineered some of what we learned back in to our Scrum process.

Have you had any adventures in Kanban?

E-book – kanban v scrum.pdf


Get every new post delivered to your Inbox.