Great agile teams have diverse skill sets and share a common vision. This is the fifth in a series of posts about building great software using agile techniques. The series started here. If you read any books on agile software development, you’ll see references to multidisciplinary teams. That means the development team is largely self-contained. […]
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 […]
To Build Great Software, You Need a Great Organization
This is the second in a series of posts about building great software. The series started here. In my last post, I introduced the idea that great agile teams exhibit a set of attributes that clearly distinguish them from legacy teams using waterfall approaches. Their techniques are also quite different from software teams who claim […]
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 […]
Enough Already! Why Are We So Obsessed With Bigness?
It happens all the time. As companies grow, they take on bigger and bigger software projects. Why is that? Small companies work on small projects. Why? Simply because they can only handle small ones. They don’t have the staffing, equipment, office space or budget to handle big, long-term projects. Makes sense, right? Big companies have […]
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 […]
Software Development Is Simple. Developing Great Software Is Formidable.
Software is finding its way into almost every aspect of our daily lives. Everything from our kitchen appliances and entertainment systems to our automobiles is controlled by software. Regrettably, much of that software suffers from poor design, UX inconsistencies, obvious defects, and sluggish performance. I focus this blog on enterprise software development because it’s a […]
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 […]
Avoid the Extremes of Software Development; They’re Not Agile
Large enterprises have lots of rules — do this, don’t do that, ad nauseum. Thus, it’s no surprise that software development teams in large enterprises are forced to follow lots of rules — document this, approve that, wait for something else. Then, along come the agilists promising a better way. You can build software systems […]
What Are the Characteristics of Successful Software Projects?
We spend a lot of time examining software project failures but it’s equally important to understand why some projects succeed. Here’s a short list. Commitment. The business stakeholders and the technologists are committed to the project — not just at the outset but throughout. This takes intense collaboration. There is also an executive sponsor or […]
Agile Development Teams Follow This Simple Principle
Have you ever heard of the principle known as Occam’s Razor (or Ockham’s Razor)? I like to think of it as the law of simplicity — simpler explanations are better — all things being equal. Another way to think about it is that you should always start with what you know in trying to understand […]
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 […]
The Delivery of Potentially Shippable Software Is Being Abused
Here’s one of my big problems with some agile software developers and Scrum in particular — deliver potentially shippable software at the end of every sprint. That mantra puts a lot of pressure on the team to build, build, build. Planning? Designing? There’s no time for those. They need to build something that’s potentially shippable! […]