enhancing agile development through software assessment

79
enhancing agile development www.tudorgirba.com with software assessment

Upload: tudor-girba

Post on 10-May-2015

794 views

Category:

Technology


3 download

DESCRIPTION

I used this set of slides for a talk I gave at the SCRUM Breakfast in Bern (March 2010)

TRANSCRIPT

Page 1: Enhancing agile development through software assessment

enhancing agile development

www.tudorgirba.com

with software assessment

Page 3: Enhancing agile development through software assessment
Page 4: Enhancing agile development through software assessment
Page 5: Enhancing agile development through software assessment

feedback is key

Page 6: Enhancing agile development through software assessment
Page 7: Enhancing agile development through software assessment
Page 8: Enhancing agile development through software assessment
Page 9: Enhancing agile development through software assessment

}

{

Page 10: Enhancing agile development through software assessment

}

{

Page 11: Enhancing agile development through software assessment

}

{

}

{

Page 12: Enhancing agile development through software assessment

}

{

}

{

Page 13: Enhancing agile development through software assessment

}

{

}

{

}

{

Page 14: Enhancing agile development through software assessment

}

{

}

{

}

{

Page 15: Enhancing agile development through software assessment

}

{

}

{

}

{

Page 16: Enhancing agile development through software assessment

}

{

}

{

}

{

}

{

}

{

Page 17: Enhancing agile development through software assessment

}

{

}

{

}

{

}

{

}

{

Page 18: Enhancing agile development through software assessment

}

{

}

{

}

{

}

{

}

{

Page 19: Enhancing agile development through software assessment

}

{

}

{

}

{

}

{

}

{

Page 20: Enhancing agile development through software assessment

}

{

}

{

}

{

}

{

}

{

Page 21: Enhancing agile development through software assessment

}

{

}

{

}

{

}

{

}

{

}

{

}

{

Page 22: Enhancing agile development through software assessment

}

{

}

{

}

{

}

{

}

{

}

{

}

{

Page 23: Enhancing agile development through software assessment

}

{

}

{

}

{

}

{

}

{

}

{

}

{

}

{

Page 24: Enhancing agile development through software assessment

}

{

}

{

}

{

}

{

}

{

}

{

}

{

}

{

Page 25: Enhancing agile development through software assessment

}

{

}

{

}

{

}

{

}

{

}

{

}

{

}

{

Page 26: Enhancing agile development through software assessment

feedback is key

Page 27: Enhancing agile development through software assessment

forward engineering

}

{

}

{

}

{

}

{

Page 28: Enhancing agile development through software assessment

forward engineering

actual development}

{

}

{

}

{

}

{}

{

}

{

}

{}

{

}

{

Page 29: Enhancing agile development through software assessment

forward engineering

actual development}

{

}

{

}

{

}

{}

{

}

{

}

{}

{

}

{

reve

rse e

ngin

eerin

g

Page 30: Enhancing agile development through software assessment

}

{

}

{

}

{}

{

}

{

reve

rse

engi

neer

ing

Page 31: Enhancing agile development through software assessment

}

{

}

{

}

{}

{

}

{

reve

rse

engi

neer

ing

Page 32: Enhancing agile development through software assessment

}

{

}

{

}

{}

{

}

{

reve

rse

engi

neer

ing

assessment

Page 33: Enhancing agile development through software assessment

assessment is a discipline

assessment should be continuous

assessment should be contextual

Page 34: Enhancing agile development through software assessment
Page 35: Enhancing agile development through software assessment
Page 36: Enhancing agile development through software assessment
Page 37: Enhancing agile development through software assessment
Page 38: Enhancing agile development through software assessment

}

{

}

{

}

{}

{

}

{

McCabe = 21

LOC = 75

3,000

NOM = 102classes select: #isGod ...

Page 39: Enhancing agile development through software assessment

}

{

}

{

}

{}

{

}

