Being Agile and Procrustean Don’t Mix

Scaling agile software development techniques to enterprise levels has plenty of challenges. Getting a small team — say 5 to 7 people — working together and building great software solutions happens regularly. Getting large teams — say 500 to 700 people — to do the same is an engineering feat that challenges our human abilities. […]

The 7 Benefits of Reducing Software Project Scope

Scope creep. Virtually every software project suffers from it. Development teams start out with elegant and simple ideas. They toss them around amongst themselves and get excited about the prospect of delivering great software. They engage more people in the effort such as business stakeholders, power users, and senior managers. As they do, features get […]

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 […]

Poor Quality Software Is Never Done

Defects. Every software package has them. Some defects are minor and don’t interfere with the operation of the system. Others are ugly, causing business users to lose data. Some are repeatable and consistent. Others are hard to replicate and tough to track down. Part of what makes defect repair so difficult is that we often […]

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, […]

Stop Dawdling and Make a Decision

There are many decisions that have to be made during the course of every project. No matter how much planning takes place at the outset, many details will have to be worked out along the way. Also, don’t forget the unplanned work items and change requests that inevitably happen along the way. Not a day […]

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 […]

6 Ways to Pour Money Down the Drain on Software

Over half of major information technology projects fail. Corporate America spends tens of billions, yes BILLIONS, of dollars on these projects resulting in huge losses. These results span all industries, crossing geographic boundaries and applying to all corporate operations from the front office to the back office. Technology gets the blame but it’s not a […]

Does Planning Make Perfect? No, But It Helps!

One of the leading causes of delays in software development projects is simply the state of being not-ready. I see it all the time. A team member tries to work on something and runs right smack into a wall of missing information. Or a someone tries to hand-off a work item to another team member […]

7 Prerequisites for Building Great Software Systems

When I and other bloggers write about agile software development, we almost always focus on process areas and Scrum, in particular. That’s fine, but I’m making the argument in this post that your team simply cannot be agile unless some basic elements of software development are in place. Without them, the best agile process on […]

The Difference Between Incremental and Continuous Improvement

Most large enterprises claim to engage in continuous improvement but they are really improving incrementally. Their efforts often include annual reorganizations whereby vice presidents are shuffled around and new procedures are put in place. In my experience, little if any value derives from such organizational tinkering. Another form of incremental improvement results from conducting “project […]

It’s Easier to Get Software Right From the Start

Let’s discuss “done” as it relates to writing software versus testing it — code completed versus code validated. Here’s the scenario. A software developer has finished implementing a code module or, preferably, a story. This means he’s unit tested the code and it works as intended. Is he done? Now, someone specializing in software testing […]

10 Signs Your Software Architecture Is Flawed

Getting the architecture of an enterprise software system right can be tough. There are a lot of variables, a myriad of options, and many ways to get it wrong. Often, development teams don’t realize that the architecture is weak until serious problems appear in production. By then, there’s extreme reluctance to admit that the architecture […]