Lightning talk: Software Archaeology conference report

Preview:

DESCRIPTION

Lightning Talk I gave at work on Software Archaeology conference #ticosa summarising some interesting conference themes.

Citation preview

TICOSA!The  International  Conference  Of  

Software  Archaeology  ticosa.org    #ticosa  

Turbulence  

                 https://github.com/michaelfeathers/delta-­‐flora  https://github.com/chad/turbulence   @mfeathers  

Changes  per  time  of  day  

Visualising  Code  History  

https://github.com/dkandalov/code-­‐history-­‐mining  @dmitrykandalov  

Files  Changed  in  Same  Commit  

https://github.com/dkandalov/code-­‐history-­‐mining  @dmitrykandalov  

Shotgun  Surgery    

set  of  classes  that  get  modified  at  same  time  

Closure  &  Active  Working  Set  

•  Open-­‐Closed  Principle  (OCP)  in  action  –  code  that  doesn’t  change  that  often  

•  Bringing  to  closure  reduces  active  set  of  classes  

•  Evidence  of  Shotgun  Surgery  –set  of  classes  that  get  modified  at  same  time  

Relation  of  Complexity  to  Tests  

•  Complexity  is  the  lower  bound  of  number  of  tests  to  write.  

For  a  codebase  with  5:1  of  lines  of  code  to  complexity.  Every  5  lines  is  a  conditional,  every  5  lines  demands  another  test.  

TDD  and  Cyclomatic  Complexity  

Inferences  

Where  α  is  distribution  of  complexity  per  method  •  Highest    α:  TDD  •  Higher  α:  automated  tests  •  Lower  α:  no  tests  •  Where  does  the  complexity  go?    

–  Interactions  between  classes  becomes  more  complex  –  Classes  may  be  more  tightly  coupled  

http://www.infoq.com/presentations/measure-­‐for-­‐measure  http://cumulative-­‐hypotheses.org/tag/complexity/  

@keithb_b  

WILT  •  Whitespace  Integrated  over  Lines  of  Text  

@robsmallshire  

Refactoring  Analogy  

%  Time  spent  refactoring  Cucumber  

@mattwynne  https://github.com/cucumber/cucumber-­‐ruby-­‐core  

Visualising