Your SlideShare is downloading. ×
Agileee Developers Toolkit In The Agile World
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Saving this for later?

Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime - even offline.

Text the download link to your phone

Standard text messaging rates apply

Agileee Developers Toolkit In The Agile World

998
views

Published on

Slides from Maria Diaconu and Alexandru Balboaca talking at Agileee conference 2009, Ukraine

Slides from Maria Diaconu and Alexandru Balboaca talking at Agileee conference 2009, Ukraine

Published in: Technology, Travel

0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
998
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
21
Comments
0
Likes
2
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Developers’ Toolkit in the Agile World by Maria Diaconu & Alexandru Bolboaca
  • 2. Code quality & indicators
  • 3. Bad code? We don’t write bad code...
  • 4. ...just occasionally
  • 5. ...when under pressure
  • 6. Ups, we are almost always under pressure
  • 7. Or
  • 8. My code is good- enough. Why should I change it?
  • 9. About the story tellers Maria Diaconu Developer, Technical Lead, Manager Agile/Scrum Practitioner & Coach Owner Mosaic Works Founder and Coordinator of Romanian Agile community, AgileWorks Romania
  • 10. About the story tellers Alexandru Bolboaca Soft ware Developer Hands-on soft ware consultant@MosaicWorks Aspiring soft ware craftsman Active member of Romanian Agile community, AgileWorks Romania
  • 11. The fantastic journey of the beginner craftsman
  • 12. Programming is fun when you create great soft ware & write beautiful code
  • 13. A minimal toolkit on the road Refactoring TDD Clean Code Emergent Design Pair Programming
  • 14. Clean code? What’s that?
  • 15. Clean variable names Meaningful names Intention revealing-names No encodings (e.g. Hungarian notation) int d; //elapsed time in days vs int elapsedTimeInDays
  • 16. Clean functions Small ! Do one thing. And it’s DONE well. Descriptive names No sides effects No duplicated functions ComputeAndWriteResult() vs Write(Compute())
  • 17. Clean code - error handling Try-Catch-Finally - written first Expected behavior covered first, exceptions treated after Don’t return Null; Don’t Pass Null try { MealExpenses expenses = expenseReportDAO.getMeals(employee.getID()); m_total += expenses.getTotal(); } catch(MealExpensesNotFound e) { m_total += getMealPerDiem(); } vs MealExpenses expenses = expenseReportDAO.getMeals(employee.getID()); m_total += expenses.getTotal();
  • 18. Refactoring 23 + 23 + 23 + 23 + ... + 23 or 1000 * 23 ? Improve maintainability & readability through changes in small steps keeping the external behavior
  • 19. Refactoring To write clean code, you must first write dirty code and then clean it. by Robert C. Martin
  • 20. Refactoring - how to E.g. : Extract methods, class Move methods Replace conditions with polymorphism Eliminate duplicate code Extract data structure
  • 21. The boy scout rule It’s not enough to write the code well. The code has to be kept clean over time. by Robert C. Martin
  • 22. Use the toolkit for building soft ware incrementally
  • 23. How we learn useful practices?
  • 24. Soft ware Craftsmanship
  • 25. Learn & Practice! & Practice & Learn!
  • 26. Code Kata Code retreat Coding Dojo
  • 27. Aspiring craftsmen @AgileWorks -CodeRetreat/Dojo Bucharest - June
  • 28. Good code reads like a novel.
  • 29. Good code reads like a novel. Excellent code reads like haiku.
  • 30. ... and this is not the end of the journey
  • 31. Thank you! Maria Diaconu & Alexandru Bolboaca MosaicWorks - www.mozaicworks.com mddiaconu@gmail.com; t witter: fireladyM www.alexbolboaca.ro alexboly@gmail.com; t witter: alexboly AgileWorks Romania - agileworks.ro