Here's a key point I gleaned after putting together concepts from several speakers. There's a confluence of technologies and development techniques that delivers a competitive advantage to anyone who masters them.
I've worked with several product managers who never really grasped the concept of a minimum viable product (MVP). They often over engineered user interfaces or added features the customer never wanted or used.
It usually took one failed product before they caught on and started asking me how this MVP thing works.
It's all about creating learning loops with your customers.
Infoq interviews Jeff Sutherland. Even though Silicon Valley companies have adopted Scrum, what’s the biggest problem? Eighty percent of the teams do not have tested, working software at the end of the sprint. This is a gross violation of the Agile Manifesto’s second value:
Working software over comprehensive documentation
Here are three techniques I practice to deliver working software at the end of a sprint.
Limit Work in Progress — Limit the number of user stories in progress. For example, the team only works on three stories at a time. This constraint compels the team to complete a story before starting another. I also teach teams to swarm on the top priority story and focus on completing it. Stop starting, and start finishing.
Hire full-stack developers — For your team to effectively swarm on a story, people need to have multiple skills. Developers should know how to write code in all layers: UI, business and database layers.
Test-Driven Development (TDD) — In many cases, stories are not finished because the team is still testing. Solution? Test first. When a developer practices TDD, she writes the unit test first, then the code to pass the test. The unit tests can be run every time a new build runs, making the code self-testing.
Practice the three techniques and let me know how they worked. What challenges did you discover?