93
© Mayflower GmbH 2010 Improving your workflows and awareness in the team with tools Florian Anderiasch I 11. November 2010

Improving your workflows and awareness in the team with tools

Embed Size (px)

DESCRIPTION

- Workflows optimieren- unterstützende Tools in agilen Teams- Cinder (OSL)

Citation preview

Page 1: Improving your workflows and awareness in the team with tools

© Mayflower GmbH 2010

Improving your workflows and awareness in the team with tools

Florian Anderiasch I 11. November 2010

Page 2: Improving your workflows and awareness in the team with tools

Mayflower GmbH I 2

Speaker

I Florian Anderiasch, 27 years, Dipl.-Inf. (LMU München)

I At Mayflower for over 4 years

· Admin

· Developer

· DevOps

I Open Source

· PHP (manual, PEAR, trying to send core patches)

· Several projects

· OSL: Padawan, Cinder

I @anderiasch | http://codeschmie.de

Page 3: Improving your workflows and awareness in the team with tools

Mayflower GmbH I 3

2 main topics

Page 4: Improving your workflows and awareness in the team with tools

Mayflower GmbH I 4

workflows

Page 5: Improving your workflows and awareness in the team with tools

Mayflower GmbH I 5

awareness

Page 6: Improving your workflows and awareness in the team with tools

Mayflower GmbH I 6

based on my diploma thesis,so here's a short

overview

Page 7: Improving your workflows and awareness in the team with tools

Mayflower GmbH I 7

Which ideas for improving workflows in the Software Development Process using

Agile Methods in general and specifically Continuous Integration and Inspection

occur in the existing work andliterature?

Page 8: Improving your workflows and awareness in the team with tools

Mayflower GmbH I 8

How could these workflows be improved by integrating results and findings of

Continuous Integration and Inspection into an IDE?

Page 9: Improving your workflows and awareness in the team with tools

Mayflower GmbH I 9

Which improvements have been implemented by integrating a Continuous

Integration and Inspectionenvironment into an IDE on the basis of

CruiseControl and Eclipse?

Page 10: Improving your workflows and awareness in the team with tools

Mayflower GmbH I 10

Agile Manifesto

4 core values

Page 11: Improving your workflows and awareness in the team with tools

Mayflower GmbH I 11

Individuals and interactionsover

processes and tools

Page 12: Improving your workflows and awareness in the team with tools

Mayflower GmbH I 12

Working softwareover

comprehensive documentation

Page 13: Improving your workflows and awareness in the team with tools

Mayflower GmbH I 13

Customer collaborationover

contract negotiation

Page 14: Improving your workflows and awareness in the team with tools

Mayflower GmbH I 14

Responding to changeover

following a plan

Page 15: Improving your workflows and awareness in the team with tools

Mayflower GmbH I 15

Agile Methods

Page 16: Improving your workflows and awareness in the team with tools

Mayflower GmbH I 16

Agile MethodseXtreme Programming

Page 17: Improving your workflows and awareness in the team with tools

Mayflower GmbH I 17

Agile MethodseXtreme Programming

Test-Driven Development

Page 18: Improving your workflows and awareness in the team with tools

Mayflower GmbH I 18

Agile MethodseXtreme Programming

Test-Driven DevelopmentRefactoring

Page 19: Improving your workflows and awareness in the team with tools

Mayflower GmbH I 19

Agile MethodseXtreme Programming

Test-Driven DevelopmentRefactoring

Continuous Integration/Inspection

Page 20: Improving your workflows and awareness in the team with tools

Mayflower GmbH I 20

Agile MethodseXtreme Programming

Test-Driven DevelopmentRefactoring

Continuous Integration/Inspection

Page 21: Improving your workflows and awareness in the team with tools

Mayflower GmbH I 21

What is ContinuousIntegration/Inspection?

Page 22: Improving your workflows and awareness in the team with tools

Mayflower GmbH I 22

Team members integrate their work frequently

at least daily

Page 23: Improving your workflows and awareness in the team with tools

Mayflower GmbH I 23

Instant feedbackfor developers

Page 24: Improving your workflows and awareness in the team with tools

Mayflower GmbH I 24

Central build server

Page 25: Improving your workflows and awareness in the team with tools

Mayflower GmbH I 25

Repeatedlyrunning

tests

Page 26: Improving your workflows and awareness in the team with tools

Mayflower GmbH I 26

Repeatedlyrunning

tests

Page 27: Improving your workflows and awareness in the team with tools

Mayflower GmbH I 27

Advantages

Page 28: Improving your workflows and awareness in the team with tools

Mayflower GmbH I 28

Aggregatinginformation

Page 29: Improving your workflows and awareness in the team with tools

Mayflower GmbH I 29

Reportingdefects

