Month: May 2011

The Scrum of Scrums Approach Lacks Definition

The concept of using Scrum-of-Scrums meetings for large projects following the Scrum approach presents major problems. Mike Cohn has written on the subject. So has Tim Bowler. I think it is more complicated than they suggest. Let’s say you have a project with 100 people assigned. I know 100 people seems like a lot but […]

User Stories and Use Cases – Similar But Not the Same

I often hear people equate the concepts of “Use Cases” and “User Stories”. Aren’t they pretty much the same? Conceptually — yes. Practically — no. Use cases, when done properly, represent a structured and rigorous approach to defining what a system will do when stimulated by external events. Use cases are broken down into scenarios […]

Small Project Improvements May Not Be Enough

Sometimes you have make major changes, even in the middle of a project. This post titled “How we do a retrospective” at Scrum Breakfast got me to thinking. I’m a big fan of project retrospectives or post-mortems. The general principle is to have the team identify areas that need improvement, select a very small number […]

An Agile Death March Is Like Any Other

Doomed projects give everyone involved a bad reputation. All this talk of the end of the world on May 21st, made me think of “death march” software projects. I’ve been involved in a few and they are not fun. Can an agile team using Scrum, XP, Kanban, Lean or any other agile approach, completely avoid […]

How to Get a Scrum Project That’s in Trouble, Out

So, your team is using Scrum and it’s not working. Symptoms include the following: Sprints are not delivering the stories as promised. Sprints are taking longer and longer. The number of defects found during testing is high and there’s no time for fixes. Morale is low as the team struggles and becomes argumentative. The natural […]

XP’s Pair Programming Is Harder Than It looks

The agile development practice of “pair programming” endorsed by advocates of eXtreme Programming (XP) is controversial. On the surface, it seems that having two programmers work side-by-side sharing a keyboard will cut productivity in half. (It surely will if you take this to the limit and stuff two programmers in every cubicle. But at least […]

Good Engineering Is the Primary Objective

When it comes to software development, agile or otherwise, the predominant emphasis is on management disciplines. We write about planning, tracking and delivering the software. But what about writing the software? In the end, the quality of what the software engineers write determines the outcome. I’ll go so far as to say that good software […]

7 New Ideas for Breaking Down User Stories

There are many books and articles about creating user stories when using an agile development approach like Scrum, XP or Kanban. The standard techniques focus on technical content and process flows when dividing high-level stories into smaller and smaller chunks. This post approaches the topic from a different perspective — that of the business. I […]

Earned “Value” Is a Fallacy

It’s not earned; it’s accrued. It’s not value, it’s cost. Big difference. There are many proponents of the concept of “earned value” for software projects. Many of them are consulting companies and those that work on US government projects. I think earned value management (EVM) is bunk. The concept has merit but the implementation is […]

A Waterfall Wrapper Can Help with Agile Adoption

How much process is enough? Ask that question of ten corporate managers and you’ll get ten different answers. That’s one of the reasons why converting from waterfall software development to any agile approach is so difficult. Waterfall development is a command-and-control process filled with checks, balances, phases and gates. It feels right to many managers […]

Testing Survival Means Knowing What to Test

Does every feature and function in the software need to be 100% tested and approved? I don’t think so. Firstly, let’s split testing into two major domains: Verification: Does the software do what the specifications and the developers intended it to do? Validation: Does the software do what the business wants and needs it to […]

Forget ‘Done’, What Matters Is ‘Complete’

Lots of ‘done’ stories doesn’t mean the software is ready for delivery. Risk is a small word with a massive impact on software development teams. Does your company culture encourage or discourage risk-taking? Are your software teams authorized to take risks? What happens to people who take authorized risks and fail? Here’s the problem. A […]

Don’t Be Change-Phobic; Deliver Just-In-Time

Work-in-progress — costly, cumbersome and confining. Product manufacturers go to great lengths to avoid work-in-progress (WIP). WIP is anything that is unfinished. This includes artifacts that help in producing a product, not just the final product itself. Why is WIP bad? Costly to store and manage. Must be maintained and upgraded as needed. Inhibits the […]

Ubuntu Tries a New Look — Unity

Canonical deserves a lot of credit for releasing Ubuntu 11.04 with the Unity desktop interface. For Linux to be more successful on the desktop, it needs a new look. The Gnome and KDE desktops have dominated Linux for years — many years. They are are old and dated. Even recent revamps to both desktops have […]

Agile Software Success Demands Teamwork Not Domains

Agile software development is a team effort. That’s an important point so I’ll repeat it. Agile software development is a team effort. Whether you’re using Scrum, XP, Kanban or another agile approach, there must be a strong sense of teamwork and a willingness to deliver as a team. Too often, companies new to agile development, […]

The Software is Broken. What Did You Do?

Another reason for software development to be agile. Has this ever happened to you? You receive an email or a phone call saying something to the effect of “The software is broken!”. It is suddenly and inexplicably misbehaving. The results being observed have never happened before. What did you do? You think “How can it […]

Make It Simple and Fast Then Refactor for Better Software

Refactoring is a controversial topic within agile software development. There is no clear and simple definition of “refactor”. Martin Fowler wrote an entire book of over 400 pages on the subject called “Refactoring: Improving the Design of Existing Code”. You can find it on Amazon. The generally accepted definition of refactoring goes something like this: […]