Agile Software Development Techniques for Daily Use
-
Upload
hristo-iliev -
Category
Software
-
view
100 -
download
1
Transcript of Agile Software Development Techniques for Daily Use
![Page 1: Agile Software Development Techniques for Daily Use](https://reader036.fdocuments.us/reader036/viewer/2022070513/5885fec81a28ab0a3f8b516b/html5/thumbnails/1.jpg)
Agile Software Development Techniques for Daily Use.
What to Do When the Sprint Starts?
![Page 2: Agile Software Development Techniques for Daily Use](https://reader036.fdocuments.us/reader036/viewer/2022070513/5885fec81a28ab0a3f8b516b/html5/thumbnails/2.jpg)
What is TDD?
Write a test that use the methods you haven’t written yet.
![Page 3: Agile Software Development Techniques for Daily Use](https://reader036.fdocuments.us/reader036/viewer/2022070513/5885fec81a28ab0a3f8b516b/html5/thumbnails/3.jpg)
Test Last
• Hard to write tests• Slow to execute tests• No tests during development• Errors leak to production• Bus factor
![Page 4: Agile Software Development Techniques for Daily Use](https://reader036.fdocuments.us/reader036/viewer/2022070513/5885fec81a28ab0a3f8b516b/html5/thumbnails/4.jpg)
Test First / TDD
• Code testability for free• Fast test execution• Controlled development process• No regression• Executable Documentation
![Page 5: Agile Software Development Techniques for Daily Use](https://reader036.fdocuments.us/reader036/viewer/2022070513/5885fec81a28ab0a3f8b516b/html5/thumbnails/5.jpg)
Intent
![Page 6: Agile Software Development Techniques for Daily Use](https://reader036.fdocuments.us/reader036/viewer/2022070513/5885fec81a28ab0a3f8b516b/html5/thumbnails/6.jpg)
Cost of development
Time
Cost
Traditional
TDD
![Page 7: Agile Software Development Techniques for Daily Use](https://reader036.fdocuments.us/reader036/viewer/2022070513/5885fec81a28ab0a3f8b516b/html5/thumbnails/7.jpg)
Your turn …
• What to do?– develop SET
• How?– Java– TDD with JUnit–Methods: size, add, contains, remove– Storage: fixed size array
![Page 8: Agile Software Development Techniques for Daily Use](https://reader036.fdocuments.us/reader036/viewer/2022070513/5885fec81a28ab0a3f8b516b/html5/thumbnails/8.jpg)
Example
![Page 9: Agile Software Development Techniques for Daily Use](https://reader036.fdocuments.us/reader036/viewer/2022070513/5885fec81a28ab0a3f8b516b/html5/thumbnails/9.jpg)
Your turn …
• What to do?– develop SET
• What’s left?– size– contains– add– remove
![Page 10: Agile Software Development Techniques for Daily Use](https://reader036.fdocuments.us/reader036/viewer/2022070513/5885fec81a28ab0a3f8b516b/html5/thumbnails/10.jpg)
TDD = Safety net
![Page 11: Agile Software Development Techniques for Daily Use](https://reader036.fdocuments.us/reader036/viewer/2022070513/5885fec81a28ab0a3f8b516b/html5/thumbnails/11.jpg)
Legacy Code
Code without tests
![Page 12: Agile Software Development Techniques for Daily Use](https://reader036.fdocuments.us/reader036/viewer/2022070513/5885fec81a28ab0a3f8b516b/html5/thumbnails/12.jpg)
Working with Legacy Code
• Make code testable• Capture behaviour• Refactor• Add features using TDD
![Page 13: Agile Software Development Techniques for Daily Use](https://reader036.fdocuments.us/reader036/viewer/2022070513/5885fec81a28ab0a3f8b516b/html5/thumbnails/13.jpg)
Example
![Page 14: Agile Software Development Techniques for Daily Use](https://reader036.fdocuments.us/reader036/viewer/2022070513/5885fec81a28ab0a3f8b516b/html5/thumbnails/14.jpg)
Your turn … 1/2
• What to do?–Write a test
• How?– Understand the code–Write a test• Minimal code change• No bug fixes
![Page 15: Agile Software Development Techniques for Daily Use](https://reader036.fdocuments.us/reader036/viewer/2022070513/5885fec81a28ab0a3f8b516b/html5/thumbnails/15.jpg)
Your turn … 2/2
• What to do?– Scrap item• In stock items only• Number of scrapped
• How?– TDD– Refactoring– Bugs
![Page 16: Agile Software Development Techniques for Daily Use](https://reader036.fdocuments.us/reader036/viewer/2022070513/5885fec81a28ab0a3f8b516b/html5/thumbnails/16.jpg)
Our solution
https://github.com/gsabev/ista2014
![Page 17: Agile Software Development Techniques for Daily Use](https://reader036.fdocuments.us/reader036/viewer/2022070513/5885fec81a28ab0a3f8b516b/html5/thumbnails/17.jpg)
Literature