This is a course homepage for **Agile Software Development**. ====== Announcement ====== * Students taking this course must join [[http://groups.google.com/group/ku-ske-agile-52|the course google group]] to get announcements and to participate in discussions. ====== Objectives ====== * To learn the practices and the principles of agile software development, and to appreciate its values. * To gain experience applying agile practices to real projects. ====== Schedule ====== Every lecture (except the first one) starts with feedback & discussion. ===== Week 1 (11/6) ===== * Discussions. * Basic concepts: changes, debt, values, principles, and practices. -- [[http://garnet.cpe.ku.ac.th/~jtf/agile-52/01a-intro.odp|slides-odp]] [[http://garnet.cpe.ku.ac.th/~jtf/agile-52/01a-intro.pdf|slides-pdf]] * Super quick intro. to various agile practices. -- [[http://garnet.cpe.ku.ac.th/~jtf/agile-52/01b-practices-quick.odp|slides-odp]] [[http://garnet.cpe.ku.ac.th/~jtf/agile-52/01b-practices-quick.pdf|slides-pdf]] * Discussion on projects. Team formation. Appointment hours. * (maybe outside class) Set up source version control system. **Links:** * [[http://agilemanifesto.org/|Agile Manifesto]] * Martin Fowler: [[http://martinfowler.com/bliki/TechnicalDebt.html|Technical Debt]], [[http://martinfowler.com/bliki/TechnicalDebtQuadrant.html|Technical Debt Quadrant]] ===== Week 2 (11/13) ===== * Concept: Values, principles, and practices. * Scrum. * Technical practices: managing codebase * Discussion on development environment. (By appointment) * Trying to improve the environment. (If possible) ===== Week 3 (11/20) ===== * More on scrum. * Technical practices: refactoring. * User stories. ===== Week 4 (11/27) ===== * How to maintain your code base. * Technical practice: unit testing, TDD. * 12/4: class cancelled. (//activities outside class.//) ===== Week 5 ===== * 12/9. Agile Estimating and Planing * Many useful slides at [[http://www.mountaingoatsoftware.com/presentations|Mountain Goat Software]] * 12/11. Practice: unit testing, TDD (again) ===== Week 6 ===== * 12/16. Intro to Retrospective (also include the course retrospective) * [[http://agileretrospectivewiki.org/index.php?title=Main_Page|Agile Retrospective Resource Wiki]] * [[http://xp123.com/xplor/xp0012b/index.shtml|XP Radar]] * 12/18. Some Theory * See [[http://alistair.cockburn.us/Talks|Alistair Cockburn's Talk]] ===== Future classes ===== * Intro. to retrospective. * Planning and Estimation (1). * **Week 6 (12/18)** * Early deployment + discussions. * Planning and Estimation (2). * Midterm week (12/25), New year holiday (1/1). (//activities outside class.//) * Set up deployment environment so that each group can have short deployment cycle for its project.