Slide 1

Slide 1 text

SUPRIYA SRIVATSA | SOFTWARE ENGINEER | @SUPRIYASRIVATSA Forgotten Histories Hidden Insights Lying Within Your Git Repository

Slide 2

Slide 2 text

Codebase should be viewed not as the ultimate truth

Slide 3

Slide 3 text

Codebase should be viewed not as the ultimate truth, but as a story of evolutions.

Slide 4

Slide 4 text

No content

Slide 5

Slide 5 text

No content

Slide 6

Slide 6 text

There is more to code than code.

Slide 7

Slide 7 text

There is more to code than code. What

Slide 8

Slide 8 text

When There is more to code than code. Who What

Slide 9

Slide 9 text

When A time dimension Who A social/organisational dimension There is more to code than code.

Slide 10

Slide 10 text

Tech debt is not just technical.

Slide 11

Slide 11 text

Behavioural Code Analysis

Slide 12

Slide 12 text

No content

Slide 13

Slide 13 text

No content

Slide 14

Slide 14 text

No content

Slide 15

Slide 15 text

No content

Slide 16

Slide 16 text

No content

Slide 17

Slide 17 text

BRING OUT YOUR CODEBASE!

Slide 18

Slide 18 text

BRING OUT YOUR CODEBASE!

Slide 19

Slide 19 text

BRING OUT YOUR CODEBASE!

Slide 20

Slide 20 text

http://adamtornhill.com/code/maatdistro.htm GET CODE MAAT

Slide 21

Slide 21 text

GIT LOGS $ git log --all --numstat --date=short --pretty=format:'--%h-- %ad--%aN' --no-renames --after=YYYY-MM-DD > log.log

Slide 22

Slide 22 text

CHANGE FREQUENCY $ java -jar code-maat-1.0-standalone.jar -c git2 -l log.log -a revisions -r 50 > .csv git log --format=format: --name-only --after=2019-12-01 | sort | uniq -c | sort -r | head -50

Slide 23

Slide 23 text

No content

Slide 24

Slide 24 text

Halstead Complexity Measuring Complexity Cyclomatic Complexity

Slide 25

Slide 25 text

Halstead Complexity Measuring Complexity Lines of code, Indentation based complexity Cyclomatic Complexity

Slide 26

Slide 26 text

Most active parts of code are often most complex parts of code.

Slide 27

Slide 27 text

- Low cohesion Most active parts of code are often most complex parts of code.

Slide 28

Slide 28 text

- Low cohesion - Developer congestion Most active parts of code are often most complex parts of code.

Slide 29

Slide 29 text

- Low cohesion - Developer congestion REFACTOR HOTSPOT Most active parts of code are often most complex parts of code.

Slide 30

Slide 30 text

HOTSPOT A complicated piece of code you have to work with often

Slide 31

Slide 31 text

Change Coupling Files that change together

Slide 32

Slide 32 text

CHANGE COUPLING - The files change together in at least X commits.
 - The files change together in at least Y% of the total commits to each file.

Slide 33

Slide 33 text

CHANGE COUPLING $ java -jar code-maat-1.0-standalone.jar -c git2 -l log.log -a coupling -r 30 > .csv

Slide 34

Slide 34 text

Refactor Hotspots Change Coupling

Slide 35

Slide 35 text

Refactor Hotspots Change Coupling Code Age

Slide 36

Slide 36 text

Refactor Hotspots Change Coupling Code Age Knowledge Maps

Slide 37

Slide 37 text

No content

Slide 38

Slide 38 text

No content

Slide 39

Slide 39 text

No content

Slide 40

Slide 40 text

No content

Slide 41

Slide 41 text

No content

Slide 42

Slide 42 text

No content

Slide 43

Slide 43 text

Software Design X-Rays Adam Tornhill

Slide 44

Slide 44 text

Supriya Srivatsa @SupriyaSrivatsa