SlideShare a Scribd company logo
1 of 66
Download to read offline
Being for Software Developers
IDE 2.0: Crowdsourcing mal anders…
About Me
!2
@MarcelBruch
+MarcelBruch
• Project Lead of Eclipse Code Recommenders
• Eclipse Committer since 2010
• Plug-in Developer for 10 years (Eclipse 2.1)
• Co-Lead of Java User Group Darmstadt
• Speaker at JUGs, EclipseCon, JavaOne...
• CEO of Codetrails
!
• Passion to improve developers day-to-day work
with intelligent and practical tools - mostly using
Data Mining on Big (Software Engineering) Data.
• The company behind Eclipse Code Recommenders
• Eclipse IDE Experts & Consultants
• Software Tool Developers
• Data Mining Specialists
• Research Spin-off Darmstadt University of Technology
!3
supported by
PROBLEM
Problem #1: Knowledge Drain
!5
Problem #1: Knowledge Drain
!6
Problem #1: Knowledge Drain
!7
Software
Problem #2: Continuous Learning
!8
A typical developer day
!9
Comprehend Task
3 %
Handling Interruptions
20 %
Navigate Code
14 %
Study Code
19 %
Searching Web
12 %
Reading Docs
6 %
Write Code
27 %
51% of their time, developers invest in searching
and understanding code
How we search
!10
What developers look for
!11
Question + Answer + Code Example = ✓
A typical developer day
!12
Comprehend Task
3 %
Handling Interruptions
20 %
Navigate Code
14 %
Study Code
19 %
Searching Web
12 %
Reading Docs
6 %
Write Code
27 %
Even when writing code
we search…
If we don’t google…
!13
1 of 387 ?
!15
Code Completion
Frequency : 100 completions / day
Duration (⌀) : 27 seconds / completion
Sum : 45 minutes / day
9% of their time developers spent
searching in their code completion
Problem
!16
Comprehend Task
3 %
Handling Interruptions
20 %
Searching Code
12 %
Navigate Code
14 %
Reading Code
19 %
Reading Docs
6 %
Edit Code
27 %
Problem
!17
Comprehend Task
3 %
Handling Interruptions
20 %
Searching Code
12 %
Navigate Code
14 %
Reading Code
19 %
Reading Docs
6 %
Edit Code
27 %
• 51% of their time, developers spent searching the
web and existing code for help
• In addition, even when programming, they spent
9% searching in their code completion
• In total, 60% is about finding the right information
to solve a programming task
Being for Software Developers
How 39 million click events make your IDE a smarter place
!19
!20
The amazon success factors
!21
!22
How about applying the very same
principles to software development?
So, instead of using the web browser…
!23
…we connect our IDEs:
!24
project

environment
Clicks, Code Navigation, Search
source code
selected

proposals
stacktraces
click

feedback
Crowdsourcing inside the IDE
!25
❷
Mine data,

extract patterns

create recommendation
models
Knowledge base
❸
Deliver mined

knowledge to developers
❶
You sharing information
Software Development gets social again!
Crowdsourced Code Completion
Developers that bought used a StringBuilder, typically…
!26
A fairly trivial example…
!27
What if we‘d just count calls...?
!28
Codetrails Connect Community Edition,

Install from http://www.codetrails.com/connect
!
void ctor() {	
!
	 	 List l = new A…	
}	
Crowdsourced Constructor Completion
!29
What is the mostly likely completion a
developer looks for in this particular situation ?
!30
1 out of 302
!
void ctor() {	
!
	 	 List l = new A…	
}	
Use (costly) subtype checks
!31
Codetrails Completion Tweaks for Eclipse,

Install from http://download.codetrails.com/updates/connect/
Crowdsourcing constructor completions...?
!32
It learns from you. From the very 1st moment.
Codetrails Connect Community Edition,

