Sunday, 1 January 2012

About Business Value And Issue Trackers

Pull scheduling allows developers to grab work from a . This way of team working is efficient — flowing around impediments — and effective — developers understand software — but is not necessarily well aligned with the business.

Maintaining A Backlog

I hear many people complain that it is hard to define business value. So they won't do it. Or they won't try any harder to do it.

Joseph H. Little, Defining Business Value

Software features vary in value (to the business). To align the flow (of features) to maximum business value, empower a with decisiveness to prioritize the backlog. Healthy software has business value, so factor in gradual repayment of . Over time feature valuations drift, either in response to an evolving business environment or as domain knowledge is won. So, review valuations regularly.

Tracking The Backlog

An information radiator displays information in a place where passersby can see it. With information radiators, the passersby do not need to ask questions; the information simply hits them as they pass.

Alistair Cockburn, Agile Software Development

For co-located teams, the physicality of a board is great, acting as an . Where distribution favours a software solution, use a big screen to radiate backlog and activity feeds to those co-located.

A good issue tracker is a flexible tool, and convenient for backlog tracking. When used so, invest in careful configuring: though similar in structure, an Agile backlog is not a list of defects, differing in several subtle — but significant — semantics.

As the team learns to create higher quality software, the number of defects should fall over time. As the team delivers business value, demand — and the backlog — should increase. Successful teams should expect these queues to move in opposite directions over time: defects shrinking but the backlog growing.

Issue Priority Is Not Business Value

Most issues trackers include a priority quality. For example, priority is selected from BLOCKER, major, minor, trivial and so on. These traditional names carry with them baggage from conventional bug and release management.

This issue priority may differ radically from business value. Behaviour considered unacceptable when wearing a test- and release-hat might reasonably be given a high issue priority, but only the view under a business hat shows the business value delivered by work on this issue.

Avoid conflating these concepts: add a new business value field. Whimsical names (for example gold >> silver >> iron >> paper >> blue skies) are memorable, and help avoid misunderstandings and misuse.

An Example

5 minutes might sound like a long time to wait for a screen to load. From the testing perspective, this might be a seen as a major issue.

However, this does not necessary mean that improved start-up time would bring major business benefit. A business might expect an employee to open the screen in the morning, and then go to make their coffee. The screen would remain open all day, closing again only at night. For this business, value lies in responsiveness and stability but not start-up time. Lengthy start-up would then be a major issue with paper business value.

In this case, reasonable valuations reached wearing tester and business hats would result in seemingly opposing assessments — until understanding that each measures a different quality. Fitting both qualities into a single field encourages wasteful conflict where there should be harmony.

Thursday, 22 December 2011

A Charity Day of Agile Coaching

Bradford to London, aboard The James Herriot

The magnificent Grand Central swept me to London last week for my first .

Bradford to London, aboard The James Herriot

Thanks to Rob Dyke for inviting me to visit and for generously pledging £250 to The Woodland Trust, and to the team for such a warm welcome in this cold weather.

Bradford to London, aboard The James Herriot
sustains the community, so we share interests in the open source health space (as well as ). Rob and I met through the oss-uk-health group. Exciting times, with doors starting to open.

Table in King's Cross Hub
, King's Cross is a funky space, a stones throw from the famous station.
Grand Central HST London Kings Cross
Stairs in King's Cross Hub
00_hub kings x_panoramic view ground floor

We were booked into the board room — an interesting space with plenty of glass for drawing on.

0063_HKX_detail_glass writing
The board table filled most of the space, imposing some physical limits on our activities. We improvised and adapted to this physicality.

The team are just starting Scrum. Our morning focused on building skills and knowledge. The inaugural followed, after lunch.

For the morning, I brought along pick-n-mix. Before each session, we played decision poker to pick one from five themes:

Thumb voting then picked one activity from the themed mix. One red card session on user stories was included.

We hit our timeboxes, squeezing in five sessions each structured as {5m plan, 20m do, 5m reflect}, with time for breaks. The physicality of my ladybird timer proved popular: personal, quirky and fun.

After lunch, I observed the meeting, and offered some feedback, before we all left tied but happy.

Some Testing

Essentials

Optimism is an occupational hazard of programming. Feedback is the treatment.

Kent Beck

TDD seemed so revolutionary when it test infected Jakarta (and most of the rest of Apache). This test automation proved a notable factor in the later success of Tomcat, Struts, Ant, Maven, Commons (and all the rest).


Tests bridge the gap between the language of the customer and the languages of software. encourages alignment by starting with the customer then working inwards towards code.



Fine-grain unit tests execute fast, exercising a unit in isolation. Loosely coupled, cohesive designs are easier to unit test, so unit testing rewards good object-scale design.


