Improving your workflows and awareness in the team with tools

Post on 07-May-2015

1.364 views 1 download

description

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

Transcript of 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

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

Mayflower GmbH I 3

2 main topics

Mayflower GmbH I 4

workflows

Mayflower GmbH I 5

awareness

Mayflower GmbH I 6

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

overview

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?

Mayflower GmbH I 8

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

Continuous Integration and Inspection into an IDE?

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?

Mayflower GmbH I 10

Agile Manifesto

4 core values

Mayflower GmbH I 11

Individuals and interactionsover

processes and tools

Mayflower GmbH I 12

Working softwareover

comprehensive documentation

Mayflower GmbH I 13

Customer collaborationover

contract negotiation

Mayflower GmbH I 14

Responding to changeover

following a plan

Mayflower GmbH I 15

Agile Methods

Mayflower GmbH I 16

Agile MethodseXtreme Programming

Mayflower GmbH I 17

Agile MethodseXtreme Programming

Test-Driven Development

Mayflower GmbH I 18

Agile MethodseXtreme Programming

Test-Driven DevelopmentRefactoring

Mayflower GmbH I 19

Agile MethodseXtreme Programming

Test-Driven DevelopmentRefactoring

Continuous Integration/Inspection

Mayflower GmbH I 20

Agile MethodseXtreme Programming

Test-Driven DevelopmentRefactoring

Continuous Integration/Inspection

Mayflower GmbH I 21

What is ContinuousIntegration/Inspection?

Mayflower GmbH I 22

Team members integrate their work frequently

at least daily

Mayflower GmbH I 23

Instant feedbackfor developers

Mayflower GmbH I 24

Central build server

Mayflower GmbH I 25

Repeatedlyrunning

tests

Mayflower GmbH I 26

Repeatedlyrunning

tests

Mayflower GmbH I 27

Advantages

Mayflower GmbH I 28

Aggregatinginformation

Mayflower GmbH I 29

Reportingdefects

Mayflower GmbH I 30

Less time from

noticinga defect

and fixing it

Mayflower GmbH I 31

Metrics

Mayflower GmbH I 32

Awareness

Mayflower GmbH I 33

Artifacts and findings

Mayflower GmbH I 34

Byproducts of the software development

process

Mayflower GmbH I 35

Output of tools checking the source code

(static + dynamic code analysis)

Mayflower GmbH I 36

Graph data by metric tools

Mayflower GmbH I 37

API documentation

Mayflower GmbH I 38

Test coverage data

Mayflower GmbH I 39

Actually even meeting notes and

whiteboard snapshots

Mayflower GmbH I 40

Continuous integrationin

PHP projects

Mayflower GmbH I 41

Continuous integrationin

PHP projects

Mayflower GmbH I 42

CruiseControl/phpUCHudsonBamboo

Mayflower GmbH I 43

PHPUnitPHP_Depend

PHPMDPHP_CodeSniffer

Mayflower GmbH I 44

phpcpdphpDocumentor

Padawan

Mayflower GmbH I 45

phpcpdphpDocumentor

Padawan

Mayflower GmbH I 46

PHPUnitPHP_Depend

PHPMDPHP_CodeSniffer

Mayflower GmbH I 47

More tools:

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

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

Mayflower GmbH I 48

History

Mayflower GmbH I 49

1978Glenford Myers:Unit Testing vs.

Inspection

Mayflower GmbH I 50

1997Perpich et al:

web-based tool forasynchronous

inspection

Mayflower GmbH I 51

2003Saff/Ernst:

82% of time wastedwaiting for testscan be avoided

Mayflower GmbH I 52

2006Bowyer/Hughes:

CI in undergraduate classes

metrics analyzed

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

Mayflower GmbH I 54

Storey et al (2005)Awareness is...

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“

Mayflower GmbH I 56

Walenstein (2003)

Multiple Views

Mayflower GmbH I 57

Lanza/Ducasse (2005)

CodeCrawler

Mayflower GmbH I 58

Lanza/Ducasse (2005)

CodeCrawler

Mayflower GmbH I 59

Lommerse et al (2005)

Visual Code Navigator

Mayflower GmbH I 60

Mayflower GmbH I 61

Parnin et al (2008)

Lightweight Visualizations

Mayflower GmbH I 62

Mayflower GmbH I 63

But there are

Problems

Mayflower GmbH I 64

Signal to noise ratio

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

Mayflower GmbH I 66

Bad filtering

Mayflower GmbH I 67

Many standalone toolsNo integration

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

Mayflower GmbH I 69

Reasons for Integration

Mayflower GmbH I 70

50% of time spent understanding the code

Mayflower GmbH I 71

50% of time spent understanding the code

Mayflower GmbH I 72

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

closing the gap?

Mayflower GmbH I 73

Cross-references are helpfuldocumentationdependencies

architecture diagramsmetrics

Mayflower GmbH I 74

Maintaining awareness and shared software artifacts

Mayflower GmbH I 75

Ideas for Improvement

Mayflower GmbH I 76

Integrate feedback

static code analysiscoding style

unit tests

Mayflower GmbH I 77

Decrease number of tools used

Mayflower GmbH I 78

Base on existing artifacts

Mayflower GmbH I 79

Conform to IDE usability guidelines

Mayflower GmbH I 80

CinderConnecting CI server and IDE

http://github.com/winks/cinder

needs XML from phpuc/hudson/bamboo

and nothing else :)

Mayflower GmbH I 81

Eclipse Plug-in

why?

Mayflower GmbH I 82

Eclipse is usable for many languages

Well-documentedplug-in infrastructure

Mayflower GmbH I 83

Reads CruiseControl XML data

Mayflower GmbH I 84

Aggregates findings by the CI

Mayflower GmbH I 85

Language of the projectdoes not matter

Mayflower GmbH I 86

Periodic updatesof input data

Mayflower GmbH I 87

Use case„Fix Build Errors“

Based on MVC

No dependencies

It's an „Eclipse View“

Mayflower GmbH I 88

Mayflower GmbH I 89

Cinder

Help is welcomejust feedback is fine

Planned features:

read from more sources at oncedocumentation ;)

Mayflower GmbH I 90

2 ideas

Mayflower GmbH I 91

PTIPHP Tool Integration

http://www.phpsrc.org

CodeSniffer, PHPUnitPHP_Depend, phpcpd

09.12.10 Mayflower GmbH 92

Thanks for your attention!

Contact Florian Anderiasch

florian.anderiasch@mayflower.de

+49 89 242054 1134

Mayflower GmbH

Mannhardtstrasse 6

80538 München

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/