Page 30: Improving your workflows and awareness in the team with tools

Mayflower GmbH I 30

Less time from

noticinga defect

and fixing it

Page 31: Improving your workflows and awareness in the team with tools

Mayflower GmbH I 31

Metrics

Page 32: Improving your workflows and awareness in the team with tools

Mayflower GmbH I 32

Awareness

Page 33: Improving your workflows and awareness in the team with tools

Mayflower GmbH I 33

Artifacts and findings

Page 34: Improving your workflows and awareness in the team with tools

Mayflower GmbH I 34

Byproducts of the software development

process

Page 35: Improving your workflows and awareness in the team with tools

Mayflower GmbH I 35

Output of tools checking the source code

(static + dynamic code analysis)

Page 36: Improving your workflows and awareness in the team with tools

Mayflower GmbH I 36

Graph data by metric tools

Page 37: Improving your workflows and awareness in the team with tools

Mayflower GmbH I 37

API documentation

Page 38: Improving your workflows and awareness in the team with tools

Mayflower GmbH I 38

Test coverage data

Page 39: Improving your workflows and awareness in the team with tools

Mayflower GmbH I 39

Actually even meeting notes and

whiteboard snapshots

Page 40: Improving your workflows and awareness in the team with tools

Mayflower GmbH I 40

Continuous integrationin

PHP projects

Page 41: Improving your workflows and awareness in the team with tools

Mayflower GmbH I 41

Continuous integrationin

PHP projects

Page 42: Improving your workflows and awareness in the team with tools

Mayflower GmbH I 42

CruiseControl/phpUCHudsonBamboo

Page 43: Improving your workflows and awareness in the team with tools

Mayflower GmbH I 43

PHPUnitPHP_Depend

PHPMDPHP_CodeSniffer

Page 44: Improving your workflows and awareness in the team with tools

Mayflower GmbH I 44

phpcpdphpDocumentor

Padawan

Page 45: Improving your workflows and awareness in the team with tools

Mayflower GmbH I 45

phpcpdphpDocumentor

Padawan

Page 46: Improving your workflows and awareness in the team with tools

Mayflower GmbH I 46

PHPUnitPHP_Depend

PHPMDPHP_CodeSniffer

Page 47: Improving your workflows and awareness in the team with tools

Mayflower GmbH I 47

More tools:

http://valgrind.orghttp://github.com/facebook/lex-pass

http://github.com/facebook/pfffhttp://conqat.org

Page 48: Improving your workflows and awareness in the team with tools

Mayflower GmbH I 48

History

Page 49: Improving your workflows and awareness in the team with tools

Mayflower GmbH I 49

1978Glenford Myers:Unit Testing vs.

Inspection

Page 50: Improving your workflows and awareness in the team with tools

Mayflower GmbH I 50

1997Perpich et al:

web-based tool forasynchronous

inspection

Page 51: Improving your workflows and awareness in the team with tools

Mayflower GmbH I 51

2003Saff/Ernst:

82% of time wastedwaiting for testscan be avoided

Page 52: Improving your workflows and awareness in the team with tools

Mayflower GmbH I 52

2006Bowyer/Hughes:

CI in undergraduate classes

metrics analyzed

Page 53: Improving your workflows and awareness in the team with tools

Mayflower GmbH I 53

„Humans are trained tounderstand signs and pictures,

therefore visualization is anexcellent tool for understandingand identifying hidden aspects

of large software.“ – Lanza and Marinescu

Page 54: Improving your workflows and awareness in the team with tools

Mayflower GmbH I 54

Storey et al (2005)Awareness is...

Page 55: Improving your workflows and awareness in the team with tools

Mayflower GmbH I 55

„knowing who elseis working on the project,

what they are doing, whichartifacts they are or were manipulating, and howtheir work may impact

other work“

Page 56: Improving your workflows and awareness in the team with tools

Mayflower GmbH I 56

Walenstein (2003)

Multiple Views

Page 57: Improving your workflows and awareness in the team with tools

Mayflower GmbH I 57

Lanza/Ducasse (2005)

CodeCrawler

Page 58: Improving your workflows and awareness in the team with tools

Mayflower GmbH I 58

Lanza/Ducasse (2005)

CodeCrawler

Page 59: Improving your workflows and awareness in the team with tools

Mayflower GmbH I 59

Lommerse et al (2005)

Visual Code Navigator

Page 60: Improving your workflows and awareness in the team with tools

Mayflower GmbH I 60

Page 61: Improving your workflows and awareness in the team with tools

Mayflower GmbH I 61

Parnin et al (2008)

Lightweight Visualizations

Page 62: Improving your workflows and awareness in the team with tools

Mayflower GmbH I 62

Page 63: Improving your workflows and awareness in the team with tools

