How good of developer are you?

R
How good of a
developer are you?
And can we objectively measure this?
Bio
• Roy Wasse
• Co Founder OpenValue
• Dev & Management
• Hiring experience
• Roy van Rijn
• Director OpenValue
• Dev & Management
• Java champion
Is someone is a
‘good’ dev!
• Do you know YAGNI or HATEOS, SOLID?
• Explain balanced binary tree search algo?
• Use 20 best interview questions from
internet
• Apply Open Hiring?
• Proxy variables e.g., CV, experience,
education, references, questionnaire
• Whiteboard coding
• Make (lengthy) assignment
Google Hiring process
• Assessments: You may be asked to do a brief online assessment, like a coding quiz, after
you’ve submitted your resume.
• Short virtual chats: Before diving into more in-depth interviews, you’ll typically have
one or two shorter conversations over phone or video. These will usually be with a
recruiter and then with either the hiring manager or peer on the team, and are designed
to assess key skills you’ll need for the role.
• Project work: We sometimes ask candidates to complete a small project prior to their in-
depth interviews. This could range from prepping a case study to providing writing or
code samples (don’t stress, they’re not that scary and we won’t spring this on you
without warning), and helps us understand how you think and approach problems. We’ll let
you know about any additional materials we’ll need early on.
• Interviews: We get excited about interviewing and take it seriously because, at the risk
of sounding cliché, Google is what Googlers make it. Our process can be rigorous
(typically 3-4 interviews in one day, either over video or in person).
• Can science help us and
how?
• Let’s dive into
literature
• And see how we can
predict of someone will
be a good dev!
Who knows what
works?!!
Use of Aptitude tests
• Measure if someone is dispositioned well to excel
• Popular in the 1970s (e.g., Alspaugh, 1972; Mazlack,
1980)
• due to lack of good results from these tests not used
much anymore (Bornat, Dehnadi, & Simon, 2008; Curtis,
1991; Mayer & Stalnaker, 1968)
• Also: in a sample of over 3,500 students, no
incremental validity was found for specialized aptitude
tests for programmers over the more general aptitude
tests used by the United States Air Force (Besetsny,
Ree, & Earles, 1993)
Role of
education
• Large meta study (Roth,
BeVier, Switzer, &
Schippmann, 1996)
reported a correlation of
r = 0.16
• Shortly after graduation,
correlation between
grades and job
performance much higher
• 1 year, r = 0.23,
n = 1,288
• 6 years, r = 0.05,
n = 866.
Role of
experience
• Studies show positive effect
of having programming
experience (Agarwal, Sinha &
Tanniru, 1996; Arisholm &
Sjøberg, 2004)
• Other studies have reported
no effect of experience
beyond the first few years
(Jeffery & Lawrence, 1979) or
no effect of experience
(Jørgensen, 1995; Wohlin,
2002, 2004)
Role of
Programming
knowledge
• Central predictor of skill is
knowledge (Chi et al., 1988)
• Used in Java certification
• But…software development is a
skill
Acquired by practice
What is skill?
• Ability (Ferguson, 1956):
“An ability is a trait
defined by what an
individual can do”
• “Skill is specialized type
of ability, one that
improves with practice and
is well adjusted, well
organized and goal
oriented” (Fitts & Posner,
1967)
Model of skill acquisition
• “A Five-Stage Model of the Mental Activities
Involved in Directed Skill Acquisition”,
(Dreyfus & Dreyfus, 1980)
• Flow is at level 5
• Also think of driving / playing chess
It’s all about skill?
• Skill cannot by equated with performance
• “the individual performed well because of his
high level of skill” is a generalization
(Messick, 1994)
• 8 major components of job performance research
show 3 direct determinants of performance on
the job: knowledge, skill and motivation
(Campbell, McCloy, Oppler & Sager, 1993)
Skill is just one..?
Campbell’s work performance framework proposed eight work performance
dimensions:
1. job-specific task proficiency <= skill
2. non–job-specific task proficiency
3. written and oral communications
4. demonstrating effort
5. maintaining personal discipline
6. facilitating peer and team performance
7. supervision
8. management and administration.
According to Campbell, these eight dimensions are sufficient to describe
the latent structure of performance at a general level. However, he also
noted that the eight factors can have different patterns of subdimensions,
and their content and salience can vary across jobs.
Technical skill is the most important one
(McGill, 2008)
Skill & project success
emphasizing low price when selecting software providers in bidding
rounds increases the likelihood project will fail.” (Jørgensen 2011)
Tested by analyzing a dataset of 4,791,067 bids for 785,326 small-
scale projects
Clients emphasizing a low price selected providers with lower skill,
resulted in 9% increase in failure rate
Pair experts for extra speed
• The benefits of pair programming has been studied
from the perspective of forming the pair based on
different levels of expertise (Lui & Chan, 2006)
• …or seniority (Arisholm, Gallis, Dybå, & Sjøberg,
2007).
• A systematic literature review on pair programming
found that, among students, this practice was most
beneficial when the pair was comprised of
individuals with a similar level of programming
skill (Salleh, Mendes, & Grundy, 2011).
What about
teamwork
• Team performance is more
complex to understand
than individual
performance (see, e.g.,
Baker & Salas, 1992;
Volmer, 2006),
individual skill or
expertise is
nevertheless a central
component in team
performance (Land, Wong,
& Jeffery, 2003).
Importance of developers
• The claim of substantial programming performance
differences on success is confirmed by additional
data, reviews & experiments (Curtis, 1981;
DeMarco & Lister, 1985, 1999; Trendowicz & Munch,
2009; Prechelt, 1999a)
• Variability in individual performance more
important than technology or methods used to
increase productivity
• In the book “Software Economics”, Boehm (1981)
reported that the “people factor” was the largest
of all investigated factors in the success of
software projects and therefore concluded that
developer attributes are by far the best
opportunity for improving software productivity.
So common sense wins?
• A software developer is someone who usually
holds “a bachelor’s degree in computer science
and strong computer programming skills” (US
Bureau of Labor Statistics)
• So let’s hire based on skill level!!
Deep dive
into skills
• And…how to objectively
measure coding skills
• Soft skills
How good of developer are you?
Research overview
• Relations between effort estimates, skill indicators, and measured
programming skill. Magne Jørgensen, Gunnar R. Bergersen and Knut
Liestøl (2021)
• Measuring Programming Skill: Construction and Validation of an
Instrument for Evaluating Java Developers. Gunnar R. Bergersen,
PhD thesis (2015)
• Construction and validation of an instrument for measuring
programming skill. Gunnar R. Bergersen, Dag I. K. Sjøberg, and
Tore Dybå (2014)
• Evaluating methods and technologies in software engineering with
respect to developers’ skill level. Gunnar R. Bergersen and Dag I.
K. Sjøberg (2012)
• Inferring skill from tests of programming performance: combining
time and quality. Gunnar R. Bergersen, Jo E. Hannay, Dag I. K.
Sjøberg, Tore Dybå, and Amela Karahasanovic (2011)
• Programming skill, knowledge, and working memory among
professional developers from an investment theory perspective.
Gunnar R. Bergersen and Jan-Eric Gustafsson (2011)
How to measure skill?
• Home work assignment (better rotate those)
• Whiteboard coding (under pressure)
• Online questionaires (assuming correlation
between real world coding)
• All are subjective
• And probably you want to get it right!
Measure via self
assessment
• Ratings of self may work
better when people compare
themselves relative to
each other (people they
know) rather than when
providing absolute ratings
(Kruger and Dunning (1999)
Source:
wikipedia
Where can we see skill at work?
• Research started in 50’s with punch card
operators traits (McNamara & Hughes, 1955)
• 60’s use of test in selection researched (Perry
& Cantley, 1965)
• Behavorial study of devs (Shneiderman, 1976)
• Theories concerning the comprehension of
computer programs (Brooks, 1983)
Task performance is key
• >20 studies about job performance assessed
• Almost all frameworks mentioned task
performance as an important dimension of
individual work performance.
Predict skill
• Study of novice LISP
programmers (Anderson &
Jeffries, 1985) found that
“the best predictor of
individual subject
differences in errors on
problems that involved one
LISP concept was the number
of errors on other problems
that involved different
concepts” (Anderson, 1987,
p. 203).
How to put this into a system
• Time (Bergersen, 2011)
• Quality (Ebert et. al. 2005)
• Process improvement (Dybå, 2000)
Create a measurement model & test the model on
new data
(Bergersen et al., 2014)
Rasch model
• More than 50 years ago, Rasch (1960) used tests
to study the reading performance of students.
• Rasch models have become a practical way to
measure psychological abilities
Task construction
1.Picked existing tasks from literature
2.Reanalyzed data sets to combine time & quality
3.Large control group with 255 developers from 9
countries used to score tasks
Detailed analytics of skills and
meaningful comparisons with empirically validated norm groups_
Technebies / GrepS
• Collection of tasks
• VM in the cloud (Linux + IntelliJ / Eclipse
• Interchangeable
Building a new standard to measure & analyze
software engineering skills_
DEMO
Foojay community
• Over 1000 members
• 2 news articles every week day
• Podcast
• Conference information
• Tech questions
• And the certification initiative!
How good of developer are you?
Foojay certified developer
• Multiple sessions with champions and 80+
community members
• Defined what should be tested and how
• Universal test
• Never do a test again!
• Or actually do test again to prove your progress!
• Current status = beta!
• Want a free test, let me know
Recap
• Coding is mostly about skills
• Research shows how to measure skills
• Let’s base Java certification this!
• Questions?
1 de 37

Recomendados

DMTM Lecture 15 Clustering evaluation por
DMTM Lecture 15 Clustering evaluationDMTM Lecture 15 Clustering evaluation
DMTM Lecture 15 Clustering evaluationPier Luca Lanzi
1.6K visualizações43 slides
MongoDB Schema Design: Four Real-World Examples por
MongoDB Schema Design: Four Real-World ExamplesMongoDB Schema Design: Four Real-World Examples
MongoDB Schema Design: Four Real-World ExamplesLewis Lin 🦊
5.2K visualizações51 slides
Spectral clustering Tutorial por
Spectral clustering TutorialSpectral clustering Tutorial
Spectral clustering TutorialZitao Liu
8.7K visualizações64 slides
MongoDB Schema Design (Event: An Evening with MongoDB Houston 3/11/15) por
MongoDB Schema Design (Event: An Evening with MongoDB Houston 3/11/15)MongoDB Schema Design (Event: An Evening with MongoDB Houston 3/11/15)
MongoDB Schema Design (Event: An Evening with MongoDB Houston 3/11/15)MongoDB
5.2K visualizações43 slides
Machine Learning Clustering por
Machine Learning ClusteringMachine Learning Clustering
Machine Learning ClusteringRupak Roy
130 visualizações16 slides
PR-297: Training data-efficient image transformers & distillation through att... por
PR-297: Training data-efficient image transformers & distillation through att...PR-297: Training data-efficient image transformers & distillation through att...
PR-297: Training data-efficient image transformers & distillation through att...Jinwon Lee
1K visualizações33 slides

Mais conteúdo relacionado

Mais procurados

Logistic regression: topological and geometric considerations por
Logistic regression: topological and geometric considerationsLogistic regression: topological and geometric considerations
Logistic regression: topological and geometric considerationsColleen Farrelly
765 visualizações12 slides
Introduction to mongodb por
Introduction to mongodbIntroduction to mongodb
Introduction to mongodbneela madheswari
557 visualizações64 slides
Big Data Analytics : A Social Network Approach por
Big Data Analytics : A Social Network ApproachBig Data Analytics : A Social Network Approach
Big Data Analytics : A Social Network ApproachAndry Alamsyah
12.1K visualizações47 slides
Nearest Neighbor Algorithm Zaffar Ahmed por
Nearest Neighbor Algorithm  Zaffar AhmedNearest Neighbor Algorithm  Zaffar Ahmed
Nearest Neighbor Algorithm Zaffar AhmedZaffar Ahmed Shaikh
3.1K visualizações13 slides
Deploying Enterprise Scale Deep Learning in Actuarial Modeling at Nationwide por
Deploying Enterprise Scale Deep Learning in Actuarial Modeling at NationwideDeploying Enterprise Scale Deep Learning in Actuarial Modeling at Nationwide
Deploying Enterprise Scale Deep Learning in Actuarial Modeling at NationwideDatabricks
648 visualizações24 slides
Entity embeddings for categorical data por
Entity embeddings for categorical dataEntity embeddings for categorical data
Entity embeddings for categorical dataPaul Skeie
188 visualizações35 slides

Mais procurados(20)

Logistic regression: topological and geometric considerations por Colleen Farrelly
Logistic regression: topological and geometric considerationsLogistic regression: topological and geometric considerations
Logistic regression: topological and geometric considerations
Colleen Farrelly765 visualizações
Introduction to mongodb por neela madheswari
Introduction to mongodbIntroduction to mongodb
Introduction to mongodb
neela madheswari557 visualizações
Big Data Analytics : A Social Network Approach por Andry Alamsyah
Big Data Analytics : A Social Network ApproachBig Data Analytics : A Social Network Approach
Big Data Analytics : A Social Network Approach
Andry Alamsyah12.1K visualizações
Nearest Neighbor Algorithm Zaffar Ahmed por Zaffar Ahmed Shaikh
Nearest Neighbor Algorithm  Zaffar AhmedNearest Neighbor Algorithm  Zaffar Ahmed
Nearest Neighbor Algorithm Zaffar Ahmed
Zaffar Ahmed Shaikh3.1K visualizações
Deploying Enterprise Scale Deep Learning in Actuarial Modeling at Nationwide por Databricks
Deploying Enterprise Scale Deep Learning in Actuarial Modeling at NationwideDeploying Enterprise Scale Deep Learning in Actuarial Modeling at Nationwide
Deploying Enterprise Scale Deep Learning in Actuarial Modeling at Nationwide
Databricks648 visualizações
Entity embeddings for categorical data por Paul Skeie
Entity embeddings for categorical dataEntity embeddings for categorical data
Entity embeddings for categorical data
Paul Skeie188 visualizações
Building Microservices: Designing Fine-Grained System by Sam Newman por Ismail Habib Muhammad
Building Microservices: Designing Fine-Grained System by Sam NewmanBuilding Microservices: Designing Fine-Grained System by Sam Newman
Building Microservices: Designing Fine-Grained System by Sam Newman
Ismail Habib Muhammad2.2K visualizações
Pole Investigations por Neo4j
Pole InvestigationsPole Investigations
Pole Investigations
Neo4j361 visualizações
MongoDB Fundamentals por MongoDB
MongoDB FundamentalsMongoDB Fundamentals
MongoDB Fundamentals
MongoDB1.8K visualizações
AstraZeneca - The promise of graphs & graph-based learning in drug discovery por Neo4j
AstraZeneca - The promise of graphs & graph-based learning in drug discoveryAstraZeneca - The promise of graphs & graph-based learning in drug discovery
AstraZeneca - The promise of graphs & graph-based learning in drug discovery
Neo4j258 visualizações
MongoDB por Steven Francia
MongoDBMongoDB
MongoDB
Steven Francia3.2K visualizações
Lecture 6: Infrastructure & Tooling (Full Stack Deep Learning - Spring 2021) por Sergey Karayev
Lecture 6: Infrastructure & Tooling (Full Stack Deep Learning - Spring 2021)Lecture 6: Infrastructure & Tooling (Full Stack Deep Learning - Spring 2021)
Lecture 6: Infrastructure & Tooling (Full Stack Deep Learning - Spring 2021)
Sergey Karayev45.8K visualizações
Introduction to MongoDB por NodeXperts
Introduction to MongoDBIntroduction to MongoDB
Introduction to MongoDB
NodeXperts396 visualizações
How Graph Algorithms Answer your Business Questions in Banking and Beyond por Neo4j
How Graph Algorithms Answer your Business Questions in Banking and BeyondHow Graph Algorithms Answer your Business Questions in Banking and Beyond
How Graph Algorithms Answer your Business Questions in Banking and Beyond
Neo4j1K visualizações
Big Data vs. Small Data...what's the difference? por Anna Kuhn
Big Data vs. Small Data...what's the difference?Big Data vs. Small Data...what's the difference?
Big Data vs. Small Data...what's the difference?
Anna Kuhn4.2K visualizações
Lecture 1 graphical models por Duy Tung Pham
Lecture 1  graphical modelsLecture 1  graphical models
Lecture 1 graphical models
Duy Tung Pham4.1K visualizações
Efficient Neural Architecture Search via Parameter Sharing por Jinwon Lee
Efficient Neural Architecture Search via Parameter SharingEfficient Neural Architecture Search via Parameter Sharing
Efficient Neural Architecture Search via Parameter Sharing
Jinwon Lee2.3K visualizações
Understand Manifolds using MATLAB por Pranav Challa
Understand Manifolds using MATLAB Understand Manifolds using MATLAB
Understand Manifolds using MATLAB
Pranav Challa2.7K visualizações
1.6.data preprocessing por Krish_ver2
1.6.data preprocessing1.6.data preprocessing
1.6.data preprocessing
Krish_ver21.3K visualizações
Persistencia-NoSQL-y-MongoDB-v-2018.02-Prof.-L.-Straccia.pptx por AlbertoBarronMiranda1
Persistencia-NoSQL-y-MongoDB-v-2018.02-Prof.-L.-Straccia.pptxPersistencia-NoSQL-y-MongoDB-v-2018.02-Prof.-L.-Straccia.pptx
Persistencia-NoSQL-y-MongoDB-v-2018.02-Prof.-L.-Straccia.pptx
AlbertoBarronMiranda169 visualizações

Similar a How good of developer are you?

Agile Education por
Agile EducationAgile Education
Agile EducationDUONG Trong Tan
2.4K visualizações27 slides
Prezentation por
PrezentationPrezentation
Prezentationkhush bakhat
256 visualizações22 slides
Job Interviews made essay.pptx por
Job Interviews made essay.pptxJob Interviews made essay.pptx
Job Interviews made essay.pptxTrainer Rajveer Yadav
6 visualizações21 slides
Web-Based Self- and Peer-Assessment of Teachers’ Educational Technology Compe... por
Web-Based Self- and Peer-Assessment of Teachers’ Educational Technology Compe...Web-Based Self- and Peer-Assessment of Teachers’ Educational Technology Compe...
Web-Based Self- and Peer-Assessment of Teachers’ Educational Technology Compe...Hans Põldoja
6.1K visualizações37 slides
Thesis+of+zohreh+sharafi.ppt por
Thesis+of+zohreh+sharafi.pptThesis+of+zohreh+sharafi.ppt
Thesis+of+zohreh+sharafi.pptPtidej Team
46 visualizações70 slides
Test specifications and designs session 4 por
Test specifications and designs  session 4Test specifications and designs  session 4
Test specifications and designs session 4Amir Hamid Forough Ameri
416 visualizações35 slides

Similar a How good of developer are you?(20)

Agile Education por DUONG Trong Tan
Agile EducationAgile Education
Agile Education
DUONG Trong Tan2.4K visualizações
Prezentation por khush bakhat
PrezentationPrezentation
Prezentation
khush bakhat256 visualizações
Web-Based Self- and Peer-Assessment of Teachers’ Educational Technology Compe... por Hans Põldoja
Web-Based Self- and Peer-Assessment of Teachers’ Educational Technology Compe...Web-Based Self- and Peer-Assessment of Teachers’ Educational Technology Compe...
Web-Based Self- and Peer-Assessment of Teachers’ Educational Technology Compe...
Hans Põldoja6.1K visualizações
Thesis+of+zohreh+sharafi.ppt por Ptidej Team
Thesis+of+zohreh+sharafi.pptThesis+of+zohreh+sharafi.ppt
Thesis+of+zohreh+sharafi.ppt
Ptidej Team46 visualizações
Test specifications and designs session 4 por Amir Hamid Forough Ameri
Test specifications and designs  session 4Test specifications and designs  session 4
Test specifications and designs session 4
Amir Hamid Forough Ameri416 visualizações
Test specifications and designs por ahfameri
Test specifications and designs  Test specifications and designs
Test specifications and designs
ahfameri11.6K visualizações
Agile Software Development.ppt por abdulwehab2
Agile Software Development.pptAgile Software Development.ppt
Agile Software Development.ppt
abdulwehab24 visualizações
DBR (Design-Based Research) in mobile learning-Mlearn2013 Doha A_Palalas C_G... por Agnieszka (Aga) Palalas, Ed.D.
DBR (Design-Based Research) in mobile learning-Mlearn2013 Doha  A_Palalas C_G...DBR (Design-Based Research) in mobile learning-Mlearn2013 Doha  A_Palalas C_G...
DBR (Design-Based Research) in mobile learning-Mlearn2013 Doha A_Palalas C_G...
Agnieszka (Aga) Palalas, Ed.D.1.1K visualizações
UDL and Assessment for Assessment and Learning por AffectiveLearningLabs
UDL and Assessment for Assessment and LearningUDL and Assessment for Assessment and Learning
UDL and Assessment for Assessment and Learning
AffectiveLearningLabs2.6K visualizações
Agile software development por Hemangi Talele
Agile software developmentAgile software development
Agile software development
Hemangi Talele368 visualizações
History Class - For software testers por Joris Meerts
History Class - For software testersHistory Class - For software testers
History Class - For software testers
Joris Meerts1.6K visualizações
Mehrnoosh vahdat workshop-data sharing 2014 por MehrnooshV
Mehrnoosh vahdat  workshop-data sharing 2014Mehrnoosh vahdat  workshop-data sharing 2014
Mehrnoosh vahdat workshop-data sharing 2014
MehrnooshV567 visualizações
Creating Rubrics por Roberta Niche
Creating RubricsCreating Rubrics
Creating Rubrics
Roberta Niche6.9K visualizações
Introduction of Software Engineering por MuhammadTalha436
Introduction of Software EngineeringIntroduction of Software Engineering
Introduction of Software Engineering
MuhammadTalha43642 visualizações
Isd basics stc por Robert McWatt
Isd basics stcIsd basics stc
Isd basics stc
Robert McWatt416 visualizações
Usability Testing for Qualitative Researchers - QRCA NYC Chapter event por Kay Aubrey
Usability Testing for Qualitative Researchers - QRCA NYC Chapter eventUsability Testing for Qualitative Researchers - QRCA NYC Chapter event
Usability Testing for Qualitative Researchers - QRCA NYC Chapter event
Kay Aubrey3.4K visualizações
HUS 201 Chapter Eleven por BrittanyAga1
HUS 201 Chapter ElevenHUS 201 Chapter Eleven
HUS 201 Chapter Eleven
BrittanyAga1132 visualizações
Tomáš Mikolov - Distributed Representations for NLP por Machine Learning Prague
Tomáš Mikolov - Distributed Representations for NLPTomáš Mikolov - Distributed Representations for NLP
Tomáš Mikolov - Distributed Representations for NLP
Machine Learning Prague3.5K visualizações

Mais de Roy Wasse

Software development in the modern age por
Software development in the modern ageSoftware development in the modern age
Software development in the modern ageRoy Wasse
287 visualizações38 slides
Cool crypto concepts JavaZone por
Cool crypto concepts JavaZoneCool crypto concepts JavaZone
Cool crypto concepts JavaZoneRoy Wasse
90 visualizações46 slides
Cool crypto concepts ABN AMRO por
Cool crypto concepts ABN AMROCool crypto concepts ABN AMRO
Cool crypto concepts ABN AMRORoy Wasse
127 visualizações46 slides
Cool Crypto Concepts CodeOne SFO por
Cool Crypto Concepts CodeOne SFOCool Crypto Concepts CodeOne SFO
Cool Crypto Concepts CodeOne SFORoy Wasse
93 visualizações48 slides
Blockchain talk isense 30-5-2018 por
Blockchain talk isense 30-5-2018 Blockchain talk isense 30-5-2018
Blockchain talk isense 30-5-2018 Roy Wasse
96 visualizações52 slides
Crypto talk OpenValue meetup 20-3-18 por
Crypto talk OpenValue meetup 20-3-18Crypto talk OpenValue meetup 20-3-18
Crypto talk OpenValue meetup 20-3-18Roy Wasse
387 visualizações45 slides

Mais de Roy Wasse(7)

Software development in the modern age por Roy Wasse
Software development in the modern ageSoftware development in the modern age
Software development in the modern age
Roy Wasse287 visualizações
Cool crypto concepts JavaZone por Roy Wasse
Cool crypto concepts JavaZoneCool crypto concepts JavaZone
Cool crypto concepts JavaZone
Roy Wasse90 visualizações
Cool crypto concepts ABN AMRO por Roy Wasse
Cool crypto concepts ABN AMROCool crypto concepts ABN AMRO
Cool crypto concepts ABN AMRO
Roy Wasse127 visualizações
Cool Crypto Concepts CodeOne SFO por Roy Wasse
Cool Crypto Concepts CodeOne SFOCool Crypto Concepts CodeOne SFO
Cool Crypto Concepts CodeOne SFO
Roy Wasse93 visualizações
Blockchain talk isense 30-5-2018 por Roy Wasse
Blockchain talk isense 30-5-2018 Blockchain talk isense 30-5-2018
Blockchain talk isense 30-5-2018
Roy Wasse96 visualizações
Crypto talk OpenValue meetup 20-3-18 por Roy Wasse
Crypto talk OpenValue meetup 20-3-18Crypto talk OpenValue meetup 20-3-18
Crypto talk OpenValue meetup 20-3-18
Roy Wasse387 visualizações
Blockchain talk open value meetup 31-8-17 por Roy Wasse
Blockchain talk open value meetup 31-8-17Blockchain talk open value meetup 31-8-17
Blockchain talk open value meetup 31-8-17
Roy Wasse476 visualizações

Último

FIMA 2023 Neo4j & FS - Entity Resolution.pptx por
FIMA 2023 Neo4j & FS - Entity Resolution.pptxFIMA 2023 Neo4j & FS - Entity Resolution.pptx
FIMA 2023 Neo4j & FS - Entity Resolution.pptxNeo4j
6 visualizações26 slides
DSD-INT 2023 Machine learning in hydraulic engineering - Exploring unseen fut... por
DSD-INT 2023 Machine learning in hydraulic engineering - Exploring unseen fut...DSD-INT 2023 Machine learning in hydraulic engineering - Exploring unseen fut...
DSD-INT 2023 Machine learning in hydraulic engineering - Exploring unseen fut...Deltares
7 visualizações28 slides
SAP FOR TYRE INDUSTRY.pdf por
SAP FOR TYRE INDUSTRY.pdfSAP FOR TYRE INDUSTRY.pdf
SAP FOR TYRE INDUSTRY.pdfVirendra Rai, PMP
24 visualizações3 slides
DSD-INT 2023 Salt intrusion Modelling of the Lauwersmeer, towards a measureme... por
DSD-INT 2023 Salt intrusion Modelling of the Lauwersmeer, towards a measureme...DSD-INT 2023 Salt intrusion Modelling of the Lauwersmeer, towards a measureme...
DSD-INT 2023 Salt intrusion Modelling of the Lauwersmeer, towards a measureme...Deltares
5 visualizações28 slides
Myths and Facts About Hospice Care: Busting Common Misconceptions por
Myths and Facts About Hospice Care: Busting Common MisconceptionsMyths and Facts About Hospice Care: Busting Common Misconceptions
Myths and Facts About Hospice Care: Busting Common MisconceptionsCare Coordinations
5 visualizações1 slide
AI and Ml presentation .pptx por
AI and Ml presentation .pptxAI and Ml presentation .pptx
AI and Ml presentation .pptxFayazAli87
11 visualizações15 slides

Último(20)

FIMA 2023 Neo4j & FS - Entity Resolution.pptx por Neo4j
FIMA 2023 Neo4j & FS - Entity Resolution.pptxFIMA 2023 Neo4j & FS - Entity Resolution.pptx
FIMA 2023 Neo4j & FS - Entity Resolution.pptx
Neo4j6 visualizações
DSD-INT 2023 Machine learning in hydraulic engineering - Exploring unseen fut... por Deltares
DSD-INT 2023 Machine learning in hydraulic engineering - Exploring unseen fut...DSD-INT 2023 Machine learning in hydraulic engineering - Exploring unseen fut...
DSD-INT 2023 Machine learning in hydraulic engineering - Exploring unseen fut...
Deltares7 visualizações
SAP FOR TYRE INDUSTRY.pdf por Virendra Rai, PMP
SAP FOR TYRE INDUSTRY.pdfSAP FOR TYRE INDUSTRY.pdf
SAP FOR TYRE INDUSTRY.pdf
Virendra Rai, PMP24 visualizações
DSD-INT 2023 Salt intrusion Modelling of the Lauwersmeer, towards a measureme... por Deltares
DSD-INT 2023 Salt intrusion Modelling of the Lauwersmeer, towards a measureme...DSD-INT 2023 Salt intrusion Modelling of the Lauwersmeer, towards a measureme...
DSD-INT 2023 Salt intrusion Modelling of the Lauwersmeer, towards a measureme...
Deltares5 visualizações
Myths and Facts About Hospice Care: Busting Common Misconceptions por Care Coordinations
Myths and Facts About Hospice Care: Busting Common MisconceptionsMyths and Facts About Hospice Care: Busting Common Misconceptions
Myths and Facts About Hospice Care: Busting Common Misconceptions
Care Coordinations5 visualizações
AI and Ml presentation .pptx por FayazAli87
AI and Ml presentation .pptxAI and Ml presentation .pptx
AI and Ml presentation .pptx
FayazAli8711 visualizações
Advanced API Mocking Techniques por Dimpy Adhikary
Advanced API Mocking TechniquesAdvanced API Mocking Techniques
Advanced API Mocking Techniques
Dimpy Adhikary19 visualizações
Unleash The Monkeys por Jacob Duijzer
Unleash The MonkeysUnleash The Monkeys
Unleash The Monkeys
Jacob Duijzer7 visualizações
DSD-INT 2023 Wave-Current Interaction at Montrose Tidal Inlet System and Its ... por Deltares
DSD-INT 2023 Wave-Current Interaction at Montrose Tidal Inlet System and Its ...DSD-INT 2023 Wave-Current Interaction at Montrose Tidal Inlet System and Its ...
DSD-INT 2023 Wave-Current Interaction at Montrose Tidal Inlet System and Its ...
Deltares10 visualizações
Unmasking the Dark Art of Vectored Exception Handling: Bypassing XDR and EDR ... por Donato Onofri
Unmasking the Dark Art of Vectored Exception Handling: Bypassing XDR and EDR ...Unmasking the Dark Art of Vectored Exception Handling: Bypassing XDR and EDR ...
Unmasking the Dark Art of Vectored Exception Handling: Bypassing XDR and EDR ...
Donato Onofri795 visualizações
DSD-INT 2023 European Digital Twin Ocean and Delft3D FM - Dols por Deltares
DSD-INT 2023 European Digital Twin Ocean and Delft3D FM - DolsDSD-INT 2023 European Digital Twin Ocean and Delft3D FM - Dols
DSD-INT 2023 European Digital Twin Ocean and Delft3D FM - Dols
Deltares7 visualizações
HarshithAkkapelli_Presentation.pdf por harshithakkapelli
HarshithAkkapelli_Presentation.pdfHarshithAkkapelli_Presentation.pdf
HarshithAkkapelli_Presentation.pdf
harshithakkapelli11 visualizações
Team Transformation Tactics for Holistic Testing and Quality (Japan Symposium... por Lisi Hocke
Team Transformation Tactics for Holistic Testing and Quality (Japan Symposium...Team Transformation Tactics for Holistic Testing and Quality (Japan Symposium...
Team Transformation Tactics for Holistic Testing and Quality (Japan Symposium...
Lisi Hocke28 visualizações
DSD-INT 2023 Delft3D FM Suite 2024.01 1D2D - Beta testing programme - Geertsema por Deltares
DSD-INT 2023 Delft3D FM Suite 2024.01 1D2D - Beta testing programme - GeertsemaDSD-INT 2023 Delft3D FM Suite 2024.01 1D2D - Beta testing programme - Geertsema
DSD-INT 2023 Delft3D FM Suite 2024.01 1D2D - Beta testing programme - Geertsema
Deltares17 visualizações
DSD-INT 2023 Thermobaricity in 3D DCSM-FM - taking pressure into account in t... por Deltares
DSD-INT 2023 Thermobaricity in 3D DCSM-FM - taking pressure into account in t...DSD-INT 2023 Thermobaricity in 3D DCSM-FM - taking pressure into account in t...
DSD-INT 2023 Thermobaricity in 3D DCSM-FM - taking pressure into account in t...
Deltares9 visualizações
360 graden fabriek por info33492
360 graden fabriek360 graden fabriek
360 graden fabriek
info3349237 visualizações
Copilot Prompting Toolkit_All Resources.pdf por Riccardo Zamana
Copilot Prompting Toolkit_All Resources.pdfCopilot Prompting Toolkit_All Resources.pdf
Copilot Prompting Toolkit_All Resources.pdf
Riccardo Zamana8 visualizações
SAP FOR CONTRACT MANUFACTURING.pdf por Virendra Rai, PMP
SAP FOR CONTRACT MANUFACTURING.pdfSAP FOR CONTRACT MANUFACTURING.pdf
SAP FOR CONTRACT MANUFACTURING.pdf
Virendra Rai, PMP11 visualizações
The Era of Large Language Models.pptx por AbdulVahedShaik
The Era of Large Language Models.pptxThe Era of Large Language Models.pptx
The Era of Large Language Models.pptx
AbdulVahedShaik5 visualizações
DSD-INT 2023 Process-based modelling of salt marsh development coupling Delft... por Deltares
DSD-INT 2023 Process-based modelling of salt marsh development coupling Delft...DSD-INT 2023 Process-based modelling of salt marsh development coupling Delft...
DSD-INT 2023 Process-based modelling of salt marsh development coupling Delft...
Deltares7 visualizações

How good of developer are you?

  • 1. How good of a developer are you? And can we objectively measure this?
  • 2. Bio • Roy Wasse • Co Founder OpenValue • Dev & Management • Hiring experience • Roy van Rijn • Director OpenValue • Dev & Management • Java champion
  • 3. Is someone is a ‘good’ dev! • Do you know YAGNI or HATEOS, SOLID? • Explain balanced binary tree search algo? • Use 20 best interview questions from internet • Apply Open Hiring? • Proxy variables e.g., CV, experience, education, references, questionnaire • Whiteboard coding • Make (lengthy) assignment
  • 4. Google Hiring process • Assessments: You may be asked to do a brief online assessment, like a coding quiz, after you’ve submitted your resume. • Short virtual chats: Before diving into more in-depth interviews, you’ll typically have one or two shorter conversations over phone or video. These will usually be with a recruiter and then with either the hiring manager or peer on the team, and are designed to assess key skills you’ll need for the role. • Project work: We sometimes ask candidates to complete a small project prior to their in- depth interviews. This could range from prepping a case study to providing writing or code samples (don’t stress, they’re not that scary and we won’t spring this on you without warning), and helps us understand how you think and approach problems. We’ll let you know about any additional materials we’ll need early on. • Interviews: We get excited about interviewing and take it seriously because, at the risk of sounding cliché, Google is what Googlers make it. Our process can be rigorous (typically 3-4 interviews in one day, either over video or in person).
  • 5. • Can science help us and how? • Let’s dive into literature • And see how we can predict of someone will be a good dev! Who knows what works?!!
  • 6. Use of Aptitude tests • Measure if someone is dispositioned well to excel • Popular in the 1970s (e.g., Alspaugh, 1972; Mazlack, 1980) • due to lack of good results from these tests not used much anymore (Bornat, Dehnadi, & Simon, 2008; Curtis, 1991; Mayer & Stalnaker, 1968) • Also: in a sample of over 3,500 students, no incremental validity was found for specialized aptitude tests for programmers over the more general aptitude tests used by the United States Air Force (Besetsny, Ree, & Earles, 1993)
  • 7. Role of education • Large meta study (Roth, BeVier, Switzer, & Schippmann, 1996) reported a correlation of r = 0.16 • Shortly after graduation, correlation between grades and job performance much higher • 1 year, r = 0.23, n = 1,288 • 6 years, r = 0.05, n = 866.
  • 8. Role of experience • Studies show positive effect of having programming experience (Agarwal, Sinha & Tanniru, 1996; Arisholm & Sjøberg, 2004) • Other studies have reported no effect of experience beyond the first few years (Jeffery & Lawrence, 1979) or no effect of experience (Jørgensen, 1995; Wohlin, 2002, 2004)
  • 9. Role of Programming knowledge • Central predictor of skill is knowledge (Chi et al., 1988) • Used in Java certification • But…software development is a skill Acquired by practice
  • 10. What is skill? • Ability (Ferguson, 1956): “An ability is a trait defined by what an individual can do” • “Skill is specialized type of ability, one that improves with practice and is well adjusted, well organized and goal oriented” (Fitts & Posner, 1967)
  • 11. Model of skill acquisition • “A Five-Stage Model of the Mental Activities Involved in Directed Skill Acquisition”, (Dreyfus & Dreyfus, 1980) • Flow is at level 5 • Also think of driving / playing chess
  • 12. It’s all about skill? • Skill cannot by equated with performance • “the individual performed well because of his high level of skill” is a generalization (Messick, 1994) • 8 major components of job performance research show 3 direct determinants of performance on the job: knowledge, skill and motivation (Campbell, McCloy, Oppler & Sager, 1993)
  • 13. Skill is just one..? Campbell’s work performance framework proposed eight work performance dimensions: 1. job-specific task proficiency <= skill 2. non–job-specific task proficiency 3. written and oral communications 4. demonstrating effort 5. maintaining personal discipline 6. facilitating peer and team performance 7. supervision 8. management and administration. According to Campbell, these eight dimensions are sufficient to describe the latent structure of performance at a general level. However, he also noted that the eight factors can have different patterns of subdimensions, and their content and salience can vary across jobs.
  • 14. Technical skill is the most important one (McGill, 2008)
  • 15. Skill & project success emphasizing low price when selecting software providers in bidding rounds increases the likelihood project will fail.” (Jørgensen 2011) Tested by analyzing a dataset of 4,791,067 bids for 785,326 small- scale projects Clients emphasizing a low price selected providers with lower skill, resulted in 9% increase in failure rate
  • 16. Pair experts for extra speed • The benefits of pair programming has been studied from the perspective of forming the pair based on different levels of expertise (Lui & Chan, 2006) • …or seniority (Arisholm, Gallis, Dybå, & Sjøberg, 2007). • A systematic literature review on pair programming found that, among students, this practice was most beneficial when the pair was comprised of individuals with a similar level of programming skill (Salleh, Mendes, & Grundy, 2011).
  • 17. What about teamwork • Team performance is more complex to understand than individual performance (see, e.g., Baker & Salas, 1992; Volmer, 2006), individual skill or expertise is nevertheless a central component in team performance (Land, Wong, & Jeffery, 2003).
  • 18. Importance of developers • The claim of substantial programming performance differences on success is confirmed by additional data, reviews & experiments (Curtis, 1981; DeMarco & Lister, 1985, 1999; Trendowicz & Munch, 2009; Prechelt, 1999a) • Variability in individual performance more important than technology or methods used to increase productivity • In the book “Software Economics”, Boehm (1981) reported that the “people factor” was the largest of all investigated factors in the success of software projects and therefore concluded that developer attributes are by far the best opportunity for improving software productivity.
  • 19. So common sense wins? • A software developer is someone who usually holds “a bachelor’s degree in computer science and strong computer programming skills” (US Bureau of Labor Statistics) • So let’s hire based on skill level!!
  • 20. Deep dive into skills • And…how to objectively measure coding skills • Soft skills
  • 22. Research overview • Relations between effort estimates, skill indicators, and measured programming skill. Magne Jørgensen, Gunnar R. Bergersen and Knut Liestøl (2021) • Measuring Programming Skill: Construction and Validation of an Instrument for Evaluating Java Developers. Gunnar R. Bergersen, PhD thesis (2015) • Construction and validation of an instrument for measuring programming skill. Gunnar R. Bergersen, Dag I. K. Sjøberg, and Tore Dybå (2014) • Evaluating methods and technologies in software engineering with respect to developers’ skill level. Gunnar R. Bergersen and Dag I. K. Sjøberg (2012) • Inferring skill from tests of programming performance: combining time and quality. Gunnar R. Bergersen, Jo E. Hannay, Dag I. K. Sjøberg, Tore Dybå, and Amela Karahasanovic (2011) • Programming skill, knowledge, and working memory among professional developers from an investment theory perspective. Gunnar R. Bergersen and Jan-Eric Gustafsson (2011)
  • 23. How to measure skill? • Home work assignment (better rotate those) • Whiteboard coding (under pressure) • Online questionaires (assuming correlation between real world coding) • All are subjective • And probably you want to get it right!
  • 24. Measure via self assessment • Ratings of self may work better when people compare themselves relative to each other (people they know) rather than when providing absolute ratings (Kruger and Dunning (1999) Source: wikipedia
  • 25. Where can we see skill at work? • Research started in 50’s with punch card operators traits (McNamara & Hughes, 1955) • 60’s use of test in selection researched (Perry & Cantley, 1965) • Behavorial study of devs (Shneiderman, 1976) • Theories concerning the comprehension of computer programs (Brooks, 1983)
  • 26. Task performance is key • >20 studies about job performance assessed • Almost all frameworks mentioned task performance as an important dimension of individual work performance.
  • 27. Predict skill • Study of novice LISP programmers (Anderson & Jeffries, 1985) found that “the best predictor of individual subject differences in errors on problems that involved one LISP concept was the number of errors on other problems that involved different concepts” (Anderson, 1987, p. 203).
  • 28. How to put this into a system • Time (Bergersen, 2011) • Quality (Ebert et. al. 2005) • Process improvement (Dybå, 2000) Create a measurement model & test the model on new data (Bergersen et al., 2014)
  • 29. Rasch model • More than 50 years ago, Rasch (1960) used tests to study the reading performance of students. • Rasch models have become a practical way to measure psychological abilities
  • 30. Task construction 1.Picked existing tasks from literature 2.Reanalyzed data sets to combine time & quality 3.Large control group with 255 developers from 9 countries used to score tasks
  • 31. Detailed analytics of skills and meaningful comparisons with empirically validated norm groups_
  • 32. Technebies / GrepS • Collection of tasks • VM in the cloud (Linux + IntelliJ / Eclipse • Interchangeable Building a new standard to measure & analyze software engineering skills_
  • 33. DEMO
  • 34. Foojay community • Over 1000 members • 2 news articles every week day • Podcast • Conference information • Tech questions • And the certification initiative!
  • 36. Foojay certified developer • Multiple sessions with champions and 80+ community members • Defined what should be tested and how • Universal test • Never do a test again! • Or actually do test again to prove your progress! • Current status = beta! • Want a free test, let me know
  • 37. Recap • Coding is mostly about skills • Research shows how to measure skills • Let’s base Java certification this! • Questions?