Some people claim that Scrum is incomplete, unpredictable and chaotic. Sadly, it’s all true and the same can be said about waterfall, Kanban, Lean, XP and every other approach to building software systems. People making such comments are looking for a step-by-step approach to guaranteed software development success. (If I could define such an approach, I’d make millions as a consultant, author and speaker!)
But the news isn’t all depressing. Scrum provides excellent guidelines for delivering great software. Let’s look st those perceived problems more closely.
Scrum is incomplete — and so is every other software development approach I’ve ever seen. Any approach that has wide applicability will be incomplete when applied to your specific situation. Your environment, people and business rules are unique. If you’re looking for a development approach customized to your situation, you need to hire a consultant/coach to work with you for several months or more.
Scrum is unpredictable — when the people using it are not disciplined. Don’t blame Scrum if your backlog is out of control. Don’t blame Scrum if you can’t predict what will get released when. No development approach will make up for your lack of discipline. People solve problems. People deliver software. Scrum can help enforce some discipline but people need to be fully engaged in the effort and properly trained.
Scrum is chaotic — when no one steps up and provides leadership. Teams need oversight and direction. Scrum offers opportunities to oversee and direct every day — if applied correctly and supported by a good Scrum Master and a strong Product Owner. If the development team implements Scrum without adequate business support, it will indeed look like the developers are out of control.
Software development is not easy.
Wouldn’t it be great if there was a pill for software development? Give two of them to each developer every day for six weeks and out pops great software! Crazy, right? Yet, that seems to be what many people are looking for. They want a simple, lightweight, development process that includes step-by-step instructions and delivers great software.
Delivering great software is hard work.
Software development is highly complex and so are the risks. The degree of complexity and level of risk reflect your underlying business model. Small firms with simple needs can build simple software systems with relatively little risk. Large firms with complex needs have to build complex software systems and take bigger risks.
Thankfully, there are huge benefits to companies and their shareholders when software teams deliver what the business needs. It’s usually well worth the risk.
Let’s stop blaming the approach and the tools when software projects fail. In the end, people make all the difference. If your people are misaligned with your approach, you will fail. It doesn’t matter which development approach you select. Stop blaming your approach. Start training and supporting your people.