Coarse-grain tests, exercising integrated components execute much more slowly, even with appropriate techniques (for example, switching to an in-memory store). Component-scale integration tests encourage cleaner, more reusable API designs.


The outermost layer exercises assembled applications. Fidelity to customer configuration is essential, and often means filling heavyweight stores with data. Set up and tear down costs are almost always high for enterprise applications.


Reasonable coverage using slow running integration and application layer tests costs. Avoid disrupting development flow: separate integration and application suites, and run them outside this flow. Consider triggering after each . To avoid maintenance issues, integration test selectively, invest in good fixtures and use the language of the customer.


A wide variety of open source tools continue to emerge, with sweet spots spanning the space. So spike.

Tools like and Fitness use the language of the customer, a fine match for outer (application and integration) layers. Mocking frameworks efficiently create test doubles to isolate the unit from its environment, and to efficiently verify behaviour (but not at the same time as state).

Efficient tools for special topics abound, for example web applications, load testing, performance testing, Swing, data access, JavaScript and so on...

Selected

Seed
Read
Feed

Daresbury Workshop: IT in Health Care

In early December, I took the train to
Runcorn and a cab to the SIC for the workshop on organised by . The doors are closing on a decade of failure, and starting to for , lean and ideas. I went to raise awareness that change is coming.

Health sector IT is hot here in England, as our NHS starts to open up. I had a great time, hearing about exciting innovations and meeting some interesting people.

Friday, 16 December 2011

Some Evolutionary Design

Essentials

The best architectures, requirements, and designs emerge from self-organizing teams.

A Principle, The Agile Manifesto


Good design — perhaps a loosely coupled, appropriate blend of expressive, cohesive components — speaks for itself.


When XP arrived, democratising designempowering the developer crowd — seemed radical. To some it still does.


Agile design bubbles up, just-in-time. Complementary practices, tools and techniques facilitate design evolution and mitigate risks.

Selected

Seed
Read
Feed

Tuesday, 13 December 2011

Some Emergent Architecture

Essentials

Architecture is about the important stuff. Whatever that is.

Ralph Johnson

Just-in-time approaches to design fit well into agile development.


Evolutionary design reduces waste from over-engineering and design stock-piling; at the cost of some future reworking — a traditional focus of software architects.


Just-in-time approaches to architecture blend harmoniously with agile.


Let architecture emerge incrementally with no big upfront process.
Pay off pressing technical design debts before they become critical.

Architecture is the decisions that you wish you could get right early in a project.

Ralph Johnson


Selected

Seed
Read
Feed

Some Story Points

Essentials

velocity is a useful long-term predictor but is not a useful short-term predictor

Mike Cohn


Story points are an artificial, relative unit of measure for development effort, often combined with to .


Story points are coarse and atomic, arising from intuitive inductive judgement. Trade accuracy for speed, at the possible cost of future rework.

may use tools — such as planning poker — to reach collective valuations.


Estimates for
epics — supersized stories not yet decomposed — are almost always inaccurate.


So avoid unfounded perceptions of precision by limiting point values to a sequence — often inspired by Fibonacci.

Selected

Seed
Read
Feed

Some Continuous Delivery

Essentials

Release Early, Release Often

Eric Steven Raymond

Agile development finishes features to a regular cadence, a rhythmic flow of potentially releasable versions.


The DevOps movement seeks a stronger but more dynamic relationship between upstream teams and downstream consumers in operations.


Continuous delivery engineers a pipeline for the last mile, extending from integration through proof to delivery.


move from delivering services using projects to delivering them as products

Jez Humble


Selected

Seed
Read
Feed

Some Open Design

Essentials

Open source is chaotic. With its special magic comes a different reality.

James Duncan Davidson




Issuing open source an license is not enough. The benefits ascribed arise from opening the development process to a broad community.


Open design extends domain driven, consensual, emergent design beyond the agile team to engage a wider ecosystem.


Community building is non-trivial.
Sustainable communication and cooperation needs space to build and maintain relationships.


Walking the fine balance between technical leadership and openness to crowdsourced design ideas is an art.



Selected

Seed
Read
Feed

Some Planning Poker

Essentials

The estimates are a useful by-product, if your organisation values such things, but actually the most important benefit you get from planning poker is the conversation.

Matt Wynne


Playing planning poker exploits physicality, and team collaboration to improve agile estimates.

And it's a fun way to get the work done.


Buy, make or take a set of cards.

Numbered each with story points, Fibonacci sequenced or not.


Each player is dealt cards with every number for each hand.

To play a hand, all reveal a card with their private estimate then discuss
outliers.


Until consensus - or timebox - repeat.

Selected

Seed
Read
Feed

Search This Blog