I presented this talk a while back for a customer in Berlin. It gives you an overview where complexity is hidden inside software projects and how agile methodologies can help to remedy the situation.
tools they’re familiar and comfortable with • Let teams find and use technologies that fit your use case • e.g. micro services vs. monolithic backend, cloud services vs. own backend infrastructure 9
as transparent as you want the development process to be transparent • Cheer on success and on failure, because you learn from both • Take feedback cycles serious, on several levels • Improve continuously 10
• Much complexity stems from technical debt • Empower teams to rigorously build quality software • Continuous Integration is a must for continuous delivery 11
have… • High quality software, developed in short iterations • Motivated individuals that work in a trustful environment • Working practices of good software craftsmanship • Pragmatism and willingness to fail • Constant feedback loops and continuous improvement 15
flexible (no iterations, no commitment, no enforced roles, no sizing restrictions, …) • Limits WIP to avoid overheating or „jams“ • Ideal for more experienced teams or continuous delivery processes 18
of many best practices like e.g. Pair Programming, TDD, Continuous Integration, Collective Code Ownership, Refactoring, Coding standards, Release early and often
you are doing agile (fluent as in „fluently speaking“), i.e. how fluent your team reacts under pressure • Four levels, each with new benefits, but also new adoption challenges • Find the level for your company that fits your need (and matches the investment you can afford) 22