Comp Sci 230 Software Construction Lecture Slides 26

  • Slides: 12
Download presentation
Comp. Sci 230 Software Construction Lecture Slides #26: Agile Methods S 1 2016

Comp. Sci 230 Software Construction Lecture Slides #26: Agile Methods S 1 2016

Agenda � Topics: � The 2 Agile Development philosophy Comp. Sci 230: AG

Agenda � Topics: � The 2 Agile Development philosophy Comp. Sci 230: AG

Agile Philosophy � Waterfall � inflexible, documentation-heavy, isolated stages, fragile � 2001: � has

Agile Philosophy � Waterfall � inflexible, documentation-heavy, isolated stages, fragile � 2001: � has drawbacks Agile Alliance Idea: There’s got to be better ways of developing software � 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. ” 3 Comp. Sci 230: AG

What are agile methods? � Agile Development isn’t a single way of doing things

What are agile methods? � Agile Development isn’t a single way of doing things � Numerous development process models claim the “agile” label, e. g. , � e. Xtreme Programming, Rational Unified Process, Scrum, Open Source, … � Focus 4 on twelve principles Comp. Sci 230: AG

Agile Principles https: //www. agilealliance. org/ 5 Comp. Sci 230: AG

Agile Principles https: //www. agilealliance. org/ 5 Comp. Sci 230: AG

Agile Principles https: //www. agilealliance. org/ 6 Comp. Sci 230: AG

Agile Principles https: //www. agilealliance. org/ 6 Comp. Sci 230: AG

Agile Principles https: //www. agilealliance. org/ 7 Comp. Sci 230: AG

Agile Principles https: //www. agilealliance. org/ 7 Comp. Sci 230: AG

Agile Principles https: //www. agilealliance. org/ 8 Comp. Sci 230: AG

Agile Principles https: //www. agilealliance. org/ 8 Comp. Sci 230: AG

Agile Issues � Sounds � Scope great, but success depends on: of project �

Agile Issues � Sounds � Scope great, but success depends on: of project � Large projects may simply not see their initial working software for a while – this is a problem in particular if the software is something really novel � Amount � If of specification creep requirements change faster than development is able to keep up with… � Communication � Ability to communicate requirements effectively is key � Tends to work better in small teams � Direct communication rather than via intermediary: developers talks directly with customers � Composition, 9 competence, and motivation of team Comp. Sci 230: AG

Agile Issues � Sounds � Scope great, but success depends on: of project �

Agile Issues � Sounds � Scope great, but success depends on: of project � Large projects may simply not see their initial working software for a while – this is a problem in particular if the software is something really novel � Amount � If of specification creep requirements change faster than development is able to keep up with… � Communication � Ability to communicate requirements effectively is key � Tends to work better in small teams � Direct communication rather than via intermediary: developers talks directly with customers � Composition, 10 competence, and motivation of team Comp. Sci 230: AG

Agile Issues � The agile principles are not very prescriptive � Black-box view of

Agile Issues � The agile principles are not very prescriptive � Black-box view of the processes � Don’t tell us how they should be implemented � Note the variety of methods claiming to be agile � Why not come up with your own method in a specific situation? 11 Comp. Sci 230: AG

Review � Is there an ideal way to develop software? � Can you think

Review � Is there an ideal way to develop software? � Can you think of methods that would work better in some scenarios than others? � Is there an ideal way to specify software? � Which � Is methods do you know? Could you come up with others? there an ideal way to design software? � Which design tools and principles do you have at your disposal? Do you understand their advantages and drawbacks? � Is there an ideal way to test software? � Can you describe the various testing philosophies, the challenges that arise from them, and choose an appropriate testing technique in a practical situation? 12 Comp. Sci 230: AG