16
TICOSA The International Conference Of Software Archaeology ticosa.org #ticosa

Lightning talk: Software Archaeology conference report

Embed Size (px)

DESCRIPTION

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

Citation preview

Page 1: Lightning talk: Software Archaeology conference report

TICOSA!The  International  Conference  Of  

Software  Archaeology  ticosa.org    #ticosa  

Page 2: Lightning talk: Software Archaeology conference report

Turbulence  

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

Page 3: Lightning talk: Software Archaeology conference report

Changes  per  time  of  day  

Page 4: Lightning talk: Software Archaeology conference report
Page 5: Lightning talk: Software Archaeology conference report

Visualising  Code  History  

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

Page 6: Lightning talk: Software Archaeology conference report

Files  Changed  in  Same  Commit  

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

Page 7: Lightning talk: Software Archaeology conference report

Shotgun  Surgery    

set  of  classes  that  get  modified  at  same  time  

Page 8: Lightning talk: Software Archaeology conference report

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  

Page 9: Lightning talk: Software Archaeology conference report
Page 10: Lightning talk: Software Archaeology conference report

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.  

Page 11: Lightning talk: Software Archaeology conference report

TDD  and  Cyclomatic  Complexity  

Page 12: Lightning talk: Software Archaeology conference report

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  

Page 13: Lightning talk: Software Archaeology conference report

WILT  •  Whitespace  Integrated  over  Lines  of  Text  

@robsmallshire  

Page 14: Lightning talk: Software Archaeology conference report

Refactoring  Analogy  

Page 15: Lightning talk: Software Archaeology conference report

%  Time  spent  refactoring  Cucumber  

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

Page 16: Lightning talk: Software Archaeology conference report

Visualising