Too often, customers have a “fake certainty” about the problems they want to solve. They might not have defined the real problem, but they have frequently defined the solution anyway. The risk is that we might build the wrong thing. When the product owner works with the customers to define the problem, then works with the team to define the solution, everyone can win.
If you're familiar with pair programming, you know how much it can increase code quality and encourage developers to learn from each other. You should try mob programming—the same concept, but with an entire team of up to eight people and only one keyboard. It's a great way to explore new techniques and solve problems as a team.
One of the most important features in agile software development is continuous improvement. However, after an initial burst of inspiration and productivity, teams may stop improving because they believe there are no issues left to address or the issues are too difficult to solve. People need to switch their mental models to keep addressing processes efficiently.
There is more to software development problem solving than processes and tools. Discover a way to get to the heart of a problem with none of the hacks, shortcuts, and workarounds that have become the industry norm.