h(p://home.hit.no/~hansha/?page=so6ware_development Agile So6ware Development S. Adams. Dilbert. Available: h(p://dilbert.com Hans- Pe(er Halvorsen, M.Sc. 1
Agile? I ll go up and find out what they need and the rest of you start coding!
3
Typical Job Ad Agile methods have become very popular these days!! 4
The Development Process The Development Process involves different phases, e.g.: The Requirements may be given by the Customer Requirements In this case the overall Requirements are given by the Teacher in the Assignment. The details are wri(en by you! Are the Design wrong? Go back and correct it! Design ImplementaKon The Design phase is important, but make sure you have Kme le6 for all the other tasks as well) TesKng Errors? Improve your code and fix the bugs Make sure everything work as expected When you are finished, you deploy and test the solukon on the Customer Site Deployment & Maintenance 5
Agile methods Scrum XP (extreme Programming) Lean So6ware Development Feature Driven Development (FDD) Test Driven Development (TDD) etc. 6
So6ware Development Methods TradiKonal Plan- driven Methods Agile Methods Waterfall Method extreme Programming (XP) Scrum V- Model Feature Driven Development (FDD) Spiral model Lean So6ware Development Test Driven Development (TDD) Even if we use different so6ware development methods, we deal with the same phases like Requirements, Design, Coding, TesKng and Deployment but they may have different priority and may be done in different manners and order, etc. 7
Teams and Roles Customer/Stakeholders Project Manager So6ware Architect UX Designer Developer Tester etc. So6ware Architect Project Manager Customer/Stakeholders Collabora:on! So6ware Tester UX Designer Programmer 8
Plan-based development Plan- driven vs. Agile Requirements engineering Requirements specification Design and implementation Requirements change requests Agile development Requirements engineering Design and implementation I. Sommerville, So*ware Engineering: Pearson, 2010. 9
Agile vs. TradiKonal Development Wikipedia. (2013). Agile So*ware Development. Available: h(p://en.wikipedia.org/wiki/agile_so6ware_development 10
Agile vs. TradiKonal EssenKals of So6ware Engineering, Frank Tsui; Orlando Karam; Barbara Bernal, 3 ed., Jones & Bartle( Learning. 11
Agile So6ware Development O. Widder. (2013). geek&poke. Available: h(p://geek- and- poke.com 12
Manifesto for Agile So6ware Development O. Widder. (2013). geek&poke. Available: h(p://geek- and- poke.com We are uncovering be(er ways of developing so6ware by doing it and helping others do it. Through this work we have come to value: Individuals and interackons over processes and tools Working so6ware over comprehensive documentakon Customer collaborakon over contract negokakon 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 le6 more. Agile Alliance. (2013). Agile Manifesto. Available: h(p://agilemanifesto.org 13
Wikipedia. (2013). Agile So*ware Development. Available: h(p://en.wikipedia.org/wiki/agile_so6ware_development 14
Agile Development O. Widder. (2013). geek&poke. Available: h(p://geek- and- poke.com 15
Agile A group of so6ware development methods IteraKve approach Incremental: So6ware available to Customers every 2-4 weeks Self- organizing and cross- funckonal Teams Refactoring Examples: Scrum extreme Programming (XP) 16
O. Widder. (2013). geek&poke. Available: h(p://geek- and- poke.com 17
Burn Down Chart A burn down chart is a graphical representakon of work le6 to do versus Kme. The outstanding work (or backlog) is o6en on the verkcal axis, with Kme along the horizontal. That is, it is a run chart of outstanding work. It is useful for predickng when all of the work will be completed. It is o6en used in agile so6ware development methodologies such as Scrum. However, burn down charts can be applied to any project containing measurable progress over Kme. 18
Code Review & Refactoring O. Widder. (2013). geek&poke. Available: h(p://geek- and- poke.com 19
h(p://home.hit.no/~hansha/?page=so6ware_development extreme Programming Hans- Pe(er Halvorsen, M.Sc. O. Widder. (2013). geek&poke. Available: h(p://geek- and- poke.com 20
exreme Programming (XP) 21
extreme Programming (XP) 22
exreme Programming (XP) An Agile method Pair Programming Code Reviews Refactoring Unit TesKng Standup MeeKngs 23
Exercise Pair Programming Work together 2 and 2 and test out Pair Programming Pros and Cons? Make a list
Pair Programming O. Widder. (2013). geek&poke. Available: h(p://geek- and- poke.com Is Pair Programming Good or Bad? Various Studies of the ProducKvity of Pair Programming Study 1: Comparable with that of 2 developers work independtly Study 2: A significant loss in produckvity compared with 2 developers wprking alone Should the 2 developers have the same skills or not? Newerless, there are benefits: CollecKve Ownership ConKnuous informal Review process because each codeline is looked at by at least 2 people It supports Refactoring, which is a proces of so6ware improvement Less Kme is spent on repairing bugs. Improved Code Quality It reduced the overall risks I. Sommerville, So*ware Engineering: Pearson, 2010. 25
26
Refactoring 27
28
Scrum Hans- Pe(er Halvorsen, M.Sc. 29
Scrum Daily Scrum MeeKngs Sprint Sprint Review Product Owner Sprint Backlog Product Backlog Stakeholders Scrum Master Development Team 3-9 persons
Scrum Daily Scrum MeeKngs Sprint Review 31
Scrum A Framework for So6ware Development Agile So6ware Development method Simple to understand Flexible Exremely difficult to master! Self- organizing Teams (3-9 persons) Scrum Team: Product Owner Scrum Master Development Team 32
Lean So6ware Development Hans- Pe(er Halvorsen, M.Sc. 33
Lean So6ware Development Based on the Toyota ProducKon System and Lean manufacuring 34
Summary You should always Refactor your Code even if you don t do Agile! Pair Programming could be useful in some situakons Scrum is probably the most popular Agile method Agile means less documentakon Agile is more flexible than tradikonal methods (like the waterfall) 35
References I. Sommerville, So*ware Engineering: Pearson, 2010. E. J. Braude and M. E.Bernstein, So*ware Engineering. Modern Approaches, 2 ed.: Wiley, 2011. Wikipedia. (2013). Scrum Development. Available: h(p://en.wikipedia.org/wiki/scrum_(development) Wikipedia. (2013). Agile So*ware Development. Available: h(p://en.wikipedia.org/wiki/agile_so6ware_development CoreTrek. (2013). Scrum i et nø@eskall. Available: h(p://www.coretrek.no/scrum- i- et- noe(eskall/category642.html S. Adams. Dilbert. Available: h(p://dilbert.com O. Widder. (2013). geek&poke. Available: h(p://geek- and- poke.com Agile Alliance. (2013). Agile Manifesto. Available: h(p://agilemanifesto.org EssenKals of So6ware Engineering, Frank Tsui; Orlando Karam; Barbara Bernal, 3 ed., Jones & Bartle( Learning. 36
Hans- PeMer Halvorsen, M.Sc. Telemark University College Faculty of Technology Department of Electrical Engineering, Informa:on Technology and Cyberne:cs E- mail: hans.p.halvorsen@hit.no Blog: hmp://home.hit.no/~hansha/ 37