Doing agile software development in enterprise environments presents challenges beyond those found in smaller firms. Big companies like to document, review and approve. Those concepts aren’t inherently anti-agile but they sure can slow things down. Resistance is unlikely to win you any points or make you any friends. Transitioning from a waterfall approach or from […]
Category: Technique
Collaborative Team Behaviors Have to Be Nurtured
Great software development teams don’t just materialize as if beamed in by a Star Trek transporter. They can’t be formed by managers who hand-pick the “best and the brightest” to work on a critical project either. Great teams form when people are challenged and have to think for themselves. Here’s a simple example. Let’s say […]
Triple-H Weather and Triple-H Projects Have Lots In Common
The weather pattern has quickly changed from winter into summer. We had snow in some parts of New England last week and this week we have the dreaded triple-H weather — hazy, hot and humid. The triple-H pattern appears in software development projects too. In fact, it’s not unusual at all. Let’s explore what triple-H […]
Risk Creates Speed Bumps on the Road to Done
4 Risk Categories Are All You Need Worry About Have you ever been involved in the software project from hell? Many of us have. The project begins with plenty of enthusiasm and optimism. Goals are defined. Staffing is assigned. Delivery dates and budgets are handed out. Everyone’s excited. But somewhere along the road to done […]
Sometimes You Have to Break the Sprint Rules
Here’s an all-too-common scenario in agile software development projects. You’ve defined fixed-length sprints. They are 4, 6 or 8 weeks long. The team is well into a sprint when the product owner shows up and says something like “We have to add another story to this sprint. The business will reject the software unless we […]
Are No Estimates the Solution to Bad Estimates?
#NoEstimates. Is it the latest agile software development trend or meaningless hype? Your guess is as good as mine. It’s an interesting question that deserves closer examination. The general premise is that software estimates are unreliable. They are usually overly optimistic and are often grossly inaccurate. So is it better to avoid all the work […]
Velocity Is a Useful Metric But Not a Crystal Ball
I’ve criticized metrics in this blog before and I’m doing it again. I’m really a fan of metrics when they’re applied properly and interpreted correctly. Unfortunately, metrics are often misapplied and misinterpreted resulting in poor decision-making. That said, let’s take a closer look at a popular Scrum metric — velocity. Here is the definition found […]
Estimates Don’t Matter But Story Sizes Do
I’ve read quite a few blog posts lately regarding software estimates. Should we estimate epics, stories and tasks or not? Are estimates useful to software development teams or are they a waste of time? Do estimates add value to the development process or are they inaccurate and misleading? As is often the case, the answers […]
10 Reasons Why Your Team’s Software Is Crapware
Crappy software. It’s everywhere. There is far more poorly-designed software than well-designed software. So much more, in fact, that we are literally drowning in crapware. It gives all of us in the software business a bad reputation. I hate it. You’ll find lots of information on how to build better software (just click here). However, […]
Some Tips for Guiding, Not Controlling, Software Developers
I like to move fast. I like having the “first mover advantage”. I don’t believe that my team needs to be smarter than yours or better at what we do (though those attributes certainly help). If we can simply move faster, we’ll have the advantage and we’ll be more likely to succeed. Regrettably, I work […]
The Curse of Recurrence and Habit
Some habits are good. Others are productivity killers. Here’s one example. Someone schedules a meeting. That’s bad enough, right? And the person decides to make it a recurring meeting — every week for as far into the future as anyone can imagine. Then it gets worse. Week after week, zombies (sorry, I meant people) arrive […]
Fail, Learn, Assess and Try Again
I don’t know about you but I hate to fail. I’m not kidding. I REALLY hate failure. And that is one of the scariest aspects of agile software development. To succeed, you have to be willing to tolerate failure. In fact, if you’re not experiencing any failures, you’re not pushing yourself or your team hard […]
Writers Can Teach Us Something About Writing Software
In this post, I’m sharing a technique for writing a software module with you. I’m assuming that we are implementing a user story and that the acceptance criteria are clear. The story has been divided into a set of tasks and the task durations are known. It’s an approach that works well for me though […]
Binary Choices are Better When Choosing Software Features
In the world of agile software development, there’s a lot of emphasis on things like story estimates, daily standups and team retrospectives. Those things are important but there’s a serious problem that none of them address — feature set. What features should the software have in the next release? Waterfall development practitioners tend to include […]
Faster Business Is Better Business When You Need to Change
Can you get your software to market faster by following agile software development principles from Scrum, XP, Kanban or Lean? That’s a complex question that generates controversy no matter how I answer it. I’m okay with controversy so my answer is yes — if you give the team time to mature. Regardless of what you […]
10 Rules for Lean and Agile Thinking
Many companies have adopted or are considering adopting an agile software development approach using the principles of Scrum, Kanban, XP or Lean. Regrettably, their goal is often to reduce time-to-market but agile methods are not designed to reduce development time. These methods are focused on quality and aligning development teams with customers. If time-to-market is […]
10 Tips for Producing Documents That Are Lean and Agile
Some software development groups must document everything. This often results from legal, regulatory or compliance demands. Although, it can also be a cultural phenomenon — some managers simply won’t accept anything unless it’s in writing. Do everything you can to minimize the volume of written exchanges. Information overload is not just a cute phrase. It’s […]
Avoid a Project Blamestorm. Agile Development Can Help.
Have you ever been asked to deliver a software solution only to discover that the requester doesn’t know what she wants? In addition, she gives you a deadline, yet when you question the relevance of the target date, it becomes apparent that the deadline was picked at random. It’s happened to me more times than […]
7 Tips for Improving Your Software Development Process
Can we agree that writing great software is hard to do? Not just any software, great software. Every corporate situation is unique and there are no simple solutions for building great software. That said, here are seven quick tips for improving your software development process. Pick one or two and get to work. 1. To […]
10 Traps That Snare Even the Best Software Teams
There are many ways for software development teams to fail. That’s why retrospectives are so important. Learning from mistakes, your own or those of others, is one of the best ways to improve. Last year I posted “10 Reasons Why Projects Cascade Into Chaos”. This is such an important topic that I want to expand […]