Agile Tour 2012 – FREE Agile afternoon Event Dublin Nov 1st

The annual AgileTour returns to Dublins’ Grand Canal Hotel this November 1st from 1pm. The schedule is still being finalised but expect a selection of seasoned agile and lean presenters and several experience reports from companies that have recently adopted these methods. A great chance to network with others interested in agile and lean software development.

Event sponsored by AgileInnovation and InspireQS.

FREE Seminar: Innovative and Profitable Software Development with Lean/Kanban

This coming October 4th AgileInnovation present a free seminar on Software Development using Agile and Lean Methods. This is targeted at companies looking to adopt lean and agile methods, and to those who have already adopted and are looking to deepen their implementation and increase their effectiveness. The content will be particularly relevant senior executives, functional and project managers, and senior technical product and software development professionals.

Presenters: Colm O’hEocha & Fran O’Hara

Oct 4th 4pm (sharp) – 6pm, IBEC, Confederation House (Registration starts 3:30)
84-86 Lower Baggot Street
Dublin 2
For further details and registration please email Karen at

Seminar Outline:
The science and practice of managing product development and other creative knowledge work is being revolutionized. Following the introduction of Lean Manufacturing in Japan, ‘Agile’ software development introduced many of the same principles to more complex development work.
However, unlike manufacturing, creative development requires variability to add value and therefore must thrive in the presence of uncertainty and risk, otherwise it cannot produce innovative solutions.
Traditional project management approaches typically aim for efficiencies through standardization and conformance, and in so doing eliminate innovation. They aim to maximize utilization of resources, thereby prolonging time to market. They divide and demarcate roles and responsibilities without understanding how that destroys collaboration and information flow. And they invest in extensive up-front planning, and then resist emerging reality when it doesn’t conform to the plan.
Managing creative development teams and projects requires that we focus on maximizing the economic outcome throughout the project or product lifecycle. But most development teams have little understanding of project economics – how much does a months delay cost? – what is the value of fast, rich feedback? – what is the cost of hand-overs?
In this introductory session, we explain the concept of Flow – the foundation for radical improvements in quality, predictability, agility, visibility and efficiency. Flow depends on
· managing queues and work in progress
· implementing fast feedback loops
· breaking our work into small, independent units
We briefly introduce some of the science behind these ideas and provide an overview of how they are applied in lean and agile methods such as Kanban and Scrum . We discuss practical next steps you can take to move towards Leaner, more profitable software development.

Doesn’t Agile mean ‘No Documentation?

One of the most common questions I get from folks looking at agile for the first time is ‘Does agile mean I don’t have to do documentation?’. I think this ‘myth’ stems from the agile manifesto value of ‘Working Software’ over ‘Comprehensive Documentation’. But the manifesto doesn’t say documentation is bad, just that working software is better.
I use two ideas to explain where documentation fits in with agile teams:
1) differentiate between ‘process’ or ‘project’ documentation and ‘product’ documentation. The first is used within the project, and once the project is over, is generally discarded or at least of little value. Requirements docs, technical specs, etc fit in here – they are expensive to develop and they need to be updated regularly to reflect emerging realities. ‘Product’ documents, on the other hand, are a deliverable from the product – they describe the product that was actually built, they have a long and useful life as part of the product, and they can be less comprehensive as they merely augment the working software.
2) differentiate between documents that ‘replace’ conversations and collaboration and documents which ‘record’ conversations. Using documents to communicate between project members is intensely expensive, laborious and ineffective (the written word is exceedingly bad at communicating complex, tacit or nuanced knowledge). People talking at a whiteboard is a much more efficient and effective form of communication. However, documents can be useful to record decisions made in such conversations – the valid characters in a field validation, the calculations to be performed to generate a report column, etc. But these are specific, explicit bits of knowledge, relatively stable, and given context by the conversation that led to them.

So in summary, I recommend confining documentation to product rather than project oriented purposes, and to write it after the fact as a record of conversations, rather than a replacement for them.

