Your SlideShare is downloading. ×
infoShare 2014: Gino Marckx, Forget about Agile, let's write great code first!
infoShare 2014: Gino Marckx, Forget about Agile, let's write great code first!
infoShare 2014: Gino Marckx, Forget about Agile, let's write great code first!
infoShare 2014: Gino Marckx, Forget about Agile, let's write great code first!
infoShare 2014: Gino Marckx, Forget about Agile, let's write great code first!
infoShare 2014: Gino Marckx, Forget about Agile, let's write great code first!
infoShare 2014: Gino Marckx, Forget about Agile, let's write great code first!
infoShare 2014: Gino Marckx, Forget about Agile, let's write great code first!
infoShare 2014: Gino Marckx, Forget about Agile, let's write great code first!
infoShare 2014: Gino Marckx, Forget about Agile, let's write great code first!
infoShare 2014: Gino Marckx, Forget about Agile, let's write great code first!
infoShare 2014: Gino Marckx, Forget about Agile, let's write great code first!
infoShare 2014: Gino Marckx, Forget about Agile, let's write great code first!
infoShare 2014: Gino Marckx, Forget about Agile, let's write great code first!
infoShare 2014: Gino Marckx, Forget about Agile, let's write great code first!
infoShare 2014: Gino Marckx, Forget about Agile, let's write great code first!
infoShare 2014: Gino Marckx, Forget about Agile, let's write great code first!
infoShare 2014: Gino Marckx, Forget about Agile, let's write great code first!
infoShare 2014: Gino Marckx, Forget about Agile, let's write great code first!
infoShare 2014: Gino Marckx, Forget about Agile, let's write great code first!
infoShare 2014: Gino Marckx, Forget about Agile, let's write great code first!
infoShare 2014: Gino Marckx, Forget about Agile, let's write great code first!
infoShare 2014: Gino Marckx, Forget about Agile, let's write great code first!
infoShare 2014: Gino Marckx, Forget about Agile, let's write great code first!
infoShare 2014: Gino Marckx, Forget about Agile, let's write great code first!
infoShare 2014: Gino Marckx, Forget about Agile, let's write great code first!
infoShare 2014: Gino Marckx, Forget about Agile, let's write great code first!
infoShare 2014: Gino Marckx, Forget about Agile, let's write great code first!
infoShare 2014: Gino Marckx, Forget about Agile, let's write great code first!
infoShare 2014: Gino Marckx, Forget about Agile, let's write great code first!
infoShare 2014: Gino Marckx, Forget about Agile, let's write great code first!
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

infoShare 2014: Gino Marckx, Forget about Agile, let's write great code first!

155

Published on

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

  • Be the first to like this

