Category: Principle

Without Context, You Can’t Make an Informed Decision

What’s more important, project management or system engineering? Let’s see. Can a group of project managers build a software system without any engineers? No. Can a group of engineers build a software system without any project managers? Yes. That settles it. Engineers are more important than project managers. But wait! I hope you know that […]

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

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

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

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

Any Group Can Be Agile — Including Yours

Can a sole software developer working on a small project be agile? Can a team of five software developers without any dedicated test support be agile? Can a group of 20 developers, testers and analysts working on a major project be agile? Can an inter-departmental, cross-functional group of 100+ people working toward a common goal […]

Some Waterfall Project Phases Have To Go

One of the big problems I have with the waterfall approach to software development is the laser-like focus on the beginning and end phases of the project. It starts with requirements gathering and ends with testing, testing and more testing. All of the intense activity and complex analysis in the middle gets lost. At the […]

You Can Be 100% Right and Totally Wrong

Yesterday’s post got me thinking. (See Estimating Is Hard But The Business Needs to Know.) Can you be 100% correct and yet be completely wrong? Regrettably, yes you can. Let’s say you and your team are waterfall experts. You are the best of the best. During project initiation, your team can precisely estimate: How long […]

Don’t Let Your Software Project Be (Charlie) Sheen’d

Charlie Sheen’s meltdown on national TV reminds me of project team meltdowns that I’ve witnessed. Charlie has experienced major successes. His television series, Two and a Half Men, is hugely popular by any measure. He gets the lion’s share of the credit for the show’s success but there are several other terrific personalities on the […]

Calling It Agile Doesn’t Make It Agile

Here’s a common scenario. A company’s software development process isn’t working real well. The software is often late, incomplete and buggy. (I’ll bet you’ve heard that story before.) Anyway, management decides to try a new approach. ‘Agile’ is a hot buzzword so they decide to give agile software development a try. A few development folks […]

Agile Development Won’t Let You Walk On Water

Some companies switch from waterfall development to some form of agile development in order to reduce costs, shorten schedules, improve quality and mitigate risk. Agile can do all that, right? Sure, and I can juggle while skipping rope and walking on water! Sometimes, expectations are out of control. Let’s examine what agile techniques can and […]

Agile Development Teams Know How to Fail

Do you want your software development team to develop better software faster? Learn to fail fast, often and cheap. Sounds silly doesn’t it? You want to succeed not fail, right? Fail often? What’s up with that? Agile development advocates take a lot of heat over our efforts to fail fast. Well, the word ‘fail’ is […]

Is Quick and Dirty Such a Bad Thing?

I sat in a meeting today discussing a complex customer problem with the team. We brainstormed and quickly determined that a good, clean solution to the problem would take more time than the customer was willing to give. I suggested that we try to find a partially manual work-around to buy us time to implement […]

Agile Success Demands 12 Agile Principles

Every software development process is subject to plenty of criticism. Agile methods are no exception. Regrettably, in most situations where a methodology “failed”, the people following it cut corners. They adopted some but not all of the core ideas. Failure risk always increases when you do that. At times, people take things too literally. Or […]

Sports Lessons Learned for Agile Development Teams

There are some interesting similarities between professional sports teams and agile development teams. Think about it. Whether it’s baseball, basketball, hockey, (American) football or soccer, teams spend a lot of time training and conditioning. They prepare a game plan and create player match-ups. As the game unfolds, they make adjustments. No game ever goes exactly […]

Keep It Simple and Reduce Risk Via Agile

There are two things that agile software development does really well. Unfortunately, they are widely misunderstood or even ignored. Keep things simple. Manage risk. Let’s examine these a bit. Simpler is better because people can only remember so much. If you have to refer to the rule book every time a decision needs to be […]

Be Disruptive. Be Agile.

Agile software development is disruptive. Big companies pride themselves on their ability to plan. Strategic plans, project plans, marketing plans, sales plans…and more plans. Agile teams plan too but they place more emphasis on delivering value. They recognize that plans change so they limit upfront planning and let the plan evolve with the project. That’s […]