Most software developers have heard the line “You can have it good, fast or cheap. Pick two.” This idea relates back to the iron triangle of software development. The usual idea is that quality is fixed while time, money and/or scope can change. In reality, all four elements are changeable. We simply don’t like to […]
Category: Principle
What Does It Take To Be Agile?
What does it take for your software development team to be agile? Only you and your team can answer that question. I can offer my opinion about being agile but your circumstances may vary. The characteristics that one person requires for agility will be different from what someone else in a different situation requires. For […]
Short Projects Aren’t Necessarily Agile
In my last post, I discussed getting the waste out of your existing software development process. The idea is to get lean and use the leaner process as a stepping stone to becoming more agile. Let’s continue that discussion. So now that your project approach is leaner — streamlined — what next? Many companies are […]
Bad Officiating Happens in Business Too
Watching an NFL football game and seeing my favorite team lose as a direct result of the officiating got me thinking about the effect of too much management intervention in software development. So here’s what happened. I was watching the (NFL) football game on Sunday between the New England Patriots and the New York Jets. […]
A Team’s Response to Ad Hoc Requests May Determine Its Fate
Sprint Work Efforts Have To Be Sustainable
There’s a natural tendency on many agile software development teams to rush the work effort near the end of a sprint. Let’s face it, a deadline is a deadline. The team commits to completing a set of stories during the sprint. They work hard and often scramble near the end to keep their commitments. There’s […]
Is a Sprint in Scrum a Project?
Focus on the product not the project. We use the term “project” a lot in software development circles. One person might be building a small desktop application or a massive group of teams might be implementing an enterprise solution. They are both projects. Neither the development approach nor the technology suite matters. Ultimately, anything can […]
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 […]
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 […]
When You Learn Faster, You Go Faster, But It Takes Time
Speed. It’s a frequent topic among software development teams. How fast can the team deliver product X? Can the team cut a few weeks off the development schedule? If the team switches from waterfall to Scrum, how much time will be saved on the delivery schedule? Those are all the wrong questions though they are […]
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 […]
Software Development and Dieting Have Something in Common
Any change to the way we do things is disruptive. Any deviation from our normal routine is unsettling. Forget about the holy wars around what constitutes the “best” software development approach or whose diet plan produces the “best” results. The challenges of creating software and dieting are the same. Why would a company change the […]
Even When You Build the Right Software, You Can Still Get It Wrong
Is it more important to build the right software or more important to build the software right? The lazy answer is something like “…they’re equally important…”. Let’s not be lazy. Let’s think about this. Build the Right Software You can build the world’s best software system but if it doesn’t do what the customer needs, […]
Without Trust, No Enterprise Software Development Approach Can Work
I’ll bet you’ve seen this happen. It may even have happened to you. The business folks are using software they built to track and report something important. The software is a bit crude, maybe even primitive, but it works. It’s simple. (Often, Microsoft Excel and/or Microsoft Access are the preferred tools.) Everyone loves the insights […]
Software Quality and Time-To-Market Should Never Conflict
Here’s a question that I believe generates some of the controversy around agile software development techniques versus waterfall techniques. If your team delivers fewer software features and functions but the software is higher in quality, are your user base and your company better off? Agile teams often claim to deliver better quality software. I agree […]
Chickens, Pigs, Commitment and Teamwork
Are You Accountable for Your Work? Let’s Hope So.
Are you accountable? Someone has to be. Work must get done. Software must be delivered. All the supporting artifacts that go into building great software must be created and maintained. We all know that, right? But are you accountable? Is your work clearly defined? Do you know precisely what you have to do? Do you […]
The Dark Side of Metrics: Be Careful What You Wish For
Many managers are fond of using metrics as a way to evaluate the performance of software developers. This can be done both at the team and individual levels. However, most metrics can be “gamed”, that is, manipulated to show the desired result. Some readers are likely thinking that their teams would never “game the system”. […]
Great Agile Teams are Adaptive and Resilient
This is the sixth and final post in a series about building great software using agile techniques. The series began here. Many people, managers and developers alike, view agile development approaches like Scrum and Kanban as just another way to write software. Once they decide to try an agile approach, they quickly realize how wrong […]