Mayflower GmbH I 63

But there are

Problems

Page 64: Improving your workflows and awareness in the team with tools

Mayflower GmbH I 64

Signal to noise ratio

Page 65: Improving your workflows and awareness in the team with tools

Mayflower GmbH I 65Too many code smells, too vagueToo many code smells, too vague

Page 66: Improving your workflows and awareness in the team with tools

Mayflower GmbH I 66

Bad filtering

Page 67: Improving your workflows and awareness in the team with tools

Mayflower GmbH I 67

Many standalone toolsNo integration

Page 68: Improving your workflows and awareness in the team with tools

Mayflower GmbH I 68

„Metrics are good at summarizingparticular aspects of things and

detecting outliers in large amounts ofdata. They scale up and are a food

basis for synthesizing the manydetails of software.“

– Lanza/Marinescu

Page 69: Improving your workflows and awareness in the team with tools

Mayflower GmbH I 69

Reasons for Integration

Page 70: Improving your workflows and awareness in the team with tools

Mayflower GmbH I 70

50% of time spent understanding the code

Page 71: Improving your workflows and awareness in the team with tools

Mayflower GmbH I 71

50% of time spent understanding the code

Page 72: Improving your workflows and awareness in the team with tools

Mayflower GmbH I 72

„build error“ seen in the browser„fix“ happening in the IDE

closing the gap?

Page 73: Improving your workflows and awareness in the team with tools

Mayflower GmbH I 73

Cross-references are helpfuldocumentationdependencies

architecture diagramsmetrics

Page 74: Improving your workflows and awareness in the team with tools

Mayflower GmbH I 74

Maintaining awareness and shared software artifacts

Page 75: Improving your workflows and awareness in the team with tools

Mayflower GmbH I 75

Ideas for Improvement

Page 76: Improving your workflows and awareness in the team with tools

Mayflower GmbH I 76

Integrate feedback

static code analysiscoding style

unit tests

Page 77: Improving your workflows and awareness in the team with tools

Mayflower GmbH I 77

Decrease number of tools used

Page 78: Improving your workflows and awareness in the team with tools

Mayflower GmbH I 78

Base on existing artifacts

Page 79: Improving your workflows and awareness in the team with tools

Mayflower GmbH I 79

Conform to IDE usability guidelines

Page 80: Improving your workflows and awareness in the team with tools

Mayflower GmbH I 80

CinderConnecting CI server and IDE

http://github.com/winks/cinder

needs XML from phpuc/hudson/bamboo

and nothing else :)

Page 81: Improving your workflows and awareness in the team with tools

Mayflower GmbH I 81

Eclipse Plug-in

why?

Page 82: Improving your workflows and awareness in the team with tools

Mayflower GmbH I 82

Eclipse is usable for many languages

Well-documentedplug-in infrastructure

Page 83: Improving your workflows and awareness in the team with tools

Mayflower GmbH I 83

Reads CruiseControl XML data

Page 84: Improving your workflows and awareness in the team with tools

Mayflower GmbH I 84

Aggregates findings by the CI

Page 85: Improving your workflows and awareness in the team with tools

Mayflower GmbH I 85

Language of the projectdoes not matter

Page 86: Improving your workflows and awareness in the team with tools

Mayflower GmbH I 86

Periodic updatesof input data

Page 87: Improving your workflows and awareness in the team with tools

Mayflower GmbH I 87

Use case„Fix Build Errors“

Based on MVC

No dependencies

It's an „Eclipse View“

Page 88: Improving your workflows and awareness in the team with tools

Mayflower GmbH I 88

Page 89: Improving your workflows and awareness in the team with tools

Mayflower GmbH I 89

Cinder

Help is welcomejust feedback is fine

Planned features:

read from more sources at oncedocumentation ;)

Page 90: Improving your workflows and awareness in the team with tools

Mayflower GmbH I 90

2 ideas

Page 91: Improving your workflows and awareness in the team with tools

Mayflower GmbH I 91

PTIPHP Tool Integration

http://www.phpsrc.org

CodeSniffer, PHPUnitPHP_Depend, phpcpd

Page 92: Improving your workflows and awareness in the team with tools

09.12.10 Mayflower GmbH 92

Thanks for your attention!

Contact Florian Anderiasch

[email protected]

+49 89 242054 1134

Mayflower GmbH

Mannhardtstrasse 6

80538 München

Page 93: Improving your workflows and awareness in the team with tools

Mayflower GmbH I 93

Images

Vader (26), by Sebastian Bergmann, CC-BY-SA http://www.flickr.com/photos/sebastian_bergmann/2282734669

Atlas (78), by tastybit, CC-BY-SAhttp://www.flickr.com/photos/sour_patch/421321971/