CPSC 310 – Software Engineering Lecture 3 Agile Methods
About Last Lecture Clarification on process selection: ● People (so developer) are reluctant to change. ● Introducing a new process into a company is expensive and time consuming. ● Finally it's all about context
Where It All “Began” Agile Man anifesto to (2001) http://agilemanifesto.org/ 3
Individuals and in interactions over processes and tools 4
Working software over comprehensive documentation 5
Customer coll llaboratio ion over contract negotiation 6
Respondin ing to change over following a plan 7
Class Activity: Agile Methods Advantages ? Disadvantages ? 8
Agile Software Development Advantages ● Lower risk ● Close customer involvement ● Better visibility ● Compliant with changes 9
Agile Software Development Disadvantages ● Harder to enforce with inexperienced programmers ● Close customer involvement (again!) ● Hard to estimate completion schedule ● Increases the risk of feature creep ● Can be inefficient 10
The Agile Landscape More Prescriptive More Adaptive SCRUM KANBAN NONE RUP XP (120+) (13) (9) (3) (0) 11
Do not develop an attachment to any one weapon or any one school of fighting. Miyamoto Musashi 17th century Samurai 12
Extreme programming (XP) Whole Team Collective Coding Kent Beck Ownership Standard TDD mid 90s Pair Customer Planning Refactoring Programming Tests Game Simple Design Continuous Sustainable Integration Pace Metaphor Small Releases 13 http://www.extremeprogramming.org/rules.html
T est-Driven Development (TDD) ● T est cases are written first – Cover new functionality or improvement ● Then the necessary function is implemented ● Code is “complete” when all tests pass ● Refactor before adding feature if design could be better 14
Class Activity: TDD Advantages ? Disadvantages ? 15
Next Lecture We will talk about SCRUM Please watch this video (one or many times) before next time to familiarize yourself with the terminology: http://youtu.be/XU0llRltyFM 16
Recommend
More recommend