From Snake-Oil and Silver-Bullets to Agile-Incremental-Iterative-Pattern-oriented*
-
Upload
emma-levine -
Category
Documents
-
view
18 -
download
0
description
Transcript of From Snake-Oil and Silver-Bullets to Agile-Incremental-Iterative-Pattern-oriented*
![Page 1: From Snake-Oil and Silver-Bullets to Agile-Incremental-Iterative-Pattern-oriented*](https://reader036.fdocuments.in/reader036/viewer/2022071807/56812e85550346895d94275f/html5/thumbnails/1.jpg)
From Snake-Oil and Silver-BulletstoAgile-Incremental-Iterative-Pattern-oriented*
* sing to the tune of "Mary Poppins"
Peter Sommerlad, Programmer, Prof, IFS, HSR
![Page 2: From Snake-Oil and Silver-Bullets to Agile-Incremental-Iterative-Pattern-oriented*](https://reader036.fdocuments.in/reader036/viewer/2022071807/56812e85550346895d94275f/html5/thumbnails/2.jpg)
IFS: Bessere Software - Einfach, Schneller 2
Snake-Oil and Silver Bullets
•Acronym Jungleo CASE, OOP, CMM, SGML
more modern:
o XML, EJB, .NET, UML, MDA
•Technology Overloado C++o Corbao Javao C#o VB
We want a "cure all".
And kill all problems
![Page 3: From Snake-Oil and Silver-Bullets to Agile-Incremental-Iterative-Pattern-oriented*](https://reader036.fdocuments.in/reader036/viewer/2022071807/56812e85550346895d94275f/html5/thumbnails/3.jpg)
COMPLEXITYComplexity is one of the biggest problems with software. It is much easier to create a complicated "solution" than to really solve a problem.
![Page 4: From Snake-Oil and Silver-Bullets to Agile-Incremental-Iterative-Pattern-oriented*](https://reader036.fdocuments.in/reader036/viewer/2022071807/56812e85550346895d94275f/html5/thumbnails/4.jpg)
IFS: Bessere Software - Einfach, Schneller 4
Reasons for Complexity
•Young Gunso"Hey, I learned so many
complicated things during my time at HSR, I want to use it now!"
oCoolness is important!oComplex stuff is cool!oOver-Engineering
•Amateur Programmerso"I don't know how it works,
but I made it run."oProgramming by CoincidenceoNo idea of AbstractionoCopy-Paste ReuseoUnder-Engineering
•Mediao"There is this brand new
stuff called XYZ, we tell you how to achieve productivity increasement with it"
osells only "newest" stuff
•Consultantso"We must use XYZ for your
problem" ... thinking "because it gives us more billable hours"
•Resume-oriented Developer
o"I'll use this cool new stuff, because it looks good on my resume"
![Page 5: From Snake-Oil and Silver-Bullets to Agile-Incremental-Iterative-Pattern-oriented*](https://reader036.fdocuments.in/reader036/viewer/2022071807/56812e85550346895d94275f/html5/thumbnails/5.jpg)
SIMPLICITYWe need to value Simplicity much higher. Our software needs to be simpler to solve more complex problems.
![Page 6: From Snake-Oil and Silver-Bullets to Agile-Incremental-Iterative-Pattern-oriented*](https://reader036.fdocuments.in/reader036/viewer/2022071807/56812e85550346895d94275f/html5/thumbnails/6.jpg)
IFS: Bessere Software - Einfach, Schneller 6
How and why?
• Reduce your code size to 10%1
o Manageabilityo Extendabilityo Maintainabilityo Qualityo Testabilityo ...ility
1. NOT: "by 10%"!
![Page 7: From Snake-Oil and Silver-Bullets to Agile-Incremental-Iterative-Pattern-oriented*](https://reader036.fdocuments.in/reader036/viewer/2022071807/56812e85550346895d94275f/html5/thumbnails/7.jpg)
IFS: Bessere Software - Einfach, Schneller 7
Curing unnecessary Complexity?
•How to simplify Software?o Abstractiono Refactoringo Generatorso Data-Driven Development
•What do I need? (Excerpt)o Unit-Testingo Build- and Test-Automationo Iterative-Incremental Development
with (very) short iterations
o Courage to Simplify, Reflect and Refactor
![Page 8: From Snake-Oil and Silver-Bullets to Agile-Incremental-Iterative-Pattern-oriented*](https://reader036.fdocuments.in/reader036/viewer/2022071807/56812e85550346895d94275f/html5/thumbnails/8.jpg)
IFS: Bessere Software - Einfach, Schneller 8
Do we need it?tick for yes (blatantly adapted from "The Joel Test")
1.We use Version Control.2.We have a 1-Step Build
Process.3.We have a dedicated
Continuous-Build Machine running.
4.We have a Collaboration tool/Wiki.
5.We fix Bugs before we implement new features.
6.We write Automated Tests before we code or fix bugs.
7.We have defined short Iterations and our schedule is up-to-date
8.We Design and Specify succinctly what we want to test and develop
9.We Program in Pairs10.We have Testers in
addition to full Test Automation.
11.We hire only candidates that demonstrate their programming ability.
12.We have (hallway) Usability Testing.