Moving from Authority to Responsibility

Lean Thinking, which underlies Agile methods like Scrum and XP, has as one of its central pillars “respect for people”. Agile reflects this in terms of ‘whole team’ accountability, collaboration and self-organisation. All these factors lead to agile seeing team members from a more ‘humanistic’ point of view – they are more than just resources that can be swapped in and out of projects – the sort of ‘bean-counting’  mindset giving rise to the ‘mythical man-month’.  Agile takes teams and individuals much more seriously, calling for long-life, cross-functional teams that are allowed the time, latitude and autonomy to gel into a high-performing whole. This change is well summed up by the phrase ‘Move from Authority to Responsibility’. Where organisational structure is based on individual authority rather than joint responsibility, it leads to fragmentation, isolation of roles, hand-offs, friction and ultimately poor organisational performance.

Its great to have really simple and memorable phrases to guide our day to day decisions and I think this is one of those: Build Responsibility, not Authority.

How agile are you?

One of the big culprits in failed agile teams is the tendency to cherry pick those practices that seem to ‘fit with the way you work’, ‘with the way we do things around here’. Agile explicitly calls for methods to be customised depending on context. But often this can be misconstrued as selecting those bits that are compatible with how you work now – thereby leading to no fundamental change in the way you work. Examples are iterations as long as the release cycle, calling the project manager a ScrumMaster without a change in role and considering a feature or story ‘done’  when it has been coded and passed to QA. This leads to a Cargo Cult adoption where the team adopts the language and some ceremonies of agile, without understanding the fundamentals of how it works. No wonder the benefits are elusive…

When assessing how well teams have adopted agile methods like scrum, the approach is usually compliance based – an evaluation of how closely the team follows the defined method – whether customised or not. There are two fundamental difficulties with this:

1) The way in which agile practices are implemented in a team has a great bearing on how they support or constrain agility – for example, a daily stand-up meeting that spends 45 mins getting status updates from everyone is really not going to help a self-organising team co-ordinate their actions for the day. Even a stand-up of 10mins where the three standard questions are posed can be ineffective if the team doesn’t engage and feel ownership of it. Therefore, assessment by compliance evaluates, well…, compliance – not agility which is probably what you want to know.

2) Since each project & team implements their development method differently (a scientific fact from extensive research), and since that implementation evolves over time, using compliance as the basis for assessment hinders inter-team comparisons – akin to comparing apples and oranges. A lot of the value in assessing a team is so you can benchmark and compare to other teams as a way to identify possible paths to improvement. Without the ability to effectively compare, the assessment just isn’t all that valuable.

3) Most methods already used by teams have some really good aspects. Moving to agile should preserve these (unless replacing them with something even better). If attempts to be compliant with some textbook method causes these to be lost, then we’re really ‘throwing out the baby with the bathwater’.

To overcome these, my colleagues and I have been developing an assessment that looks at agility from first principles – regardless of what method is being used by the team. Of course agility is a complex concept with many facets such as creativity, responsiveness, simplicity and quality. By focusing on how any given method contributes to these facets, we can assess how it contributes or detracts from agility as a whole. We can also compare very different methods, like scrum, XP or indeed waterfall. And we can make recommendations which preserve whats valuable in what you do today while tackling those areas promising improvement.

In another post I’ll discuss an alternate assessment technique I use – rather than assessing agility, this one identifies barriers to adoption and helps map out an adoption strategy tailored to a team, project and organisation.

Agile Product Management

Agile is reaching a stage of maturity in some companies where attention is turning to how it can be scaled up from projects to products, portfolios and the whole enterprise.

In classic agile, where the focus is on one small, co-located team, product management is carried out by the ‘product owner’ role. In scrum, this role is responsible for the value being delivered to the customer, for the ROI. The tools they use include the product backlog, release planning, iteration planning and iteration review.  The product owner should have an intense interest in ensuring a common ‘Definition of Done’ is agreed across the team or multiple teams,  and work with the scrummaster to ensure it is always met. By ensuring each iteration only delivers ‘Done’ features gives transparency into progress as well as enabling various product release options at the end of each iteration (for example if a user story has been developed but not integrated and tested, it cannot be included in a release and so constrains the product owners options).

