Agile methodology has taken the software development industry by storm. Everyone wants to be agile, but what does it really mean and how do you achieve agile development? This computer science course cuts beyond the agile methodology hype and teaches you the fundamental agile concepts that span a wide range of methodologies. It analyzes the key agile ideas, their benefits, their limitations, and how best to take advantage of them to enhance your software skills and show employers that you have mastered an essential component of today's IT industry. The course is divided into six parts: The Agile manifesto and the context of agile methods Agile principles: what key methodological ideas underlie the agile movement? Agile roles: how does agile redefine traditional software jobs and tasks, in particular the manager's role? Agile practices: what are the concrete techniques that agile teams use to apply these methods? Agile artifacts: what practical tools are essential to the work of agile developers? Agile assessment: among agile ideas, which ones are essentially hyped and useless, which ones are actually harmful, and which ones will truly help you effectively produce high-quality software? Unlike many presentations of agile methods, this course takes a strictly objective view of agile methods, enabling you to retain the best agile principles and practices. By analyzing agile methods in depth and showing you how to benefit from them, it will make you a better developer, equipped to deal with the challenges of ambitious software projects.