Upload
mayflower-gmbh
View
1.364
Download
1
Embed Size (px)
DESCRIPTION
- Workflows optimieren- unterstützende Tools in agilen Teams- Cinder (OSL)
Citation preview
© 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
+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/