Edge of Chaos

Agile Development Blog

Scrum, Lean, Kanban, Visualization, User Experience

2009

Friday’s Digest #15 (Kanban, Velocity, Community)

  • What is Cadence? Great post explaining cadence using nice pictures. “The purpose of a cadence is to establish a reliable and dependable capability which demonstrates a predictable capacity. Cadence gives some confidence in the upcoming work when we are triggering rather than scheduling work.”
  • Series of amazing Danilo Sato posts about Velocity anti-patterns: Done is not done, Making up points, Used as a performance measure.
  • Alan Shalloway has interesting and thought provoking post “Is Part of the Agile Community Acting Like the Waterfall Community of Old?” “The pattern is unfortunate – it seems that there are those who don’t like discussing some thing have taken one of two approaches. If they can intimidate people who are using Scrum Alliance certifications for their livelihood, they do so. If they can’t, they attack the integrity of those people they don’t like (e.g., David and myself and others I haven’t mentioned). “

Agile Mind Maps: BDD, Continuous Integration, Design

It seems people do like mind maps. Previous post about Scrum and Extreme programming mind maps was very popular. So I decided to continue the topic and gather more mind maps for agile practices.

Behavior Driven Development (BDD)

BDD is a step forward and an evolution of TDD. This BDD mind map nicely describe the whole thing.

BDD Mind Map

BDD Mind Map

Continuous Integration

Continuous Integration is one of the most important software development practices. It give instant feedback and perfect traceability. Check Continuous Integration mind map for details.

Design

Simple design is one of the principle of agile software development. This mind map represents some design smells in quite interesting format. Agile modeling with Mind Map and UML post describes how can use mind maps to create better software design.

Automated Testing

Mind map that shows one approach for automated testing using Fitnesse and Selenium.

Planning

Simple mind map about planning activities in agile development.

Agile Product Development: Iterate, then Flow

There are several known areas where Kanban software development works fine: maintenance projects, game development, multi-media projects. There is no clear data whether it is good to use Kanban for product development or not.

I have my own vision of Kanban role in software development projects.  I think that

When you start a new product, you should use iterations first, but then may switch to pure flow development using Kanban.

Reasons are quite simple. Initially you do not have any burden. You have quite a large set of features that you want to push into Release #1. Definitely it’s better to have a small backlog, but it depends, you know. Sometimes  a “minimal marketable product” still has quite many features. So you have many user stories to implement, you do not have any bugs from production release, you do not have change requests, etc. It means you have a pretty stable environment with a quiet and stable backlog. And it means you don’t need to branch features and be able to release anytime. You may define clear goals for your iterations, estimate stories, use velocity and predict Release #1 date with acceptable accuracy.

Iterative

However, things change with time. Suddenly you have large customers base, you have many enhancements, you have urgent bugs to fix and release. Now the environment is not so stable, you have unexpected events in the development process. Then I think it’s a good time to switch to Kanban. Urgent bugs may be fixed and released in 1-2 days, enhancements may be planned just in time with good release date prediction, velocity is no longer critical, since you do not need to predict large release dates, cycle time works fine for small features.

chaos

We’ve had this experience at TargetProcess. We’ve iterated for over 3 years, but several months ago switched to Kanban. Normally we do small releases each week, but are able to release anytime if required. We do not estimate stories anymore (maybe we will get back to story estimates, but doing without it so far). We are using Git and we’ve got a branch for each feature or bug.

Ironically, we stopped using some features in TargetProcess like release/iteration planning and progress tracking ourselves. It was a clear sign that Kanban support should be added to the tool. And it is on the way.

Mind Maps: Scrum, Extreme Programming, Lean

Mind maps are cool. They provide a very good overview of quite complex structures and things. You may quickly scan the mind map and find interesting relations. Also it helps to create/maintain good picture of the process/structure in your head.

Agile development processes are good candidates for mind maps.

Scrum

This mind map represents Scrum checklist (PDF). Looks neat and focuses on right things like Definition of Done, correct roles definition,etc. In short it is a mind map of best practices in Scrum.

More formal mind map (PDF) of Scrum process. Plenty of details and good nodes separation. And finally a small and funny Scrum mind map.

Scrum Mind Map

Extreme Programming

Two very similar mind maps of Extreme Programming, but with different details.

Lean

Small Lean mind map. Interestingly, I did not find any Kanban mind map. Seems like it is time to create one :)

Friday’s Digest #14 (Kanban, Extreme Programming)

  • The roots of agile project management is a nice article. It summarizes trends that evolved into agile software development paradigm.”If users can’t foretell what they’ll want until they see it, if predicting and planning substantial IT projects is not possible, and if protecting projects against changes that arise during the development process is impractical, the ideas behind existing “waterfall” methods are clearly flawed, and an incremental, prototype-based methodology could offer substantial benefits.”
  • Defining Kanban on my opinion is the best article that describe what Kanban really is. On author opinion, Kanban has just two properties: have a pull system, provides rapid and highly visible feedback. I support this vision.
  • Extreme Programming Mind Map. Nice overview of Extreme Programming with a good mind map.

TargetProcess

Agile Project Management Software

for Scrum or Kanban

Take a Tour!