Category: Principle

Agile Teams Swarm to Greatness

They are known for rapid responsiveness and swarming behavior. This is the fourth in a series of posts about building great software using agile techniques. The series started here. I’ve said before, “Plan less, deliver more.” Others have said, “Stop starting and start finishing.” Sounds crazy, right? How can your team deliver more software by […]

Even Great Teams Need to Get Better

Constant feedback cycles are the key ingredient to continuous improvement. This is the third in a series of posts about building great software using agile techniques. The series started here. Perhaps the biggest mistake software development teams make when adopting an agile approach like Scrum or Kanban is assuming they can lay out the perfect […]

If We’re Not Agile Developers What Are We?

There are many Internet debates about what agile software development really is. Unfortunately, the term “agile” is misleading. The dictionary lets us down with definitions like “move quickly” or “think quickly”. Synonyms for agile lead us to fleet, graceful, nimble, spry or supple. Do any of those terms describe how your development team operates? Agile […]

Forget About Value. Focus on Morale.

A lot of attention is given to the term value. We want to know how much value a software development team creates with each deliverable. Unfortunately, value is a difficult thing to measure so it may be better to view the problem differently. What has value? The simple answer is everything — everything is valuable […]

Agile Risk Management Won’t Make You Cringe

Mention “risk management” and many software developers will cringe and sneak away. It’s understandable. I’ve observed some elaborate risk analyses covering everything from missed requirements to flash floods. I cringe just thinking about it! You could go to extremes in preparing an elaborate risk assessment matrix covering probabilities, impacts, mitigation steps, etc. If you’re going […]

Great Agile Development Teams Are Never Satisfied

Greatness is hard to achieve and even harder to maintain. Few agile software development teams ever achieve greatness and that’s probably a good thing — they wouldn’t be happy anyway. The best agile teams never get complacent; they never stop improving; they never get too comfortable; they are never happy with their performance. The good […]

Agile vs. Waterfall – Avoid the Semantic Debate

Every software development approach has its flaws and its critics. Though at times, it seems like everyone is looking for a panacea — a cure-all or ultimate remedy. Sadly, there is none. Here are a few criticisms leveled at the major development approaches. All have some validity, especially when the approach is applied improperly (which […]

Fail to Fail and You’ll Fail to Improve

There are two critically important elements to agile software development that are often either overlooked or ignored. Continuous Improvement A Willingness to Fail Any team committed to being agile will seek continuous improvement through regular retrospectives. There’s always room for improvement. Who among us believes that he is the best he can be — there’s […]

Estimates Are Worthless But Estimating Is Priceless

Seems contradictory, right? We spend a lot of time preparing software development estimates. Yet, I claim that the end result has no value. None. I also claim that the effort required to prepare estimates is time well-spent. That doesn’t make any sense! Or does it? Everyone wants to know how long the project will take […]

Hidden Assumptions Can Take Down Your Project

What are you assuming? Every project plan, user story and task list contains assumptions. An assumption is something that’s taken for granted by the software development team — something presumed to be true. This is in contrast to risks, in that risks are adverse events that we believe are unlikely to occur. Some assumptions will […]

Technical-Debt-Driven Development: If It Works, It Ships!

Technical-Debt-Driven Development (TDDD) is about to become the hottest craze. Here’s how it works. The software development team doesn’t waste time thinking about solution elegance or future considerations. They simply focus on getting the code working. If it works, it ships. Technical debt is leveraged as a means of accelerating the team’s efforts just as […]

Learn to Say No More Often and Focus Instead

Saying ‘No’ can make agile software teams and their companies more successful. How can that be? Doesn’t the team have to deliver what the business wants? Let me explain. Obviously, when a business stakeholder makes a request, the team has an obligation to evaluate the request and add it to the product backlog after appropriate […]