Install from http://download.codetrails.com/updates/connect/
public class MyDialog extends Dialog {	
!
|	
!
!
Crowdsourcing override completions...?
!33
!
void quickfix() {	
!
	 	 List l = new A	
}	
How about fixing quick-fix?
!34
Not fixed yet. But could be easily - when you start sharing your knowledge…
39.000.000 clicks for a smarter IDE
!35
Read more (October 2013)

http://www.codetrails.com/blog/powered-33-million-code-completions-codetrails-connect-12
Method Overrides
1.579.303
Constructor Calls
8.915.540
Method Calls
38.254.438
48.749.281
Bootstrapped with

30++ GB Java Bytecode.
Powered by Maven Central
and EclipseSource Yoxos.
56.424 crowdsourced completion events
!36
org.eclipse.*
11 %org.apache.*
4 %
com.google.*
9 %
com.vaadin.*
5 %
com.codetrails.*
3 %
others
14 %
javax.*
3 %
java.[n]io.*
6 %
java.util.*
25 %
java.lang.*
21 %
From December 22 to March 12
Trend: Events send per hour
!37
Visit the Codetrails Connect live dashboard:

http://download.codetrails.com/connect/dashboard/
How well does it work?
!38
Numberofproposalsmade
1
2
3
4
5
6
7
Position in code completion window
-1 0 1 2 3 4 5 6
993
475
304
214
189
123
1.094
833
327 238
197 114 87
145 56 40 38
96 61 23 22 21
77 52 19 21 20 10
963 591 373 243 285 151 157
Hit
Miss
not found
Successfully concluded sessions
!39
Codetrails Connect
78,2
JDT
69,5
JDT standalone vs. crowdsourced
Developers find what they need 9% more often with smart code completion.
Number of documentation lookups saved in 3 months: 1.400!
What get’s shared?
!40
What is shared?
!41
{!
„type“: „StringBuilder“,!
„completion“: „append(String)“!
}
Sharing Preferences
!42
Still scared of crowdsourcing?
!43
Do you also suffer from Anatidaephobia?
„Big Brother is watching you“

http://anniemachon.ch/annie_machon/2013/11/cryptofestival-london-30th-november.html
!44
ANATIDAEPHOBIA IS THE FEAR

THAT SOMEWHERE IN THE WORLD,
THERE IS A DUCK WATCHING YOU.
!45
https://vaadin.com/blog/-/blogs/crowdsourcing-vaadin-with-codetrails-connect
Snipmatch
„Stop searching Stackoverflow for code snippets“
!46
Eclipse Java Templates
!47
42x Java Templates."
35x SWT Templates.
The rise of code snippet repositories
!48
and many more...
Snipmatch
!49
In Eclipse Code Recommenders 2.1 (for Eclipse Luna)

Install from http://download.eclipse.org/recommenders.incubator/updates/milestones/
…going social
!50
5 0
Connect Code Snippets #EarlyAccess
!51
Codetrails Connect Snippets is an Early Access Preview

Install from http://download.codetrails.com/updates/connect
Enriching API Documentation
!52
Eclipse Code Recommenders Livedoc 0.8 Incubator

Install from http://eclipse.org/recommenders/incubators
The Connect Portal
!53
This is work in progress.
!54
Breaking News:!
Words carry meaning!
As leading scientists found out, words....
Rethinking Recommendation
for Code Completion
A simple observation
!55
You wouldn‘t expect a call to #dispose()

in #createSomething(), right?
What you expect is...
!56
How many words do you have for ‟create” ?
!57
So, it works for #createSomething too!
!58
Almost no difference!
!59
Precision
0
25
50
75
100
Recall
0 10 20 30 40 50 60 70 80 90 100
Classic
Verbs
Interpolated Precision Recall Curves over 136.761 samples on JRE
What get‘s shared?
!60
{!
„method“: „create“!
„type“: „Composite“,!
„completion“: „setLayout(...)“!
}
Let‘s back up here for a second!
!61
We get (almost) language agnostic!
!62
But all that only happens if you share…
!63
!64
Yes, there is a duck somewhere.
!65But it probably doesn’t care what you are doing.
Thank you
!66
@MarcelBruch
+MarcelBruch
Questions? Get in touch:
!
At the booth: 

Ground floor Quantum - close to the stairway.
!
By email:

marcel.bruch@codetrails.com

More Related Content

Similar to Being Amazon for Software Developers - IDE 2.0: Crowdsourcing mal anders #Javaland 2014

Do Try This At Home Ajax Bookmarking, Cross Site Scripting, And Other Web 2 ...
Do Try This At Home  Ajax Bookmarking, Cross Site Scripting, And Other Web 2 ...Do Try This At Home  Ajax Bookmarking, Cross Site Scripting, And Other Web 2 ...
Do Try This At Home Ajax Bookmarking, Cross Site Scripting, And Other Web 2 ...
jward5519
 
Clean Code Part III - Craftsmanship at SoCal Code Camp
Clean Code Part III - Craftsmanship at SoCal Code CampClean Code Part III - Craftsmanship at SoCal Code Camp
Clean Code Part III - Craftsmanship at SoCal Code Camp
Theo Jungeblut
 
Software Carpentry and the Hydrological Sciences @ AGU 2013
Software Carpentry and the Hydrological Sciences @ AGU 2013Software Carpentry and the Hydrological Sciences @ AGU 2013
Software Carpentry and the Hydrological Sciences @ AGU 2013
Aron Ahmadia
 
Taming Big Balls of Mud with Diligence, Agile Practices, and Hard Work
Taming Big Balls of Mud with Diligence, Agile Practices, and Hard WorkTaming Big Balls of Mud with Diligence, Agile Practices, and Hard Work
Taming Big Balls of Mud with Diligence, Agile Practices, and Hard Work
Joseph Yoder
 

Similar to Being Amazon for Software Developers - IDE 2.0: Crowdsourcing mal anders #Javaland 2014 (20)

Do Try This At Home Ajax Bookmarking, Cross Site Scripting, And Other Web 2 ...
Do Try This At Home  Ajax Bookmarking, Cross Site Scripting, And Other Web 2 ...Do Try This At Home  Ajax Bookmarking, Cross Site Scripting, And Other Web 2 ...
Do Try This At Home Ajax Bookmarking, Cross Site Scripting, And Other Web 2 ...
 
DOES SFO 2016 - Greg Padak - Default to Open
DOES SFO 2016 - Greg Padak - Default to OpenDOES SFO 2016 - Greg Padak - Default to Open
DOES SFO 2016 - Greg Padak - Default to Open
 
Snipmatch - Snippets for the World
Snipmatch - Snippets for the WorldSnipmatch - Snippets for the World
Snipmatch - Snippets for the World
 
RSA SF Conference talk-2009-ht2-401 sallam
RSA SF Conference talk-2009-ht2-401 sallamRSA SF Conference talk-2009-ht2-401 sallam
RSA SF Conference talk-2009-ht2-401 sallam
 
Boston Data Engineering: Kedro Python Framework for Data Science: Overview an...
Boston Data Engineering: Kedro Python Framework for Data Science: Overview an...Boston Data Engineering: Kedro Python Framework for Data Science: Overview an...
Boston Data Engineering: Kedro Python Framework for Data Science: Overview an...
 
From dev to ops and beyond - getting it done
From dev to ops and beyond - getting it doneFrom dev to ops and beyond - getting it done
From dev to ops and beyond - getting it done
 
Modeling on the Web
Modeling on the WebModeling on the Web
Modeling on the Web
 
Modeling on the Web
Modeling on the WebModeling on the Web
Modeling on the Web
 
CLR_via_CSharp_(Jeffrey_Richter_4th_Edition).pdf
CLR_via_CSharp_(Jeffrey_Richter_4th_Edition).pdfCLR_via_CSharp_(Jeffrey_Richter_4th_Edition).pdf
CLR_via_CSharp_(Jeffrey_Richter_4th_Edition).pdf
 
TypeScript - Javascript done right
TypeScript - Javascript done rightTypeScript - Javascript done right
TypeScript - Javascript done right
 
Where developers are challenged, what developers want and where DevEx is going
Where developers are challenged, what developers want and where DevEx is goingWhere developers are challenged, what developers want and where DevEx is going
Where developers are challenged, what developers want and where DevEx is going
 
Star Wars - Coding Unplugged
Star Wars - Coding UnpluggedStar Wars - Coding Unplugged
Star Wars - Coding Unplugged
 
Dev trends 18_q1
Dev trends 18_q1Dev trends 18_q1
Dev trends 18_q1
 
Clean Code Part III - Craftsmanship at SoCal Code Camp
Clean Code Part III - Craftsmanship at SoCal Code CampClean Code Part III - Craftsmanship at SoCal Code Camp
Clean Code Part III - Craftsmanship at SoCal Code Camp
 
Software Carpentry and the Hydrological Sciences @ AGU 2013
Software Carpentry and the Hydrological Sciences @ AGU 2013Software Carpentry and the Hydrological Sciences @ AGU 2013
Software Carpentry and the Hydrological Sciences @ AGU 2013
 
Writing Code for Humans, not Computers
Writing Code for Humans, not ComputersWriting Code for Humans, not Computers
Writing Code for Humans, not Computers
 
Old code doesn't stink - Detroit
Old code doesn't stink - DetroitOld code doesn't stink - Detroit
Old code doesn't stink - Detroit
 
Data science tools of the trade
Data science tools of the tradeData science tools of the trade
Data science tools of the trade
 
Taming Big Balls of Mud with Diligence, Agile Practices, and Hard Work
Taming Big Balls of Mud with Diligence, Agile Practices, and Hard WorkTaming Big Balls of Mud with Diligence, Agile Practices, and Hard Work
Taming Big Balls of Mud with Diligence, Agile Practices, and Hard Work
 
Software Architecture Erosion and Modernization
Software Architecture Erosion and ModernizationSoftware Architecture Erosion and Modernization
Software Architecture Erosion and Modernization
 

More from Marcel Bruch (8)

DWX 2013 Nuremberg
DWX 2013 NurembergDWX 2013 Nuremberg
DWX 2013 Nuremberg
 
2013-06 - Eclipse Kepler Democamps
2013-06 - Eclipse Kepler Democamps2013-06 - Eclipse Kepler Democamps
2013-06 - Eclipse Kepler Democamps
 
Eclipse Democamp Zurich
Eclipse Democamp ZurichEclipse Democamp Zurich
Eclipse Democamp Zurich
 
Eclipse Code Recommenders @ MAJUG 2011
Eclipse Code Recommenders @ MAJUG 2011Eclipse Code Recommenders @ MAJUG 2011
Eclipse Code Recommenders @ MAJUG 2011
 
Eclipse Code Recommenders @ cross-event Deutsche Telekom Developer Garden Tec...
Eclipse Code Recommenders @ cross-event Deutsche Telekom Developer Garden Tec...Eclipse Code Recommenders @ cross-event Deutsche Telekom Developer Garden Tec...
Eclipse Code Recommenders @ cross-event Deutsche Telekom Developer Garden Tec...
 
IDE 2.0 & Research at Eclipse - ECOOP 2011
IDE 2.0 & Research at Eclipse - ECOOP 2011IDE 2.0 & Research at Eclipse - ECOOP 2011
IDE 2.0 & Research at Eclipse - ECOOP 2011
 
Eclipse Indigo DemoCamp Walldorf 2011
Eclipse Indigo DemoCamp Walldorf 2011Eclipse Indigo DemoCamp Walldorf 2011
Eclipse Indigo DemoCamp Walldorf 2011
 
2010 06-24 karlsruher entwicklertag
2010 06-24 karlsruher entwicklertag2010 06-24 karlsruher entwicklertag
2010 06-24 karlsruher entwicklertag
 

Recently uploaded

Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 

Recently uploaded (20)

Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 

Being Amazon for Software Developers - IDE 2.0: Crowdsourcing mal anders #Javaland 2014