agileee developers toolkit in the agile world

32
Developers’ Toolkit in the Agile World by Maria Diaconu & Alexandru Bolboaca

Upload: agileee

Post on 10-May-2015

1.032 views

Category:

Technology


1 download

DESCRIPTION

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

TRANSCRIPT

Page 1: Agileee Developers Toolkit In The Agile World

Developers’ Toolkit in the Agile World

by

Maria Diaconu & Alexandru Bolboaca

Page 2: Agileee Developers Toolkit In The Agile World

Code quality & indicators

Page 3: Agileee Developers Toolkit In The Agile World

Bad code? We don’t write bad

code...

Page 4: Agileee Developers Toolkit In The Agile World

...just occasionally

Page 5: Agileee Developers Toolkit In The Agile World

...when under pressure

Page 6: Agileee Developers Toolkit In The Agile World

Ups, we are almost always under pressure

Page 7: Agileee Developers Toolkit In The Agile World

Or

Page 8: Agileee Developers Toolkit In The Agile World

My code is good-enough. Why should I

change it?

Page 9: Agileee Developers Toolkit In The Agile World

About the story tellers

Maria Diaconu

Developer, Technical Lead, Manager Agile/Scrum Practitioner & CoachOwner Mosaic Works

Founder and Coordinator of Romanian Agile community, AgileWorks Romania

Page 10: Agileee Developers Toolkit In The Agile World

About the story tellersAlexandru Bolboaca

Software DeveloperHands-on software consultant@MosaicWorksAspiring software craftsman

Active member of Romanian Agile community, AgileWorks Romania

Page 11: Agileee Developers Toolkit In The Agile World

The fantastic journey of the beginner

craftsman

Page 12: Agileee Developers Toolkit In The Agile World

Programming is fun when you create great

software & write beautiful code

Page 13: Agileee Developers Toolkit In The Agile World

A minimal toolkit on the road

Clean Code

Pair Programming

Emergent DesignTDD

Refactoring

Page 14: Agileee Developers Toolkit In The Agile World

Clean code? What’s that?

Page 15: Agileee Developers Toolkit In The Agile World
Page 16: Agileee Developers Toolkit In The Agile World

Meaningful namesIntention revealing-names

No encodings (e.g. Hungarian notation)

int d; //elapsed time in daysvs

int elapsedTimeInDays

Clean variable names

Page 17: Agileee Developers Toolkit In The Agile World

Small !Do one thing. And it’s DONE well.

Descriptive namesNo sides effects

No duplicated functions

ComputeAndWriteResult()vs

Write(Compute())

Clean functions

Page 18: Agileee Developers Toolkit In The Agile World

Try-Catch-Finally - written firstExpected 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();

Clean code - error handling

Page 19: Agileee Developers Toolkit In The Agile World

23 + 23 + 23 + 23 + ... + 23or

1000 * 23 ?

Improve maintainability& readability

through changes in small steps keeping the external behavior

Refactoring

Page 20: Agileee Developers Toolkit In The Agile World

RefactoringTo write clean code, you must

first write dirty code and then clean it.

by Robert C. Martin

Page 21: Agileee Developers Toolkit In The Agile World

Refactoring - how toE.g. : Extract methods, class

Move methodsReplace conditions with polymorphism

Eliminate duplicate code Extract data structure

Page 22: Agileee Developers Toolkit In The Agile World

The boy scout ruleIt’s not enough to write the code well. The

code has to be kept clean over time.

by Robert C. Martin

Page 23: Agileee Developers Toolkit In The Agile World

Use the toolkit for building software

incrementally

Page 24: Agileee Developers Toolkit In The Agile World

How we learn useful practices?

Page 25: Agileee Developers Toolkit In The Agile World

Software Craftsmanship

Page 26: Agileee Developers Toolkit In The Agile World

Learn & Practice!&

Practice & Learn!

Page 27: Agileee Developers Toolkit In The Agile World

Code KataCode retreatCoding Dojo

Page 28: Agileee Developers Toolkit In The Agile World

Aspiring craftsmen

@AgileWorks -CodeRetreat/Dojo Bucharest - June

Page 29: Agileee Developers Toolkit In The Agile World

Good code reads like a novel.

Page 30: Agileee Developers Toolkit In The Agile World

Good code reads like a novel.

Excellent code reads like haiku.

Page 31: Agileee Developers Toolkit In The Agile World

... and this is not the end of the journey

Page 32: Agileee Developers Toolkit In The Agile World

Thank you!Maria Diaconu & Alexandru Bolboaca

MosaicWorks - [email protected]; twitter: fireladyM

[email protected]; twitter: alexboly

AgileWorks Romania - agileworks.ro