{

McCabe = 21

LOC = 75

3,000

NOM = 102classes select: #isGod ...

Page 40: Enhancing agile development through software assessment
Page 41: Enhancing agile development through software assessment

}

{

}

{

}

{}

{

}

{

McCabe = 21

LOC = 75

3,000

NOM = 102classes select: #isGod ...

Page 42: Enhancing agile development through software assessment

}

{

}

{

}

{}

{

}

{

McCabe = 21

LOC = 75

3,000

NOM = 102classes select: #isGod ...

Page 43: Enhancing agile development through software assessment
Page 44: Enhancing agile development through software assessment
Page 46: Enhancing agile development through software assessment

Lanza, Marinescu 2006

A God Class centralizes too much intelligence

ATFD > FEW

Class uses directly more than a

few attributes of other classes

WMC ! VERY HIGH

Functional complexity of the

class is very high

TCC < ONE THIRD

Class cohesion is low

AND GodClass

Page 47: Enhancing agile development through software assessment

}

{

}

{

}

{}

{

}

{

McCabe = 21

LOC = 75

3,000

NOM = 102classes select: #isGod ...

Page 48: Enhancing agile development through software assessment

}

{

}

{

}

{}

{

}

{

McCabe = 21

LOC = 75

3,000

NOM = 102classes select: #isGod ...

Page 49: Enhancing agile development through software assessment
Page 50: Enhancing agile development through software assessment
Page 51: Enhancing agile development through software assessment

A picture tells

a thousand words

Page 52: Enhancing agile development through software assessment
Page 53: Enhancing agile development through software assessment
Page 54: Enhancing agile development through software assessment

Not all pictures tell a

thousand words

Page 55: Enhancing agile development through software assessment

Lanza, Ducasse 2003

System Complexity shows class hierarchies

Page 56: Enhancing agile development through software assessment
Page 57: Enhancing agile development through software assessment
Page 58: Enhancing agile development through software assessment

Class Blueprint shows class internals

Page 59: Enhancing agile development through software assessment
Page 60: Enhancing agile development through software assessment

eDSM shows dependencies

Page 61: Enhancing agile development through software assessment

Duplications shown side by side

Page 62: Enhancing agile development through software assessment

}

{

}

{

}

{}

{

}

{

McCabe = 21

LOC = 75

3,000

NOM = 102classes select: #isGod ...

Page 63: Enhancing agile development through software assessment

}

{

}

{

}

{}

{

}

{

McCabe = 21

LOC = 75

3,000

NOM = 102classes select: #isGod ...

Page 64: Enhancing agile development through software assessment

}

{

}

{

}

{}

{

}

{

McCabe = 21

LOC = 75

3,000

NOM = 102classes select: #isGod ...

Page 66: Enhancing agile development through software assessment

Lanza, Ducasse 2003

What is this made of?

Page 67: Enhancing agile development through software assessment

What is this made of?

Page 68: Enhancing agile development through software assessment

package 1

package 2

...

Class A

Class B

...

method M

method N

...

source code

Page 69: Enhancing agile development through software assessment
Page 70: Enhancing agile development through software assessment
Page 71: Enhancing agile development through software assessment
Page 72: Enhancing agile development through software assessment
Page 73: Enhancing agile development through software assessment

}

{

}

{

}

{}

{

}

{

McCabe = 21

LOC = 75

3,000

NOM = 102classes select: #isGod ...

Page 74: Enhancing agile development through software assessment

}

{

}

{

}

{}

{

}

{

reve

rse

engi

neer

ing

assessment

Page 75: Enhancing agile development through software assessment

feedback is key

Page 76: Enhancing agile development through software assessment

feedback is key

Page 77: Enhancing agile development through software assessment

assessment is a discipline

assessment should be continuous

assessment should be contextual

Page 78: Enhancing agile development through software assessment

assessment is a discipline

assessment must be continuous

assessment must be contextual