Each agile project must have one, and only one, product owner. Although this role can be supported by various domain experts (eg marketing, customer operations) or ‘Area Product Owners’ for large products, final decision making power must reside with one person.  With ownership of the product backlog, the product owner must work with teams to ‘groom’ the high level user stories, breaking them into small, even sized stories that can be implemented independantly and deliver ‘minimum marketable value’. They also work with the team in selecting the stories that go on each iteration backlog and in serving as or facilitating access to the ‘on-site customer’ for story elaboration. The product owner is also responsible for defining acceptance criteria and reviewing and accepting stories at the end of each iteration.

Many see agile as an implementation of lean principles in software development, and so talk of enterprise scale often refers more to lean than to agile. Here I discuss some of the emerging themes in organisational level agility:

  • Cadence: Agile introduces the idea of timeboxed iterations which are repeated over and over, each including planning, executing, delivering value and reflection and improvement. Methods like scrum recommend that these iterations are of constant duration, eg 2 weeks. This introduces a ‘cadence’ into the project – a smooth rythm which helps establish a continuous flow of value and facilitates ongoing coordination between project stakeholders.  This basic rythm of iteration development is also supplemented by sub-rythms, such as daily stand-ups, or hourly builds, and by meta-rythms, such as production releases every couple of  months. Just as these cadences provide a placeholder for synchronisation and communication between individuals in a team, they can also serve the same purpose for multiple team programs, multiple program portfolios and multi-portfolio organisations.
  • Options: Agile uses the idea of a prioritised backlog to ensure only the features that are most important at a particular time are worked on. Lean uses the ideas of delaying committment to the ‘last responsible moment’ and set based design. These mechanisms have similar aims – don’t constrain future options by what your doing today unless you really have to – that is, keep your options open.  This is especially powerful at the product, program or program management level – imagine if the program could be re-directed, or even terminated, at any point according to how market, technology or other contexts evolve.  By only investing resources in what can deliver value in the short-term, the program retains control of potential future expenditure. This is a compelling reason to move from projects to increments as a system development metaphor, as described in a previous blog.
  • Pull: Lean philosophy introduces the idea of pull, with the ‘kanban’ or ‘just-in-time’ material control mechanisms the most common examples.  Where traditional planning approaches schedule the pushing of materials, parts, customer requirements or software features to where the plan says they will be used next, pull systems use signalling built into the process to co-ordinate production and consumption along the value chain.  In manufacturing, a part isn’t produced until its needed by the next operation on the line. In software development, requirements aren’t elaborated and fixed until just before they are developed. In test driven development, code isn’t developed until a test fails. Effective pull relies on the even flow established by a cadence. And pull and associated in process signaling are core to self-organising teams and value chains – it eliminates the need for an ‘out-of-band’ signalling system represented by a ‘management layer’ assigning tasks, providing visibility through status reports, etc. Pull and the self-organisation it enables are key to scaling up agile development and are therefore essential to product, program and portfolio management that uses multiple teams.
  • Unified Build: In large enterprise development, many teams may be involved. Detailed coordination of multiple technical teams has always been a difficult and costly management task, with significant overhead in terms of meetings, documentation, negotiation, etc. With agile approaches, inter team coordination moves from the planning level to the code level – continuous integration and automated test are essential coordination mechanisms both within and between teams. Where products are being developed by multiple teams, continuous integration must build the entire end product, not just a subset of it.

Lean philosophy has been proven to scale effectively over decades in the worlds largest companies, the most famous example being Toyota. In the 80s’ and 90s’ western companies adopted many of these techniques in their manufacturing operations. Now there are moves to leverage the same underlying philosophies in development, with agile being a well progressed example in software development. Higher level organisational roles such as product management continue to evolve to the new philosophy and specific approaches will emerge over the coming years.