Category: Technique

Software Estimates Are an Exercise in Probabilities

Has this ever happened to you? A senior manager asked me if a software application could be ported from Microsoft Access to Salesforce.com. The business unit workflows are partly automated and partly manual today. I did a top-level analysis and suggested that the current application could be ported fairly quickly. The project got approved and […]

Just-In-Time Planning Reduces Waste and Improves Software

The best agile software development teams use just-in-time planning. It’s a simple concept, really, but not-so-simple to put into practice. It has roots in product manufacturing and is embraced by companies following a kanban approach to building products. You’ve probably heard of just-in-time inventory management. It’s a set of techniques for minimizing both raw materials […]

Phased Agile Development Builds Bridges

My last five posts have covered the topic of using phases in agile software development similar to the phases of the Rational Unified Process (RUP). So why phases? Neither the Agile Manifesto nor Scrum make any reference to phased development. If you use phases, are you really doing agile development? (If you haven’t read the […]

Project Phases Can Be Used In Agile Development Too

Big companies like highly-structured approaches to software development. Why? They’re trying to control and reduce risk. Despite the fact that their real-world experiences clearly demonstrate lack of success, they keep trying. Some of these companies are adopting approaches that apply more rigor and structure to agile development. The two most discussed (and controversial) approaches are […]

Can’t Be Agile? Start With Lean Instead.

Many people want to try agile software development techniques but they just can’t convince enough other people in the company to give them a try. Making the situations more complex, even if most agree that agile development is the way to go, they can’t agree on which agile techniques to apply — Scrum, Kanban, XP, […]

The Observer Effect Works But Not for Long

Have you ever heard of the observer effect? It’s the scientific principle asserting that observing a process or action has an effect on the outcome. For example, I’m sure you’ve felt the pressure of having someone stare at you while you’re trying to do something. If you let it get to you, it effects your […]

We Don’t Need To Be Smarter. We Need To Work Smarter.

Are software professionals smarter than other business professionals? At times, we seem to think we are but let’s examine that premise more closely. Consider this. National restaurant chains spend millions of dollars test marketing new menu items. For example, Burger King, McDonald’s, Dunkin’ Donuts, Olive Garden, and Taco Bell invest boatloads of time and money […]

Technical Debt Often Plagues Legacy Software Systems

In a perfect world, every software development project would start with a clean slate — no existing code base, no established user community, and no outstanding defects. Wouldn’t that be sweet! It rarely happens. Most software projects start with a truckload of baggage — crappy code, impatient users, incomplete features, frustrating user experiences, slow performance, […]

One Size Fits All. No Project Too Big or Too Small.

So your company wants to adopt a new approach for software development projects. The selection committee wants to pick an approach that can be used across the board — on all projects. The committee naturally focuses on big (i.e. expensive) projects because they offer the biggest bang and the biggest risk. The development approach they […]

I’ll Know What I Want When I See It

“I’ll know it when I see it!” Many software specifications should simply make that statement and call it a day. Spending a lot of time at the beginning of a software project trying to precisely define software behavior and appearance is often a waste. Let me tell you a story. I once reported to the […]

10 Simple Rules for Better Daily StandUps

One aspect of Scrum that’s controversial is the daily standup. Some people just hate any group event that remotely resembles a meeting. Sitting, standing, kneeling … it doesn’t matter. Having to wait around and listen to others jibber-jabber when there’s work to be done can be beyond annoying. However, there are many developers and testers […]