Presentation about agile methodologies, their principles, motivations and impacts in real world. Concepts and principles of Extreme Programming, Lean, Kanban and Scrum are outlined here.
continuous delivery of software with aggregated value • Change in requirements are always welcome, even if late • Frequently deliver working software, from a few weeks to a few months, preferring shorter intervals • Business and development people should work together • Build software around motivated individuals and trust them to do their job • The best way to transmit information to and across the development team is face to face communication
of progress • Sustainable development yields a constant and indefinite pace • Continuous attention to technical excellence and good design increases agility • Simplicity – the art of maximizing the amount of work not done – is essential • Teams are self-organized • Regularly the team meets to evaluate improvements, decides how to become more efficient and refine its behavior
• Commit to more than what is feasible to complete • Delay in the software development process • Unclear or dynamic requirements • Bureaucracy • Slow or not effective communication • Work partially done • Defects and quality issues • Task switching
behavior and document the code • Tests give security to perform modifications • Integrate components early and frequently • Do not tolerate defects, fix them as quickly as possible • Create knowledge • Knowledge brief • Wiki • Code reviews • Documentation • Diagrams
• Account for flexibility in the design • Deliver quickly • Focus on the workflow efficiency, not resources efficiency • Avoid the “this is not my job” • Simplicity is key • “How long does it take to release to the market 1 extra line of code?”
challenges • Support the team • Optimize the whole • Know what the purpose of your product is • Avoid making decisions that optimize specific modules • Think in the long term