49
Sustainable Software Development (Technical Practices Really Do Matter) Alistair McKinnell @amckinnell

Agile Tour Shanghai December 2011

Embed Size (px)

Citation preview

Page 1: Agile Tour Shanghai December 2011

Sustainable Software Development

(Technical Practices Really Do Matter)

Alistair McKinnell@amckinnell

Page 2: Agile Tour Shanghai December 2011

I ❤Scrum

Page 3: Agile Tour Shanghai December 2011

VersionOne: http://www.versionone.com/state_of_agile_development_survey/10/

Page 4: Agile Tour Shanghai December 2011

“Scrum is not a process ora technique for building products;

rather, it is a framework withinwhich you can employ various

processes and techniques.”

Scrum Guide

Page 5: Agile Tour Shanghai December 2011

State of Agile Survey 2010

VersionOne: http://www.versionone.com/state_of_agile_development_survey/10/

Page 6: Agile Tour Shanghai December 2011
Page 7: Agile Tour Shanghai December 2011

http://tech.groups.yahoo.com/group/scrumdevelopment/message/52553

Page 8: Agile Tour Shanghai December 2011

http://tech.groups.yahoo.com/group/scrumdevelopment/message/52553

I Promise

Page 9: Agile Tour Shanghai December 2011

http://tech.groups.yahoo.com/group/scrumdevelopment/message/52553

I Promise

To Read

Page 10: Agile Tour Shanghai December 2011

http://tech.groups.yahoo.com/group/scrumdevelopment/message/52553

I Promise

To Read

Jeff Sutherland’s Message

Page 11: Agile Tour Shanghai December 2011

Technical Debt

Page 12: Agile Tour Shanghai December 2011

The Long Function

Page 13: Agile Tour Shanghai December 2011

“Every year I spend more onR & D and I get less”

Page 14: Agile Tour Shanghai December 2011

6,000 lines

Page 15: Agile Tour Shanghai December 2011

120 pages

Page 16: Agile Tour Shanghai December 2011

25 metres

Page 17: Agile Tour Shanghai December 2011

Tiny Code Smells

Page 18: Agile Tour Shanghai December 2011

Reducing Variable Scope

Page 19: Agile Tour Shanghai December 2011

bStatus =

bool bStatus;

if (! continue;

SomeFunction()bStatus)

(250 lines)

;

Page 20: Agile Tour Shanghai December 2011

bStatus =bool bStatus;

if (! continue;

bStatus)SomeFunction();

Page 21: Agile Tour Shanghai December 2011

bStatus =boolif (! continue;

bStatus)SomeFunction();

Page 22: Agile Tour Shanghai December 2011

if (! continue;

)SomeFunction()

Page 23: Agile Tour Shanghai December 2011

Role Based Variable Name

Page 24: Agile Tour Shanghai December 2011

CComBstr sVal;

Page 25: Agile Tour Shanghai December 2011

CComBstr calibrationToolName;

Page 26: Agile Tour Shanghai December 2011

Simplify Conditional Logic

Page 27: Agile Tour Shanghai December 2011

vecToolEleCaliGuids.end())

else break;B

} break;A bFound = true;{

(iterToolEleCali ==if

Page 28: Agile Tour Shanghai December 2011

vecToolEleCaliGuids.end())

else} break;A bFound = true;{

(iterToolEleCali ==if

} break;B bFound = false;{

Page 29: Agile Tour Shanghai December 2011

vecToolEleCaliGuids.end())

else} bFound = true;{

(iterToolEleCali ==if

}break;

bFound = false;{

Page 30: Agile Tour Shanghai December 2011

vecToolEleCaliGuids.end())bFound =(iterToolEleCali ==

break;;

Page 31: Agile Tour Shanghai December 2011

“Leave the campgroundcleaner than you found it”

The Boy Scout Rule

Page 32: Agile Tour Shanghai December 2011

“Leave thechecked-in code

cleaner than when you

checked it out”

The Boy Scout Rule (For Programmers)

Page 33: Agile Tour Shanghai December 2011

Technical Debt

Page 34: Agile Tour Shanghai December 2011

www.XProgramming.com

Page 35: Agile Tour Shanghai December 2011
Page 36: Agile Tour Shanghai December 2011

Pair Programming

Page 37: Agile Tour Shanghai December 2011
Page 38: Agile Tour Shanghai December 2011
Page 39: Agile Tour Shanghai December 2011
Page 40: Agile Tour Shanghai December 2011
Page 41: Agile Tour Shanghai December 2011

Simple Design

Page 42: Agile Tour Shanghai December 2011
Page 43: Agile Tour Shanghai December 2011

Software Craftsmanship

Page 44: Agile Tour Shanghai December 2011

8 Pillars of SoftwareCraftsmanship

! Care

! Learn

! Practice

! Share

Prepared exclusively for Alistair McKinnell Copyright ©2011 Pragmatic Programmers

Page 45: Agile Tour Shanghai December 2011

“The prime directive that was unanimously agree upon by allpresent was that in the nexttens years Agile leaders must

Demand Technical Excellence.”

Jeff Sutherland

Page 46: Agile Tour Shanghai December 2011

“The prime directive that was unanimously agree upon by allpresent was that in the nexttens years Agile leaders must

Demand Technical Excellence.”

Jeff Sutherland

Page 47: Agile Tour Shanghai December 2011

“Failure to do that meansyou are not an Agile leader.”

Jeff Sutherland

Page 48: Agile Tour Shanghai December 2011
Page 49: Agile Tour Shanghai December 2011

Photo Credits

http://www.flickr.com/photos/54087404@N00/4638056301/

http://www.flickr.com/photos/36829973@N04/3546657245/

http://bsatroop174.tripod.com/

http://www.hostingwiththemostzing.com/?p=12

http://www.flickr.com/photos/54087404@N00/4638056301/

http://www.flickr.com/photos/42644641@N07/5702962303/

http://www.flickr.com/photos/49016492@N08/4534101229/

http://www.flickr.com/photos/59707463@N00/1312377396/