Presentation is loading. Please wait.

Presentation is loading. Please wait.

Pertemuan 5 Introduction to Agile Software Development Mata kuliah: T0144 – Advanced Topics in Software Engineering Tahun: 2010.

Similar presentations


Presentation on theme: "Pertemuan 5 Introduction to Agile Software Development Mata kuliah: T0144 – Advanced Topics in Software Engineering Tahun: 2010."— Presentation transcript:

1

2 Pertemuan 5 Introduction to Agile Software Development Mata kuliah: T0144 – Advanced Topics in Software Engineering Tahun: 2010

3 3 Learning Outcomes Pada akhir pertemuan ini, diharapkan: Mahasiswa dapat menjelaskan prinsip dasar Agile Methodology serta perbedaannya dengan methodology tradisional

4 4 Outline Material Agile Software Development –Agile Methods Extreme Programming SCRUM Feature Driven Development –Agile Practices Test Driven Development Continuous Integration Pair Programming

5 Agile Software Development Agile Manifesto : We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value: –Individuals and interactions over processes and tools –Working software over comprehensive documentation –Customer collaboration over contract negotiation –Responding to change over following a plan That is, while there is value in the items on the right, we value the items on the left more.

6 Agile Methods Some of the well-known agile software development methods: Agile Modeling Agile Unified Process (AUP) Agile Data Method DSDM Essential Unified Process (EssUP) Extreme programming (XP) Feature Driven Development (FDD) Getting Real Open Unified Process (OpenUP) Scrum Lean software development

7 Extreme Programming (XP)

8 Extreme Programming (XP) cycles

9 SCRUM

10 Feature Driven Development

11 Agile Practices Test Driven Development (TDD) Behavior Driven Development (BDD) Continuous Integration Pair Programming Planning poker RITE Method

12 Test Driven Development

13 Test Driven Development (2)

14 Continuous Integration When embarking on a change, a developer takes a copy of the current code base on which to work. As changed code is submitted to the repository by other developers, this copy gradually ceases to reflect the repository code. When the developer submits code to the repository they must first update their code to reflect the changes in the repository since they took their copy. The more changes there are to the repository, the more work the developer must do before submitting their own changes. Eventually, the repository may become so different from the developer's baseline that they enter what is sometimes called "integration hell",[1] where the time it takes to integrate is greater than the time it took to make their original changes. In a worst case scenario, the changes the developer is making may have to be discarded and the work redone.

15 CI Recommended Practices Maintain a code repository Automate the build Make the build self-testing Everyone commits every day Every commit (to mainline) should be built Keep the build fast Test in a clone of the production environment Make it easy to get the latest deliverables Everyone can see the results of the latest build Automate deployment

16 Pair Programming Pair programming is a method of programming in which two people work together at one keyboard. One person, "the driver", types at the keyboard. The other person, "the observer" (or "navigator") reviews each line of code as it is typed, checking for errors and thinking about the overall design

17 Pair Programming (cont’d) Expected Benefits: –better code (simpler design, fewer bugs, more maintainable) –higher morale (more fun!) –shared knowledge throughout your team (both specific knowledge of your codebase and general programming knowledge) –better time management –higher productivity. Pair configuration –Novice+Expert –Novice+Novice –Expert+Expert

18 Discussion

19 19 References Agile Software Development -Alistair Cockburn Addison-Wesley - ISBN-10: 0201699699 Agile Manifesto http://en.wikipedia.org/wiki/Agile_Manifesto http://en.wikipedia.org/wiki/Agile_Manifesto Agile Processes –Extreme Programming http://www.extremeprogramming.org/ http://www.extremeprogramming.org/ –SCRUM http://www.scrumalliance.org/articles/151-scrum-in-a-nutshell http://www.scrumalliance.org/articles/151-scrum-in-a-nutshell –Feature Driven Development http://www.featuredrivendevelopment.com/ http://www.featuredrivendevelopment.com/ Agile Practices –Test Driven Development http://c2.com/cgi/wiki?TestDrivenDevelopment http://c2.com/cgi/wiki?TestDrivenDevelopment –Continuous Integration http://en.wikipedia.org/wiki/Continuous_Integration http://en.wikipedia.org/wiki/Continuous_Integration –Pair Programming http://c2.com/xp/PairProgramming.html http://c2.com/xp/PairProgramming.html


Download ppt "Pertemuan 5 Introduction to Agile Software Development Mata kuliah: T0144 – Advanced Topics in Software Engineering Tahun: 2010."

Similar presentations


Ads by Google