Sustainable Software
      Development
(Technical Practices Really Do Matter)


     Alistair McKinnell
            @amckinnell
I❤
Scrum
VersionOne: http://www.versionone.com/state_of_agile_development_survey/10/
“Scrum is not a process or
a technique for building products;
  rather, it is a framework within
  which you can employ various
    processes and techniques.”

                  Scrum Guide
State of Agile Survey 2010




      VersionOne: http://www.versionone.com/state_of_agile_development_survey/10/
http://tech.groups.yahoo.com/group/
 scrumdevelopment/message/52553
http://tech.groups.yahoo.com/group/
 scrumdevelopment/message/52553

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

            I Promise
             To Read
http://tech.groups.yahoo.com/group/
 scrumdevelopment/message/52553

            I Promise
             To Read
     Jeff Sutherland’s Message
Technical Debt
The Long Function
“Every year I spend more on
    R & D and I get less”
6,000
 lines
120
pages
25
metres
Tiny Code Smells
Reducing Variable Scope
bool bStatus;


  (250 lines)


bStatus = SomeFunction();
if (! bStatus )
    continue;
bool bStatus;
bStatus = SomeFunction();
if (! bStatus )
    continue;
bool bStatus = SomeFunction();
if (! bStatus )
    continue;
if (! SomeFunction())
    continue;
Role Based Variable Name
CComBstr sVal;
CComBstr calibrationToolName;
Simplify Conditional Logic
if (iterToolEleCali ==
     vecToolEleCaliGuids.end())
{
     bFound = true;
     break;A
}
else
     break;B
if (iterToolEleCali ==
     vecToolEleCaliGuids.end())
{
     bFound = true;
     break;A
}
else
{
     bFound = false;
     break;B
}
if (iterToolEleCali ==
     vecToolEleCaliGuids.end())
{
     bFound = true;
}
else
{
     bFound = false;
}
break;
bFound = (iterToolEleCali ==
    vecToolEleCaliGuids.end());
break;
The Boy Scout Rule




      “Leave the campground
      cleaner than you found it”
The Boy Scout Rule (For Programmers)


   “Leave the
 checked-in code
  cleaner than
    when you
 checked it out”
Technical Debt
www.XProgramming.com
Pair Programming
Simple Design
Software Craftsmanship
8           Pillars of Software
                              Craftsmanship



               ® Care
               ® Learn
               ® Practice
               ® Share




Prepared exclusively for Alistair McKinnell   Copyright ©2011 Pragmatic Programmers
“The prime directive that was
unanimously agree upon by all
 present was that in the next
tens years Agile leaders must
Demand Technical Excellence.”

                Jeff Sutherland
“The prime directive that was
unanimously agree upon by all
 present was that in the next
tens years Agile leaders must
Demand Technical Excellence.”

                Jeff Sutherland
“Failure to do that means
you are not an Agile leader.”


                Jeff Sutherland
Photo Credits
http://www.hostingwiththemostzing.com/?p=12


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


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


http://bsatroop174.tripod.com/


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


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


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


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

Agile Tour Shanghai December 2011