No Downloads
Views
Total Views
155
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
1
Comments
0
Likes
0
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. Forget about Agile …Let’s write great code first Gino Marckx
  • 2. We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value That is, while there is value in the items on the right, we value items on the left more. Kent Beck - Mike Beedle - Arie van Bennekum - Alistair Cockburn - Ward Cunningham - Martin Fowler - James Grenning - Jim Highsmith Andrew Hunt - Ron Jeffries - John Kern - Brian Marick - Robert C. Martin - Steve Mellor - Ken Schwaber - Jeff Sutherland - Dave Thomas ignore ©2001, the above authors - this declaration may be freely copied in any form, but only in its entirety through this notice. INDIVIDUALS and INTERACTIONS
 over PROCESSES and TOOLS WORKING SOFTWARE
 over COMPREHENSIVE DOCUMENTATION RESPONDING to CHANGE
 over FOLLOWING a PLAN CUSTOMER COLLABORATION
 over CONTRACT NEGOTIATION
  • 3. INDIVIDUALS and INTERACTIONS
 over PROCESSES and TOOLS WORKING SOFTWARE
 over COMPREHENSIVE DOCUMENTATION RESPONDING to CHANGE
 over FOLLOWING a PLAN CUSTOMER COLLABORATION
 over CONTRACT NEGOTIATION
  • 4. Building it Right
  • 5. CRAFTSMANSHIP
 over CRAP cahbn Chris Hedgate - https://www.flickr.com/photos/chrishedgate/3047997427
  • 6. Quality ! Maintainable/ Extensible
  • 7. Working as a team Building the right thing
  • 8. Collective Code Ownership Working as a team
  • 9. public class Person { public String m_name; public String m_street; public String m_zip; public String m_city; public String m_province; public String m_country; public Person(String name, String country) { ... } public Person(String name, String town, String country) { ... } public Person(String name, String s, String z, String c, String p, String country) { ... } 
 public void add(Person person) { ... } public final List getFriends() { ... } public double between(Person person) { ... } public Person closestFriend() { ... } } Working as a team
  • 10. public class Person { public String m_name; public String m_street; public String m_zip; public String m_city; public String m_province; public String m_country; public Person(String name, String country) { ... } public Person(String name, String town, String country) { ... } public Person(String name, String s, String z, String c, String p, String country) { ... } 
 public void add(Person person) { ... } public final List getFriends() { ... } public double between(Person person) { ... } public Person closestFriend() { ... } } Working as a team
  • 11. public class Person { public String m_name; public String m_street; public String m_zip; public String m_city; public String m_province; public String m_country; public Person(String name, String country) { ... } public Person(String name, String town, String country) { ... } public Person(String name, String s, String z, String c, String p, String country) { ... } 
 public void add(Person person) { ... } public final List getFriends() { ... } public double between(Person person) { ... } public Person closestFriend() { ... } } Working as a team
  • 12. public class Person { public String m_name; public String m_street; public String m_zip; public String m_city; public String m_province; public String m_country; public Person(String name, String country) { ... } public Person(String name, String town, String country) { ... } public Person(String name, String s, String z, String c, String p, String country) { ... } 
 public void add(Person person) { ... } public final List getFriends() { ... } public double between(Person person) { ... } public Person closestFriend() { ... } } Working as a team
  • 13. The Wallaroo Prints © 2011
  • 14. public class Person { public String name; public Address address; public Person(String name, Address address) { ... } public void addFriend(Person person) { ... } public List<Person> getFriends() { ... } /** * Find the friend who lives closest. * * @return the friend who lives closest * @throws NoSuchElementException in case this person has no friends */ public Person getNearestFriend() { ... } } Working as a team
  • 15. public class Person { public String name; public Address address; public Person(String name, Address address) { ... } public void addFriend(Person person) { ... } public List<Person> getFriends() { ... } /** * Find the friend who lives closest. * * @return the friend who lives closest * @throws NoSuchElementException in case this person has no friends */ public Person getNearestFriend() { ... } } Working as a team
  • 16. public class Person { public String name; public Address address; public Person(String name, Address address) { ... } public void addFriend(Person person) { ... } public List<Person> getFriends() { ... } /** * Find the friend who lives closest. * * @return the friend who lives closest * @throws NoSuchElementException in case this person has no friends */ public Person getNearestFriend() { ... } } Working as a team
  • 17. Building the right thing Test Automation
  • 18. public class Address { public Address(String country) { ... } public Address(String city, String country) { ... } public Address(String street, String zipCode, String city, String state, String country) { ... } public String getStreet() { ... } public String getZip() { ... } public String getCity() { ... } public String getState() { ... } public String getCountry() { ... } ! public Point getGeographicalLocation() { ... } ! /** * Calculate the distance in kilometers to another address. * * @param anotherAddress the other address to calculate the distance to * @return the distance in kilometers between this address and the other * address * @throws IllegalArgumentException when location of either address is * unknown */ public double distanceTo(Address anotherAddress) { ... } } Building the right thing
  • 19. public class Address { public Address(String country) { ... } public Address(String city, String country) { ... } public Address(String street, String zipCode, String city, String state, String country) { ... } public String getStreet() { ... } public String getZip() { ... } public String getCity() { ... } public String getState() { ... } public String getCountry() { ... } ! public Point getGeographicalLocation() { ... } ! /** * Calculate the distance in kilometers to another address. * * @param anotherAddress the other address to calculate the distance to * @return the distance in kilometers between this address and the other * address * @throws IllegalArgumentException when location of either address is * unknown */ public double distanceTo(Address anotherAddress) { ... } } Building the right thing
  • 20. public class Address { public Address(String country) { ... } public Address(String city, String country) { ... } public Address(String street, String zipCode, String city, String state, String country) { ... } public String getStreet() { ... } public String getZip() { ... } public String getCity() { ... } public String getState() { ... } public String getCountry() { ... } ! public Point getGeographicalLocation() { ... } ! /** * Calculate the distance in kilometers to another address. * * @param anotherAddress the other address to calculate the distance to * @return the distance in kilometers between this address and the other * address * @throws IllegalArgumentException when location of either address is * unknown */ public double distanceTo(Address anotherAddress) { ... } } Building the right thing
  • 21. public class Address { public Address(String country) { ... } public Address(String city, String country) { ... } public Address(String street, String zipCode, String city, String state, String country) { ... } public String getStreet() { ... } public String getZip() { ... } public String getCity() { ... } public String getState() { ... } public String getCountry() { ... } ! public Point getGeographicalLocation() { ... } ! /** * Calculate the distance in kilometers to another address. * * @param anotherAddress the other address to calculate the distance to * @return the distance in kilometers between this address and the other * address * @throws IllegalArgumentException when location of either address is * unknown */ public double distanceTo(Address anotherAddress) { ... } } Building the right thing
  • 22. The Wallaroo Prints © 2011
  • 23. public class Address { ... public static void setAddressLocator(AddressLocator locator) { ... } ... } ! ! public class AddressTest { public AddressLocator createMockLocatorWithPolandCentreOfTheUniverse() { ... } ! @Test public void testDistanceTo() { Address.setAddressLocator( createMockLocatorWithPolandCentreOfTheUniverse()); Address polishAddress = new Address("Poland"); assertEquals(1000, polishAddress.distanceTo(new Address("Canada"))); } } Building the right thing
  • 24. Working as a team Building the right thing Building it right
  • 25. about 56,400,000 results
  • 26. http://www.zazzle.ca/comments_a_deodorant_to_mask_code_smells_tshirt-235182622652051339
  • 27. We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value That is, while there is value in the items on the right, we value items on the left more. Kent Beck - Mike Beedle - Arie van Bennekum - Alistair Cockburn - Ward Cunningham - Martin Fowler - James Grenning - Jim Highsmith Andrew Hunt - Ron Jeffries - John Kern - Brian Marick - Robert C. Martin - Steve Mellor - Ken Schwaber - Jeff Sutherland - Dave Thomas ignore ©2001, the above authors - this declaration may be freely copied in any form, but only in its entirety through this notice. INDIVIDUALS and INTERACTIONS
 over PROCESSES and TOOLS WORKING SOFTWARE
 over COMPREHENSIVE DOCUMENTATION RESPONSING to CHANGE
 over FOLLOWING a PLAN CUSTOMER COLLABORATION
 over CONTRACT NEGOTIATION
  • 28. better ways
 of developing software
  • 29. CRAFTSMANSHIP
 over CRAP
  • 30. Forget About Agile Excel at Software Engineering
  • 31. Thank you! Gino Marckx Director Agile Competency Center

×