SlideShare ist ein Scribd-Unternehmen logo
1 von 60
Downloaden Sie, um offline zu lesen
@s_baltes
Dr. Sebastian Baltes
empirical-software.engineering
Expertise in Software Development
Towards an Interdisciplinary Theory
1Dr. Sebastian Baltes – Expertise in Software Development
Sketching
Code Plagiarism
Expertise Development
2013
Methodology
Issues in Sampling
Software Developers
Regular Expressions
Interdisciplinary Research
Constructing Urban
Tourism Space Digitally
Continuous Integration
Interaction
2Dr. Sebastian Baltes – Expertise in Software Development
My Background
3Dr. Sebastian Baltes – Expertise in Software Development
Germany
Sweden
Växjö
Trier
SaarbrückenLuxembourg
Adelaide
Australia
My Background
4Dr. Sebastian Baltes – Expertise in Software Development
• Ranked among the top 1%
universities worldwide
• Member of the Group of Eight,
Australia’s coalition of world-
leading research-intensive
universities
• School of Computer Science is
ranked among the top 100
worldwide
Adelaide is ranked among
ten most liveable cities
in the world
http://thebest-tourist-destinations.blogspot.com/2013/11/adelaide-australia-travel-guide.html
My Background
5Dr. Sebastian Baltes – Expertise in Software Development
6Dr. Sebastian Baltes – Expertise in Software Development
Expertise
Development
https://empirical-software.engineering/projects/expertise/
2018
Disclaimer
7Dr. Sebastian Baltes – Expertise in Software Development
Software Development Expertise?
8Sebastian Baltes – Software Developers' Work Habits and Expertise
Implementing
new features
Testing
Debugging
Algorithms &
Data structures
Communication
Algorithms &
Data structures
Software Development Expertise?
9Sebastian Baltes – Software Developers' Work Habits and Expertise
Implementing
new features
Testing
Debugging
Communication
10Dr. Sebastian Baltes – Expertise in Software Development
How to structure all those
expertise-related aspects?
11Dr. Sebastian Baltes – Expertise in Software Development
Which factors influence expertise
development over time?
12Dr. Sebastian Baltes – Expertise in Software Development
How are experience and expertise related?
Definitions
An expert is someone “with the special skill or
knowledge representing mastery of a
particular subject”
13Dr. Sebastian Baltes – Expertise in Software Development
Expertise are „the characteristics, skills, and
knowledge that distinguish experts from
novices and less experienced people.“
K. Anders Ericsson
14Dr. Sebastian Baltes – Expertise in Software Development
How to structure the characteristics,
skills, knowledge, and experience that
distinguish expert software developers?
Our Expertise Model
• Task-specific (e.g., writing code, debugging, testing)
• Focuses on individual developers
• Process view (repetition of tasks)
• Notion of transferable knowledge and
experience from related fields or tasks
• Continuum instead of discrete expertise steps
15Sebastian Baltes – Software Developers' Work Habits and Expertise
novice
expert
expert
novice
Research Design
16Sebastian Baltes – Towards a Theory of Software Development Expertise
• Induction: 335 online survey participants in total
• Deduction: Main source “Cambridge Handbook of
Expertise and Expert Performance”
Final Conceptual Theory
17Dr. Sebastian Baltes – Expertise in Software Development
Conceptual Theory?
18Dr. Sebastian Baltes – Expertise in Software Development
Building Theories in Software Engineering
Dag I.K. Sjøberg, Tore Dybå, Bente C.D. Anda, and Jo E. Hannay
in Guide to Advanced Empirical Software Engineering (2008).
Final Conceptual Theory
19Dr. Sebastian Baltes – Expertise in Software Development
Knowledge
20Dr. Sebastian Baltes – Expertise in Software Development
• Knowledge is a “permanent structure of information stored in
memory” (Robillard, 1995)
• Developer’s knowledge base considered (most) important
factor influencing performance (Curtis, 1984)
• Studies suggest that this knowledge base is “highly language
dependent”, but experts also have “abstract, transferable
knowledge and skills” (Sonnentag et al., 2006)
• “Semantic” vs. “syntactical” knowledge (Shneiderman and Mayer, 1978)
Knowledge
21Dr. Sebastian Baltes – Expertise in Software Development
An “intimate knowledge of
the design and philosophy of
the language”
Knowledge about “paradigms […], data
structures, algorithms, computational
complexity, and design patterns”
22Dr. Sebastian Baltes – Expertise in Software Development
Context Switch
23Dr. Sebastian Baltes – Expertise in Software Development
Question for the Audience I
Who admits regularly copying non-trivial code
snippets from Stack Overflow?
24Dr. Sebastian Baltes – Expertise in Software Development
Question for the Audience II
Who knew that all content on Stack Overflow is
licensed under CC BY-SA?
25Dr. Sebastian Baltes – Expertise in Software Development
Attribution Share-alike
"You must give
appropriate credit
[…] and indicate if
changes were made."
“If you […] build upon
the material, you must
distribute your
contributions under
the same license as
the original.”
Results from our Online Surveys
• 46% of the participants admitted copying code from
Stack Overflow without attribution
• 75% did not know that content on SO is licensed
under CC BY-SA
• 67% did not know that attribution is required
26Dr. Sebastian Baltes – Expertise in Software Development
à Lack of awareness
Background
“Well, but these snippets are rather trivial and not
protected by copyright.”
27Dr. Sebastian Baltes – Expertise in Software Development
• Not all code snippets on Stack Overflow are copyrightable
• “A snippet that is more than one or two lines of standard
function calls would typically be creative enough for
copyright” [Engelfriet 2016]
• But no “international standard for originality”
[Creative Commons 2017b]
http://theconversation.com/why-universities-cant-be-expected-to-police-copyright-infringement-82677
28Dr. Sebastian Baltes – Expertise in Software Developmenthttps://stackoverflow.com/a/3145655
https://github.com/pacosal/ownmdm/blob/master/src/com/pacosal/mdm/MyLocation.java
Stack Overflow Code in the OpenJDK
29Dr. Sebastian Baltes – Expertise in Software Development
https://bugs.openjdk.java.net/browse/JDK-8170860
… and in Microsoft GitHub Repos
30Dr. Sebastian Baltes – Expertise in Software Development
Permissive Licenses
• Permit using the licensed source
code in proprietary software
without publishing changes or
the derived work
• Examples: MIT, Apache, and BSD
license families
Copyleft Licenses
• Requires either modifications to
the licensed content or the
complete derived work to be
published under the same or a
compatible license (share-alike)
• Examples (weak copyleft):
Mozilla/Eclipse Public Licenses
• Examples (viral copyleft): GNU
General Public Licenses, Creative
Commons Share-Alike Licenses
(e.g., CC BY-SA)
Implications of Stack Overflow’s License
31Dr. Sebastian Baltes – Expertise in Software Development
Enforceability of Copyleft Licenses
32Dr. Sebastian Baltes – Expertise in Software Development
• Courts in the US and Europe ruled that open source licenses
are enforceable contracts
• Authors are able to sue when terms such as the share-alike
requirement are violated:
• Interdict distribution of derived work
• Claim monetary damages
• USA: DMCA takedown notices for allegedly infringed copyright
• Example: https://github.com/github/dmca
• Risk in mergers and acquisitions of companies
• Example: FSF vs. Cisco lawsuit
Research Question
Question:
How frequently is code from Stack Overflow posts
used in public GitHub projects without the required
attribution?
Approach:
Triangulate an estimate for the attribution ratio using
three different methods.
33Dr. Sebastian Baltes – Expertise in Software Development
Code Plagiarism
Attribution
Attribution ratio:
• Method 1 (regular expressions): 23 %
• Method 2 (code clone detector): 24 %
• Method 3 (exact matches): 8 %
Conservative estimate:
• Attribution ratio ≤ 25%
34Dr. Sebastian Baltes – Expertise in Software Development
Share-alike
Only 2% of all analyzed repositories (all methods)
containing code from Stack Overflow attributed
its source and used a compatible license (not CC
BY-SA, but GPL 3.0).
35Dr. Sebastian Baltes – Expertise in Software Development
Method 1 Method 2 Method 3
36Dr. Sebastian Baltes – Expertise in Software Development
Context Switch
Experience
37Dr. Sebastian Baltes – Expertise in Software Development
• Many participants mentioned not only the quantity, but also
the quality of experience
Having shipped „a significant
amount of code to production
or to a customer“
Having built „everything from small
projects to enterprise projects“
Final Conceptual Theory
38Dr. Sebastian Baltes – Expertise in Software Development
Tasks
39Dr. Sebastian Baltes – Expertise in Software Development
• Asked participants to name the three most important tasks
that a software development expert should be good at
• Most frequently mentioned:
1. Designing a software architecture
2. Writing source code
3. Analyzing and understanding
requirements
• Other mentioned tasks: testing,
communicating, debugging
“Architecting the
software in a way that
allows flexibility in
project requirements
and future applications
of the components“
40Dr. Sebastian Baltes – Expertise in Software Development
Which factors influence expertise
development over time?
Final Conceptual Theory
41Dr. Sebastian Baltes – Expertise in Software Development
Individual Differences: Motivation
42Dr. Sebastian Baltes – Expertise in Software Development
• Related work describes how individual differences affect
expertise development
• Mental abilities and personality are relatively stable
• Motivation can change over time
• Many participants intrinsically motivated:
• Problem solving
• Seeing a high-quality solution
• Creating something new
• Helping others
“The initial design is fun,
but what really is more
rewarding is refactoring.”
Final Conceptual Theory
43Dr. Sebastian Baltes – Expertise in Software Development
Task Context
44Dr. Sebastian Baltes – Expertise in Software Development
• Work environment
(office, coworkers, customers etc.)
• Project constraints
(external dependencies, time, etc.)
• Can either foster or hinder expertise dev.
• We asked: What can employers do?
1. Encourage learning
(training courses, library, monetary incentives)
2. Encourage experimentation
(side projects, being open to new ideas/technologies)
3. Improve information exchange
(facilitate meetings, rotating between teams/projects)
4. Grant freedom
(less time pressure)
http://kratinmobile.com/blog/wp-content/uploads/2014/09/context3.png
Final Conceptual Theory
45Dr. Sebastian Baltes – Expertise in Software Development
Deliberate Practice
46Dr. Sebastian Baltes – Expertise in Software Development
• Having more experience does not automatically
lead to better performance (Ericsson et al., 1993)
• Performance may even decrease over time (Feltovich, 2006)
• Length of experience only weak correlate of job performance
(Ericsson, 2006)
• Deliberate practice: „Prolonged efforts to improve
performance while negotiating motivational and external
constraints“ (Ericsson et al., 1993)
Deliberate Practice: Self-Reflection
47Dr. Sebastian Baltes – Expertise in Software Development
• (Self-)reflection and feedback important to monitor
progress towards goal achievement (Locke and Latham, 1990)
• “[T]he more channels of accurate and helpful feedback
we have access to, the better we are likely to perform.”
(Tourish and Hargie, 2003)
• Mentors, teachers, and peers are an important sources for
feedback
Final Conceptual Theory
48Dr. Sebastian Baltes – Expertise in Software Development
Final Conceptual Theory
49Dr. Sebastian Baltes – Expertise in Software Development
Performance
50Dr. Sebastian Baltes – Expertise in Software Development
Scope of this work:
• We do not treat performance as a dependent variable that
we try to explain for individual tasks
• We consider different performance monitoring approaches
to be a means for feedback and self-reflection
Long-term goal:
• Build variance theory for explaining and predicting the
development of expertise
Performance
51Dr. Sebastian Baltes – Expertise in Software Development
• Participants described different properties of expert’s source
code (well-structured, readable, maintainable, etc.)
„Everyone can write […] code which a
machine can read and process but the key
lies in writing concise and understandable
code which […] people who have never
used that piece of code before [can read].“
Performance Decline
52Dr. Sebastian Baltes – Expertise in Software Development
• Goal: Identify factors hindering expertise development
• 41.5% of participants observed a significant performance
decline over time (for themselves or others)
• Reasons:
• Demotivation
• Changes in the work environment
• Age-related decline
• Changes in attitude
• Shifting towards other tasks
“I perceived an increasing
procrastination in me and
in my colleagues, by
working on the same tasks
over a relatively long time
[...] without innovation and
environment changes.”
Age-Related Performance Decline
53Dr. Sebastian Baltes – Expertise in Software Development
“For myself, it’s mostly the effects of aging
on the brain. At age 66, I can’t hold as
much information short-term memory,
for example. [...] I can compensate for a
lot of that by writing simpler functions
with clean interfaces. The results are still
good, but my productivity is much
slower than when I was younger.”
software architect, age 66 software developer, age 60
“Programming ability is based on
desire to achieve. In the early
years, it is a sort of competition.
[…] I found that I lost a significant
amount of my focus as I became
40, and started using drugs such
as ritalin to enhance my abilities.
This is pretty common among
older programmers.’’
54Dr. Sebastian Baltes – Expertise in Software Development
How are experience and expertise related?
Experience vs. Expertise
55Dr. Sebastian Baltes – Expertise in Software Development
• Self-assessment with semantic differential (novice to
expert) and Dreyfus expertise model
• More experienced developers adjusted their ratings
when context was provided, less experienced not
56Dr. Sebastian Baltes – Expertise in Software Developmenthttps://www.mirror.co.uk/news/weird-news/how-mcdonalds-takeaway-bag-ended-9664800
Takeaways
Summary for Developers
57Dr. Sebastian Baltes – Expertise in Software Development
• See which attributes other developers assign to experts
• Learn which behaviors may lead to becoming a better software
developer:
• Deliberate practice
• Have challenging goals
• Build or maintain a supportive work environment
(also for others)
• Ask for feedback from peers
• Reflect about what one knows and what not
Summary for Employers
58Dr. Sebastian Baltes – Expertise in Software Development
• Learn what (de)motivates their employees:
• Main motivation: problem solving
• Main demotivation: non-challenging work
• Ideas on how to build supportive work environment
supporting self-improvement of staff:
• Good mix of continuity and change in software development
process
• Communicate clear visions, directions, and goals
• Reward high-quality work wherever possible
• Revisit information sharing in company
59Dr. Sebastian Baltes – Expertise in Software Development
@s_baltes
Dr. Sebastian Baltes expertise.sbaltes.com
Data and scripts available on Zenodo

Weitere ähnliche Inhalte

Was ist angesagt?

Research software identification - Catherine Jones
Research software identification - Catherine JonesResearch software identification - Catherine Jones
Research software identification - Catherine JonesJisc RDM
 
Back to the Basics: Principles for Constructing Quality Software
Back to the Basics: Principles for Constructing Quality SoftwareBack to the Basics: Principles for Constructing Quality Software
Back to the Basics: Principles for Constructing Quality SoftwareTechWell
 
Resume_07_29_2016
Resume_07_29_2016Resume_07_29_2016
Resume_07_29_2016Timothy Vis
 
Buyer and Seller Perspectives on Open Source in Tech Contracts
Buyer and Seller Perspectives on Open Source in Tech ContractsBuyer and Seller Perspectives on Open Source in Tech Contracts
Buyer and Seller Perspectives on Open Source in Tech ContractsBlack Duck by Synopsys
 
Loic Tosser DevOps
Loic Tosser DevOpsLoic Tosser DevOps
Loic Tosser DevOpsLoïc Tosser
 
Pattern based software patent
Pattern based software patentPattern based software patent
Pattern based software patentIAEME Publication
 
Pattern based software patent
Pattern based software patentPattern based software patent
Pattern based software patentiaemedu
 
20070921 Uni Softwareengineering
20070921 Uni Softwareengineering20070921 Uni Softwareengineering
20070921 Uni SoftwareengineeringTony Bibbs
 
Software Architecture: Introduction to the Abstraction
Software Architecture: Introduction to the AbstractionSoftware Architecture: Introduction to the Abstraction
Software Architecture: Introduction to the AbstractionHenry Muccini
 
Software Engineering: What is That?
Software Engineering: What is That?Software Engineering: What is That?
Software Engineering: What is That?Henry Muccini
 
Professional Code of Ethics in Software Engineering
Professional Code of Ethics in Software EngineeringProfessional Code of Ethics in Software Engineering
Professional Code of Ethics in Software EngineeringLemi Orhan Ergin
 
Shift Risk Left: Security Considerations When Migrating Apps to the Cloud
Shift Risk Left: Security Considerations When Migrating Apps to the CloudShift Risk Left: Security Considerations When Migrating Apps to the Cloud
Shift Risk Left: Security Considerations When Migrating Apps to the CloudBlack Duck by Synopsys
 
Software architecture introduction to the abstraction gssi_nov2013
Software architecture introduction to the abstraction gssi_nov2013Software architecture introduction to the abstraction gssi_nov2013
Software architecture introduction to the abstraction gssi_nov2013Henry Muccini
 
Talent42 2017: Mei Lu - 1_Pager Software Developer Job Descriptions
Talent42 2017: Mei Lu - 1_Pager  Software Developer Job DescriptionsTalent42 2017: Mei Lu - 1_Pager  Software Developer Job Descriptions
Talent42 2017: Mei Lu - 1_Pager Software Developer Job DescriptionsTalent42
 
Exploring Open Source Licensing
Exploring Open Source LicensingExploring Open Source Licensing
Exploring Open Source LicensingStefano Fago
 
Dan Meltz resume Sept 2016
Dan Meltz resume Sept 2016Dan Meltz resume Sept 2016
Dan Meltz resume Sept 2016Dan Meltz
 
Programming languages and techniques for today’s embedded andIoT world
Programming languages and techniques for today’s embedded andIoT worldProgramming languages and techniques for today’s embedded andIoT world
Programming languages and techniques for today’s embedded andIoT worldRogue Wave Software
 
Collaborative Development the Gift That Keeps on Giving
Collaborative Development  the Gift That Keeps on GivingCollaborative Development  the Gift That Keeps on Giving
Collaborative Development the Gift That Keeps on GivingBlack Duck by Synopsys
 

Was ist angesagt? (20)

Research software identification - Catherine Jones
Research software identification - Catherine JonesResearch software identification - Catherine Jones
Research software identification - Catherine Jones
 
Back to the Basics: Principles for Constructing Quality Software
Back to the Basics: Principles for Constructing Quality SoftwareBack to the Basics: Principles for Constructing Quality Software
Back to the Basics: Principles for Constructing Quality Software
 
DevSecOps: The Open Source Way
DevSecOps: The Open Source WayDevSecOps: The Open Source Way
DevSecOps: The Open Source Way
 
Resume_07_29_2016
Resume_07_29_2016Resume_07_29_2016
Resume_07_29_2016
 
Buyer and Seller Perspectives on Open Source in Tech Contracts
Buyer and Seller Perspectives on Open Source in Tech ContractsBuyer and Seller Perspectives on Open Source in Tech Contracts
Buyer and Seller Perspectives on Open Source in Tech Contracts
 
Loic Tosser DevOps
Loic Tosser DevOpsLoic Tosser DevOps
Loic Tosser DevOps
 
Pattern based software patent
Pattern based software patentPattern based software patent
Pattern based software patent
 
Pattern based software patent
Pattern based software patentPattern based software patent
Pattern based software patent
 
20070921 Uni Softwareengineering
20070921 Uni Softwareengineering20070921 Uni Softwareengineering
20070921 Uni Softwareengineering
 
Software Architecture: Introduction to the Abstraction
Software Architecture: Introduction to the AbstractionSoftware Architecture: Introduction to the Abstraction
Software Architecture: Introduction to the Abstraction
 
Software Engineering: What is That?
Software Engineering: What is That?Software Engineering: What is That?
Software Engineering: What is That?
 
Professional Code of Ethics in Software Engineering
Professional Code of Ethics in Software EngineeringProfessional Code of Ethics in Software Engineering
Professional Code of Ethics in Software Engineering
 
Shift Risk Left: Security Considerations When Migrating Apps to the Cloud
Shift Risk Left: Security Considerations When Migrating Apps to the CloudShift Risk Left: Security Considerations When Migrating Apps to the Cloud
Shift Risk Left: Security Considerations When Migrating Apps to the Cloud
 
Software architecture introduction to the abstraction gssi_nov2013
Software architecture introduction to the abstraction gssi_nov2013Software architecture introduction to the abstraction gssi_nov2013
Software architecture introduction to the abstraction gssi_nov2013
 
Talent42 2017: Mei Lu - 1_Pager Software Developer Job Descriptions
Talent42 2017: Mei Lu - 1_Pager  Software Developer Job DescriptionsTalent42 2017: Mei Lu - 1_Pager  Software Developer Job Descriptions
Talent42 2017: Mei Lu - 1_Pager Software Developer Job Descriptions
 
Exploring Open Source Licensing
Exploring Open Source LicensingExploring Open Source Licensing
Exploring Open Source Licensing
 
Open Source ETL
Open Source ETLOpen Source ETL
Open Source ETL
 
Dan Meltz resume Sept 2016
Dan Meltz resume Sept 2016Dan Meltz resume Sept 2016
Dan Meltz resume Sept 2016
 
Programming languages and techniques for today’s embedded andIoT world
Programming languages and techniques for today’s embedded andIoT worldProgramming languages and techniques for today’s embedded andIoT world
Programming languages and techniques for today’s embedded andIoT world
 
Collaborative Development the Gift That Keeps on Giving
Collaborative Development  the Gift That Keeps on GivingCollaborative Development  the Gift That Keeps on Giving
Collaborative Development the Gift That Keeps on Giving
 

Ähnlich wie Expertise in Software Development

Intro to open source - 101 presentation
Intro to open source - 101 presentationIntro to open source - 101 presentation
Intro to open source - 101 presentationJavier Perez
 
Modern software architect post the agile wave
Modern software architect post the agile waveModern software architect post the agile wave
Modern software architect post the agile waveNiels Bech Nielsen
 
Introduction to License Compliance and My research (D. German)
Introduction to License Compliance and My research (D. German)Introduction to License Compliance and My research (D. German)
Introduction to License Compliance and My research (D. German)dmgerman
 
The Coming OSS Sustainability Crisis
The Coming OSS Sustainability CrisisThe Coming OSS Sustainability Crisis
The Coming OSS Sustainability CrisisAaron Stannard
 
Scale14x Patterns and Practices for Open Source Project Success
Scale14x Patterns and Practices for Open Source Project SuccessScale14x Patterns and Practices for Open Source Project Success
Scale14x Patterns and Practices for Open Source Project SuccessStephen Walli
 
Software Analytics - Achievements and Challenges
Software Analytics - Achievements and ChallengesSoftware Analytics - Achievements and Challenges
Software Analytics - Achievements and ChallengesTao Xie
 
The Role of the Software Architect
The Role of the Software ArchitectThe Role of the Software Architect
The Role of the Software ArchitectHayim Makabee
 
Scientific Software Challenges and Community Responses
Scientific Software Challenges and Community ResponsesScientific Software Challenges and Community Responses
Scientific Software Challenges and Community ResponsesDaniel S. Katz
 
Lecture 2 | Industry, Career Paths, Essential Skills
Lecture 2 | Industry, Career Paths, Essential SkillsLecture 2 | Industry, Career Paths, Essential Skills
Lecture 2 | Industry, Career Paths, Essential Skillsosamahjaleel
 
Software Architecture for Agile Development
Software Architecture for Agile DevelopmentSoftware Architecture for Agile Development
Software Architecture for Agile DevelopmentHayim Makabee
 
Software Architecture Erosion and Modernization
Software Architecture Erosion and ModernizationSoftware Architecture Erosion and Modernization
Software Architecture Erosion and Modernizationbmerkle
 
Open Source evaluation: A comprehensive guide on what you are using
Open Source evaluation: A comprehensive guide on what you are usingOpen Source evaluation: A comprehensive guide on what you are using
Open Source evaluation: A comprehensive guide on what you are usingAll Things Open
 
[2015/2016] Software systems engineering PRINCIPLES
[2015/2016] Software systems engineering PRINCIPLES[2015/2016] Software systems engineering PRINCIPLES
[2015/2016] Software systems engineering PRINCIPLESIvano Malavolta
 
Open Source Project Management
Open Source Project ManagementOpen Source Project Management
Open Source Project ManagementSemen Arslan
 
Agile software development
Agile software developmentAgile software development
Agile software developmentHemangi Talele
 
The Case for Low-code Development
The Case for Low-code DevelopmentThe Case for Low-code Development
The Case for Low-code DevelopmentLinx
 
Software Engineering Methodologies
Software Engineering MethodologiesSoftware Engineering Methodologies
Software Engineering MethodologiesDamian T. Gordon
 
Working with Developers
Working with DevelopersWorking with Developers
Working with DevelopersPaul Walk
 

Ähnlich wie Expertise in Software Development (20)

Intro to open source - 101 presentation
Intro to open source - 101 presentationIntro to open source - 101 presentation
Intro to open source - 101 presentation
 
Modern software architect post the agile wave
Modern software architect post the agile waveModern software architect post the agile wave
Modern software architect post the agile wave
 
Introduction to License Compliance and My research (D. German)
Introduction to License Compliance and My research (D. German)Introduction to License Compliance and My research (D. German)
Introduction to License Compliance and My research (D. German)
 
The Coming OSS Sustainability Crisis
The Coming OSS Sustainability CrisisThe Coming OSS Sustainability Crisis
The Coming OSS Sustainability Crisis
 
Scale14x Patterns and Practices for Open Source Project Success
Scale14x Patterns and Practices for Open Source Project SuccessScale14x Patterns and Practices for Open Source Project Success
Scale14x Patterns and Practices for Open Source Project Success
 
Software Analytics - Achievements and Challenges
Software Analytics - Achievements and ChallengesSoftware Analytics - Achievements and Challenges
Software Analytics - Achievements and Challenges
 
The Role of the Software Architect
The Role of the Software ArchitectThe Role of the Software Architect
The Role of the Software Architect
 
Scientific Software Challenges and Community Responses
Scientific Software Challenges and Community ResponsesScientific Software Challenges and Community Responses
Scientific Software Challenges and Community Responses
 
Lecture 2 | Industry, Career Paths, Essential Skills
Lecture 2 | Industry, Career Paths, Essential SkillsLecture 2 | Industry, Career Paths, Essential Skills
Lecture 2 | Industry, Career Paths, Essential Skills
 
Software Architecture for Agile Development
Software Architecture for Agile DevelopmentSoftware Architecture for Agile Development
Software Architecture for Agile Development
 
01 the big_idea
01 the big_idea01 the big_idea
01 the big_idea
 
Case study
Case studyCase study
Case study
 
Software Architecture Erosion and Modernization
Software Architecture Erosion and ModernizationSoftware Architecture Erosion and Modernization
Software Architecture Erosion and Modernization
 
Open Source evaluation: A comprehensive guide on what you are using
Open Source evaluation: A comprehensive guide on what you are usingOpen Source evaluation: A comprehensive guide on what you are using
Open Source evaluation: A comprehensive guide on what you are using
 
[2015/2016] Software systems engineering PRINCIPLES
[2015/2016] Software systems engineering PRINCIPLES[2015/2016] Software systems engineering PRINCIPLES
[2015/2016] Software systems engineering PRINCIPLES
 
Open Source Project Management
Open Source Project ManagementOpen Source Project Management
Open Source Project Management
 
Agile software development
Agile software developmentAgile software development
Agile software development
 
The Case for Low-code Development
The Case for Low-code DevelopmentThe Case for Low-code Development
The Case for Low-code Development
 
Software Engineering Methodologies
Software Engineering MethodologiesSoftware Engineering Methodologies
Software Engineering Methodologies
 
Working with Developers
Working with DevelopersWorking with Developers
Working with Developers
 

Mehr von QAware GmbH

50 Shades of K8s Autoscaling #JavaLand24.pdf
50 Shades of K8s Autoscaling #JavaLand24.pdf50 Shades of K8s Autoscaling #JavaLand24.pdf
50 Shades of K8s Autoscaling #JavaLand24.pdfQAware GmbH
 
Make Agile Great - PM-Erfahrungen aus zwei virtuellen internationalen SAFe-Pr...
Make Agile Great - PM-Erfahrungen aus zwei virtuellen internationalen SAFe-Pr...Make Agile Great - PM-Erfahrungen aus zwei virtuellen internationalen SAFe-Pr...
Make Agile Great - PM-Erfahrungen aus zwei virtuellen internationalen SAFe-Pr...QAware GmbH
 
Fully-managed Cloud-native Databases: The path to indefinite scale @ CNN Mainz
Fully-managed Cloud-native Databases: The path to indefinite scale @ CNN MainzFully-managed Cloud-native Databases: The path to indefinite scale @ CNN Mainz
Fully-managed Cloud-native Databases: The path to indefinite scale @ CNN MainzQAware GmbH
 
Down the Ivory Tower towards Agile Architecture
Down the Ivory Tower towards Agile ArchitectureDown the Ivory Tower towards Agile Architecture
Down the Ivory Tower towards Agile ArchitectureQAware GmbH
 
"Mixed" Scrum-Teams – Die richtige Mischung macht's!
"Mixed" Scrum-Teams – Die richtige Mischung macht's!"Mixed" Scrum-Teams – Die richtige Mischung macht's!
"Mixed" Scrum-Teams – Die richtige Mischung macht's!QAware GmbH
 
Make Developers Fly: Principles for Platform Engineering
Make Developers Fly: Principles for Platform EngineeringMake Developers Fly: Principles for Platform Engineering
Make Developers Fly: Principles for Platform EngineeringQAware GmbH
 
Der Tod der Testpyramide? – Frontend-Testing mit Playwright
Der Tod der Testpyramide? – Frontend-Testing mit PlaywrightDer Tod der Testpyramide? – Frontend-Testing mit Playwright
Der Tod der Testpyramide? – Frontend-Testing mit PlaywrightQAware GmbH
 
Was kommt nach den SPAs
Was kommt nach den SPAsWas kommt nach den SPAs
Was kommt nach den SPAsQAware GmbH
 
Cloud Migration mit KI: der Turbo
Cloud Migration mit KI: der Turbo Cloud Migration mit KI: der Turbo
Cloud Migration mit KI: der Turbo QAware GmbH
 
Migration von stark regulierten Anwendungen in die Cloud: Dem Teufel die See...
 Migration von stark regulierten Anwendungen in die Cloud: Dem Teufel die See... Migration von stark regulierten Anwendungen in die Cloud: Dem Teufel die See...
Migration von stark regulierten Anwendungen in die Cloud: Dem Teufel die See...QAware GmbH
 
Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster
Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster
Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster QAware GmbH
 
Endlich gute API Tests. Boldly Testing APIs Where No One Has Tested Before.
Endlich gute API Tests. Boldly Testing APIs Where No One Has Tested Before.Endlich gute API Tests. Boldly Testing APIs Where No One Has Tested Before.
Endlich gute API Tests. Boldly Testing APIs Where No One Has Tested Before.QAware GmbH
 
Kubernetes with Cilium in AWS - Experience Report!
Kubernetes with Cilium in AWS - Experience Report!Kubernetes with Cilium in AWS - Experience Report!
Kubernetes with Cilium in AWS - Experience Report!QAware GmbH
 
50 Shades of K8s Autoscaling
50 Shades of K8s Autoscaling50 Shades of K8s Autoscaling
50 Shades of K8s AutoscalingQAware GmbH
 
Kontinuierliche Sicherheitstests für APIs mit Testkube und OWASP ZAP
Kontinuierliche Sicherheitstests für APIs mit Testkube und OWASP ZAPKontinuierliche Sicherheitstests für APIs mit Testkube und OWASP ZAP
Kontinuierliche Sicherheitstests für APIs mit Testkube und OWASP ZAPQAware GmbH
 
Service Mesh Pain & Gain. Experiences from a client project.
Service Mesh Pain & Gain. Experiences from a client project.Service Mesh Pain & Gain. Experiences from a client project.
Service Mesh Pain & Gain. Experiences from a client project.QAware GmbH
 
50 Shades of K8s Autoscaling
50 Shades of K8s Autoscaling50 Shades of K8s Autoscaling
50 Shades of K8s AutoscalingQAware GmbH
 
Blue turns green! Approaches and technologies for sustainable K8s clusters.
Blue turns green! Approaches and technologies for sustainable K8s clusters.Blue turns green! Approaches and technologies for sustainable K8s clusters.
Blue turns green! Approaches and technologies for sustainable K8s clusters.QAware GmbH
 
Per Anhalter zu Cloud Nativen API Gateways
Per Anhalter zu Cloud Nativen API GatewaysPer Anhalter zu Cloud Nativen API Gateways
Per Anhalter zu Cloud Nativen API GatewaysQAware GmbH
 
Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster
Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster
Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster QAware GmbH
 

Mehr von QAware GmbH (20)

50 Shades of K8s Autoscaling #JavaLand24.pdf
50 Shades of K8s Autoscaling #JavaLand24.pdf50 Shades of K8s Autoscaling #JavaLand24.pdf
50 Shades of K8s Autoscaling #JavaLand24.pdf
 
Make Agile Great - PM-Erfahrungen aus zwei virtuellen internationalen SAFe-Pr...
Make Agile Great - PM-Erfahrungen aus zwei virtuellen internationalen SAFe-Pr...Make Agile Great - PM-Erfahrungen aus zwei virtuellen internationalen SAFe-Pr...
Make Agile Great - PM-Erfahrungen aus zwei virtuellen internationalen SAFe-Pr...
 
Fully-managed Cloud-native Databases: The path to indefinite scale @ CNN Mainz
Fully-managed Cloud-native Databases: The path to indefinite scale @ CNN MainzFully-managed Cloud-native Databases: The path to indefinite scale @ CNN Mainz
Fully-managed Cloud-native Databases: The path to indefinite scale @ CNN Mainz
 
Down the Ivory Tower towards Agile Architecture
Down the Ivory Tower towards Agile ArchitectureDown the Ivory Tower towards Agile Architecture
Down the Ivory Tower towards Agile Architecture
 
"Mixed" Scrum-Teams – Die richtige Mischung macht's!
"Mixed" Scrum-Teams – Die richtige Mischung macht's!"Mixed" Scrum-Teams – Die richtige Mischung macht's!
"Mixed" Scrum-Teams – Die richtige Mischung macht's!
 
Make Developers Fly: Principles for Platform Engineering
Make Developers Fly: Principles for Platform EngineeringMake Developers Fly: Principles for Platform Engineering
Make Developers Fly: Principles for Platform Engineering
 
Der Tod der Testpyramide? – Frontend-Testing mit Playwright
Der Tod der Testpyramide? – Frontend-Testing mit PlaywrightDer Tod der Testpyramide? – Frontend-Testing mit Playwright
Der Tod der Testpyramide? – Frontend-Testing mit Playwright
 
Was kommt nach den SPAs
Was kommt nach den SPAsWas kommt nach den SPAs
Was kommt nach den SPAs
 
Cloud Migration mit KI: der Turbo
Cloud Migration mit KI: der Turbo Cloud Migration mit KI: der Turbo
Cloud Migration mit KI: der Turbo
 
Migration von stark regulierten Anwendungen in die Cloud: Dem Teufel die See...
 Migration von stark regulierten Anwendungen in die Cloud: Dem Teufel die See... Migration von stark regulierten Anwendungen in die Cloud: Dem Teufel die See...
Migration von stark regulierten Anwendungen in die Cloud: Dem Teufel die See...
 
Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster
Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster
Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster
 
Endlich gute API Tests. Boldly Testing APIs Where No One Has Tested Before.
Endlich gute API Tests. Boldly Testing APIs Where No One Has Tested Before.Endlich gute API Tests. Boldly Testing APIs Where No One Has Tested Before.
Endlich gute API Tests. Boldly Testing APIs Where No One Has Tested Before.
 
Kubernetes with Cilium in AWS - Experience Report!
Kubernetes with Cilium in AWS - Experience Report!Kubernetes with Cilium in AWS - Experience Report!
Kubernetes with Cilium in AWS - Experience Report!
 
50 Shades of K8s Autoscaling
50 Shades of K8s Autoscaling50 Shades of K8s Autoscaling
50 Shades of K8s Autoscaling
 
Kontinuierliche Sicherheitstests für APIs mit Testkube und OWASP ZAP
Kontinuierliche Sicherheitstests für APIs mit Testkube und OWASP ZAPKontinuierliche Sicherheitstests für APIs mit Testkube und OWASP ZAP
Kontinuierliche Sicherheitstests für APIs mit Testkube und OWASP ZAP
 
Service Mesh Pain & Gain. Experiences from a client project.
Service Mesh Pain & Gain. Experiences from a client project.Service Mesh Pain & Gain. Experiences from a client project.
Service Mesh Pain & Gain. Experiences from a client project.
 
50 Shades of K8s Autoscaling
50 Shades of K8s Autoscaling50 Shades of K8s Autoscaling
50 Shades of K8s Autoscaling
 
Blue turns green! Approaches and technologies for sustainable K8s clusters.
Blue turns green! Approaches and technologies for sustainable K8s clusters.Blue turns green! Approaches and technologies for sustainable K8s clusters.
Blue turns green! Approaches and technologies for sustainable K8s clusters.
 
Per Anhalter zu Cloud Nativen API Gateways
Per Anhalter zu Cloud Nativen API GatewaysPer Anhalter zu Cloud Nativen API Gateways
Per Anhalter zu Cloud Nativen API Gateways
 
Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster
Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster
Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster
 

Kürzlich hochgeladen

A Guideline to Zendesk to Re:amaze Data Migration
A Guideline to Zendesk to Re:amaze Data MigrationA Guideline to Zendesk to Re:amaze Data Migration
A Guideline to Zendesk to Re:amaze Data MigrationHelp Desk Migration
 
The mythical technical debt. (Brooke, please, forgive me)
The mythical technical debt. (Brooke, please, forgive me)The mythical technical debt. (Brooke, please, forgive me)
The mythical technical debt. (Brooke, please, forgive me)Roberto Bettazzoni
 
A Deep Dive into Secure Product Development Frameworks.pdf
A Deep Dive into Secure Product Development Frameworks.pdfA Deep Dive into Secure Product Development Frameworks.pdf
A Deep Dive into Secure Product Development Frameworks.pdfICS
 
Automate your OpenSIPS config tests - OpenSIPS Summit 2024
Automate your OpenSIPS config tests - OpenSIPS Summit 2024Automate your OpenSIPS config tests - OpenSIPS Summit 2024
Automate your OpenSIPS config tests - OpenSIPS Summit 2024Andreas Granig
 
Wired_2.0_CREATE YOUR ULTIMATE LEARNING ENVIRONMENT_JCON_16052024
Wired_2.0_CREATE YOUR ULTIMATE LEARNING ENVIRONMENT_JCON_16052024Wired_2.0_CREATE YOUR ULTIMATE LEARNING ENVIRONMENT_JCON_16052024
Wired_2.0_CREATE YOUR ULTIMATE LEARNING ENVIRONMENT_JCON_16052024SimonedeGijt
 
The Strategic Impact of Buying vs Building in Test Automation
The Strategic Impact of Buying vs Building in Test AutomationThe Strategic Impact of Buying vs Building in Test Automation
The Strategic Impact of Buying vs Building in Test AutomationElement34
 
architecting-ai-in-the-enterprise-apis-and-applications.pdf
architecting-ai-in-the-enterprise-apis-and-applications.pdfarchitecting-ai-in-the-enterprise-apis-and-applications.pdf
architecting-ai-in-the-enterprise-apis-and-applications.pdfWSO2
 
Salesforce Introduced Zero Copy Partner Network to Simplify the Process of In...
Salesforce Introduced Zero Copy Partner Network to Simplify the Process of In...Salesforce Introduced Zero Copy Partner Network to Simplify the Process of In...
Salesforce Introduced Zero Copy Partner Network to Simplify the Process of In...CloudMetic
 
Malaysia E-Invoice digital signature docpptx
Malaysia E-Invoice digital signature docpptxMalaysia E-Invoice digital signature docpptx
Malaysia E-Invoice digital signature docpptxMok TH
 
Anypoint Code Builder - Munich MuleSoft Meetup - 16th May 2024
Anypoint Code Builder - Munich MuleSoft Meetup - 16th May 2024Anypoint Code Builder - Munich MuleSoft Meetup - 16th May 2024
Anypoint Code Builder - Munich MuleSoft Meetup - 16th May 2024MulesoftMunichMeetup
 
COMPUTER AND ITS COMPONENTS PPT.by naitik sharma Class 9th A mittal internati...
COMPUTER AND ITS COMPONENTS PPT.by naitik sharma Class 9th A mittal internati...COMPUTER AND ITS COMPONENTS PPT.by naitik sharma Class 9th A mittal internati...
COMPUTER AND ITS COMPONENTS PPT.by naitik sharma Class 9th A mittal internati...naitiksharma1124
 
Secure Software Ecosystem Teqnation 2024
Secure Software Ecosystem Teqnation 2024Secure Software Ecosystem Teqnation 2024
Secure Software Ecosystem Teqnation 2024Soroosh Khodami
 
Odoo vs Shopify: Why Odoo is Best for Ecommerce Website Builder in 2024
Odoo vs Shopify: Why Odoo is Best for Ecommerce Website Builder in 2024Odoo vs Shopify: Why Odoo is Best for Ecommerce Website Builder in 2024
Odoo vs Shopify: Why Odoo is Best for Ecommerce Website Builder in 2024Primacy Infotech
 
SQL Injection Introduction and Prevention
SQL Injection Introduction and PreventionSQL Injection Introduction and Prevention
SQL Injection Introduction and PreventionMohammed Fazuluddin
 
Reinforcement Learning – a Rewards Based Approach to Machine Learning - Marko...
Reinforcement Learning – a Rewards Based Approach to Machine Learning - Marko...Reinforcement Learning – a Rewards Based Approach to Machine Learning - Marko...
Reinforcement Learning – a Rewards Based Approach to Machine Learning - Marko...Marko Lohert
 
Microsoft 365 Copilot; An AI tool changing the world of work _PDF.pdf
Microsoft 365 Copilot; An AI tool changing the world of work _PDF.pdfMicrosoft 365 Copilot; An AI tool changing the world of work _PDF.pdf
Microsoft 365 Copilot; An AI tool changing the world of work _PDF.pdfQ-Advise
 
KLARNA - Language Models and Knowledge Graphs: A Systems Approach
KLARNA -  Language Models and Knowledge Graphs: A Systems ApproachKLARNA -  Language Models and Knowledge Graphs: A Systems Approach
KLARNA - Language Models and Knowledge Graphs: A Systems ApproachNeo4j
 
Community is Just as Important as Code by Andrea Goulet
Community is Just as Important as Code by Andrea GouletCommunity is Just as Important as Code by Andrea Goulet
Community is Just as Important as Code by Andrea GouletAndrea Goulet
 

Kürzlich hochgeladen (20)

A Guideline to Zendesk to Re:amaze Data Migration
A Guideline to Zendesk to Re:amaze Data MigrationA Guideline to Zendesk to Re:amaze Data Migration
A Guideline to Zendesk to Re:amaze Data Migration
 
The mythical technical debt. (Brooke, please, forgive me)
The mythical technical debt. (Brooke, please, forgive me)The mythical technical debt. (Brooke, please, forgive me)
The mythical technical debt. (Brooke, please, forgive me)
 
A Deep Dive into Secure Product Development Frameworks.pdf
A Deep Dive into Secure Product Development Frameworks.pdfA Deep Dive into Secure Product Development Frameworks.pdf
A Deep Dive into Secure Product Development Frameworks.pdf
 
5 Reasons Driving Warehouse Management Systems Demand
5 Reasons Driving Warehouse Management Systems Demand5 Reasons Driving Warehouse Management Systems Demand
5 Reasons Driving Warehouse Management Systems Demand
 
Automate your OpenSIPS config tests - OpenSIPS Summit 2024
Automate your OpenSIPS config tests - OpenSIPS Summit 2024Automate your OpenSIPS config tests - OpenSIPS Summit 2024
Automate your OpenSIPS config tests - OpenSIPS Summit 2024
 
Wired_2.0_CREATE YOUR ULTIMATE LEARNING ENVIRONMENT_JCON_16052024
Wired_2.0_CREATE YOUR ULTIMATE LEARNING ENVIRONMENT_JCON_16052024Wired_2.0_CREATE YOUR ULTIMATE LEARNING ENVIRONMENT_JCON_16052024
Wired_2.0_CREATE YOUR ULTIMATE LEARNING ENVIRONMENT_JCON_16052024
 
The Strategic Impact of Buying vs Building in Test Automation
The Strategic Impact of Buying vs Building in Test AutomationThe Strategic Impact of Buying vs Building in Test Automation
The Strategic Impact of Buying vs Building in Test Automation
 
architecting-ai-in-the-enterprise-apis-and-applications.pdf
architecting-ai-in-the-enterprise-apis-and-applications.pdfarchitecting-ai-in-the-enterprise-apis-and-applications.pdf
architecting-ai-in-the-enterprise-apis-and-applications.pdf
 
Salesforce Introduced Zero Copy Partner Network to Simplify the Process of In...
Salesforce Introduced Zero Copy Partner Network to Simplify the Process of In...Salesforce Introduced Zero Copy Partner Network to Simplify the Process of In...
Salesforce Introduced Zero Copy Partner Network to Simplify the Process of In...
 
Malaysia E-Invoice digital signature docpptx
Malaysia E-Invoice digital signature docpptxMalaysia E-Invoice digital signature docpptx
Malaysia E-Invoice digital signature docpptx
 
Anypoint Code Builder - Munich MuleSoft Meetup - 16th May 2024
Anypoint Code Builder - Munich MuleSoft Meetup - 16th May 2024Anypoint Code Builder - Munich MuleSoft Meetup - 16th May 2024
Anypoint Code Builder - Munich MuleSoft Meetup - 16th May 2024
 
COMPUTER AND ITS COMPONENTS PPT.by naitik sharma Class 9th A mittal internati...
COMPUTER AND ITS COMPONENTS PPT.by naitik sharma Class 9th A mittal internati...COMPUTER AND ITS COMPONENTS PPT.by naitik sharma Class 9th A mittal internati...
COMPUTER AND ITS COMPONENTS PPT.by naitik sharma Class 9th A mittal internati...
 
Secure Software Ecosystem Teqnation 2024
Secure Software Ecosystem Teqnation 2024Secure Software Ecosystem Teqnation 2024
Secure Software Ecosystem Teqnation 2024
 
Odoo vs Shopify: Why Odoo is Best for Ecommerce Website Builder in 2024
Odoo vs Shopify: Why Odoo is Best for Ecommerce Website Builder in 2024Odoo vs Shopify: Why Odoo is Best for Ecommerce Website Builder in 2024
Odoo vs Shopify: Why Odoo is Best for Ecommerce Website Builder in 2024
 
SQL Injection Introduction and Prevention
SQL Injection Introduction and PreventionSQL Injection Introduction and Prevention
SQL Injection Introduction and Prevention
 
Top Mobile App Development Companies 2024
Top Mobile App Development Companies 2024Top Mobile App Development Companies 2024
Top Mobile App Development Companies 2024
 
Reinforcement Learning – a Rewards Based Approach to Machine Learning - Marko...
Reinforcement Learning – a Rewards Based Approach to Machine Learning - Marko...Reinforcement Learning – a Rewards Based Approach to Machine Learning - Marko...
Reinforcement Learning – a Rewards Based Approach to Machine Learning - Marko...
 
Microsoft 365 Copilot; An AI tool changing the world of work _PDF.pdf
Microsoft 365 Copilot; An AI tool changing the world of work _PDF.pdfMicrosoft 365 Copilot; An AI tool changing the world of work _PDF.pdf
Microsoft 365 Copilot; An AI tool changing the world of work _PDF.pdf
 
KLARNA - Language Models and Knowledge Graphs: A Systems Approach
KLARNA -  Language Models and Knowledge Graphs: A Systems ApproachKLARNA -  Language Models and Knowledge Graphs: A Systems Approach
KLARNA - Language Models and Knowledge Graphs: A Systems Approach
 
Community is Just as Important as Code by Andrea Goulet
Community is Just as Important as Code by Andrea GouletCommunity is Just as Important as Code by Andrea Goulet
Community is Just as Important as Code by Andrea Goulet
 

Expertise in Software Development

  • 1. @s_baltes Dr. Sebastian Baltes empirical-software.engineering Expertise in Software Development Towards an Interdisciplinary Theory
  • 2. 1Dr. Sebastian Baltes – Expertise in Software Development Sketching Code Plagiarism Expertise Development 2013 Methodology Issues in Sampling Software Developers Regular Expressions Interdisciplinary Research Constructing Urban Tourism Space Digitally Continuous Integration
  • 3. Interaction 2Dr. Sebastian Baltes – Expertise in Software Development
  • 4. My Background 3Dr. Sebastian Baltes – Expertise in Software Development Germany Sweden Växjö Trier SaarbrückenLuxembourg Adelaide Australia
  • 5. My Background 4Dr. Sebastian Baltes – Expertise in Software Development • Ranked among the top 1% universities worldwide • Member of the Group of Eight, Australia’s coalition of world- leading research-intensive universities • School of Computer Science is ranked among the top 100 worldwide Adelaide is ranked among ten most liveable cities in the world http://thebest-tourist-destinations.blogspot.com/2013/11/adelaide-australia-travel-guide.html
  • 6. My Background 5Dr. Sebastian Baltes – Expertise in Software Development
  • 7. 6Dr. Sebastian Baltes – Expertise in Software Development Expertise Development https://empirical-software.engineering/projects/expertise/ 2018
  • 8. Disclaimer 7Dr. Sebastian Baltes – Expertise in Software Development
  • 9. Software Development Expertise? 8Sebastian Baltes – Software Developers' Work Habits and Expertise Implementing new features Testing Debugging Algorithms & Data structures Communication
  • 10. Algorithms & Data structures Software Development Expertise? 9Sebastian Baltes – Software Developers' Work Habits and Expertise Implementing new features Testing Debugging Communication
  • 11. 10Dr. Sebastian Baltes – Expertise in Software Development How to structure all those expertise-related aspects?
  • 12. 11Dr. Sebastian Baltes – Expertise in Software Development Which factors influence expertise development over time?
  • 13. 12Dr. Sebastian Baltes – Expertise in Software Development How are experience and expertise related?
  • 14. Definitions An expert is someone “with the special skill or knowledge representing mastery of a particular subject” 13Dr. Sebastian Baltes – Expertise in Software Development Expertise are „the characteristics, skills, and knowledge that distinguish experts from novices and less experienced people.“ K. Anders Ericsson
  • 15. 14Dr. Sebastian Baltes – Expertise in Software Development How to structure the characteristics, skills, knowledge, and experience that distinguish expert software developers?
  • 16. Our Expertise Model • Task-specific (e.g., writing code, debugging, testing) • Focuses on individual developers • Process view (repetition of tasks) • Notion of transferable knowledge and experience from related fields or tasks • Continuum instead of discrete expertise steps 15Sebastian Baltes – Software Developers' Work Habits and Expertise novice expert expert novice
  • 17. Research Design 16Sebastian Baltes – Towards a Theory of Software Development Expertise • Induction: 335 online survey participants in total • Deduction: Main source “Cambridge Handbook of Expertise and Expert Performance”
  • 18. Final Conceptual Theory 17Dr. Sebastian Baltes – Expertise in Software Development
  • 19. Conceptual Theory? 18Dr. Sebastian Baltes – Expertise in Software Development Building Theories in Software Engineering Dag I.K. Sjøberg, Tore Dybå, Bente C.D. Anda, and Jo E. Hannay in Guide to Advanced Empirical Software Engineering (2008).
  • 20. Final Conceptual Theory 19Dr. Sebastian Baltes – Expertise in Software Development
  • 21. Knowledge 20Dr. Sebastian Baltes – Expertise in Software Development • Knowledge is a “permanent structure of information stored in memory” (Robillard, 1995) • Developer’s knowledge base considered (most) important factor influencing performance (Curtis, 1984) • Studies suggest that this knowledge base is “highly language dependent”, but experts also have “abstract, transferable knowledge and skills” (Sonnentag et al., 2006) • “Semantic” vs. “syntactical” knowledge (Shneiderman and Mayer, 1978)
  • 22. Knowledge 21Dr. Sebastian Baltes – Expertise in Software Development An “intimate knowledge of the design and philosophy of the language” Knowledge about “paradigms […], data structures, algorithms, computational complexity, and design patterns”
  • 23. 22Dr. Sebastian Baltes – Expertise in Software Development Context Switch
  • 24. 23Dr. Sebastian Baltes – Expertise in Software Development
  • 25. Question for the Audience I Who admits regularly copying non-trivial code snippets from Stack Overflow? 24Dr. Sebastian Baltes – Expertise in Software Development
  • 26. Question for the Audience II Who knew that all content on Stack Overflow is licensed under CC BY-SA? 25Dr. Sebastian Baltes – Expertise in Software Development Attribution Share-alike "You must give appropriate credit […] and indicate if changes were made." “If you […] build upon the material, you must distribute your contributions under the same license as the original.”
  • 27. Results from our Online Surveys • 46% of the participants admitted copying code from Stack Overflow without attribution • 75% did not know that content on SO is licensed under CC BY-SA • 67% did not know that attribution is required 26Dr. Sebastian Baltes – Expertise in Software Development à Lack of awareness
  • 28. Background “Well, but these snippets are rather trivial and not protected by copyright.” 27Dr. Sebastian Baltes – Expertise in Software Development • Not all code snippets on Stack Overflow are copyrightable • “A snippet that is more than one or two lines of standard function calls would typically be creative enough for copyright” [Engelfriet 2016] • But no “international standard for originality” [Creative Commons 2017b] http://theconversation.com/why-universities-cant-be-expected-to-police-copyright-infringement-82677
  • 29. 28Dr. Sebastian Baltes – Expertise in Software Developmenthttps://stackoverflow.com/a/3145655 https://github.com/pacosal/ownmdm/blob/master/src/com/pacosal/mdm/MyLocation.java
  • 30. Stack Overflow Code in the OpenJDK 29Dr. Sebastian Baltes – Expertise in Software Development https://bugs.openjdk.java.net/browse/JDK-8170860
  • 31. … and in Microsoft GitHub Repos 30Dr. Sebastian Baltes – Expertise in Software Development
  • 32. Permissive Licenses • Permit using the licensed source code in proprietary software without publishing changes or the derived work • Examples: MIT, Apache, and BSD license families Copyleft Licenses • Requires either modifications to the licensed content or the complete derived work to be published under the same or a compatible license (share-alike) • Examples (weak copyleft): Mozilla/Eclipse Public Licenses • Examples (viral copyleft): GNU General Public Licenses, Creative Commons Share-Alike Licenses (e.g., CC BY-SA) Implications of Stack Overflow’s License 31Dr. Sebastian Baltes – Expertise in Software Development
  • 33. Enforceability of Copyleft Licenses 32Dr. Sebastian Baltes – Expertise in Software Development • Courts in the US and Europe ruled that open source licenses are enforceable contracts • Authors are able to sue when terms such as the share-alike requirement are violated: • Interdict distribution of derived work • Claim monetary damages • USA: DMCA takedown notices for allegedly infringed copyright • Example: https://github.com/github/dmca • Risk in mergers and acquisitions of companies • Example: FSF vs. Cisco lawsuit
  • 34. Research Question Question: How frequently is code from Stack Overflow posts used in public GitHub projects without the required attribution? Approach: Triangulate an estimate for the attribution ratio using three different methods. 33Dr. Sebastian Baltes – Expertise in Software Development Code Plagiarism
  • 35. Attribution Attribution ratio: • Method 1 (regular expressions): 23 % • Method 2 (code clone detector): 24 % • Method 3 (exact matches): 8 % Conservative estimate: • Attribution ratio ≤ 25% 34Dr. Sebastian Baltes – Expertise in Software Development
  • 36. Share-alike Only 2% of all analyzed repositories (all methods) containing code from Stack Overflow attributed its source and used a compatible license (not CC BY-SA, but GPL 3.0). 35Dr. Sebastian Baltes – Expertise in Software Development Method 1 Method 2 Method 3
  • 37. 36Dr. Sebastian Baltes – Expertise in Software Development Context Switch
  • 38. Experience 37Dr. Sebastian Baltes – Expertise in Software Development • Many participants mentioned not only the quantity, but also the quality of experience Having shipped „a significant amount of code to production or to a customer“ Having built „everything from small projects to enterprise projects“
  • 39. Final Conceptual Theory 38Dr. Sebastian Baltes – Expertise in Software Development
  • 40. Tasks 39Dr. Sebastian Baltes – Expertise in Software Development • Asked participants to name the three most important tasks that a software development expert should be good at • Most frequently mentioned: 1. Designing a software architecture 2. Writing source code 3. Analyzing and understanding requirements • Other mentioned tasks: testing, communicating, debugging “Architecting the software in a way that allows flexibility in project requirements and future applications of the components“
  • 41. 40Dr. Sebastian Baltes – Expertise in Software Development Which factors influence expertise development over time?
  • 42. Final Conceptual Theory 41Dr. Sebastian Baltes – Expertise in Software Development
  • 43. Individual Differences: Motivation 42Dr. Sebastian Baltes – Expertise in Software Development • Related work describes how individual differences affect expertise development • Mental abilities and personality are relatively stable • Motivation can change over time • Many participants intrinsically motivated: • Problem solving • Seeing a high-quality solution • Creating something new • Helping others “The initial design is fun, but what really is more rewarding is refactoring.”
  • 44. Final Conceptual Theory 43Dr. Sebastian Baltes – Expertise in Software Development
  • 45. Task Context 44Dr. Sebastian Baltes – Expertise in Software Development • Work environment (office, coworkers, customers etc.) • Project constraints (external dependencies, time, etc.) • Can either foster or hinder expertise dev. • We asked: What can employers do? 1. Encourage learning (training courses, library, monetary incentives) 2. Encourage experimentation (side projects, being open to new ideas/technologies) 3. Improve information exchange (facilitate meetings, rotating between teams/projects) 4. Grant freedom (less time pressure) http://kratinmobile.com/blog/wp-content/uploads/2014/09/context3.png
  • 46. Final Conceptual Theory 45Dr. Sebastian Baltes – Expertise in Software Development
  • 47. Deliberate Practice 46Dr. Sebastian Baltes – Expertise in Software Development • Having more experience does not automatically lead to better performance (Ericsson et al., 1993) • Performance may even decrease over time (Feltovich, 2006) • Length of experience only weak correlate of job performance (Ericsson, 2006) • Deliberate practice: „Prolonged efforts to improve performance while negotiating motivational and external constraints“ (Ericsson et al., 1993)
  • 48. Deliberate Practice: Self-Reflection 47Dr. Sebastian Baltes – Expertise in Software Development • (Self-)reflection and feedback important to monitor progress towards goal achievement (Locke and Latham, 1990) • “[T]he more channels of accurate and helpful feedback we have access to, the better we are likely to perform.” (Tourish and Hargie, 2003) • Mentors, teachers, and peers are an important sources for feedback
  • 49. Final Conceptual Theory 48Dr. Sebastian Baltes – Expertise in Software Development
  • 50. Final Conceptual Theory 49Dr. Sebastian Baltes – Expertise in Software Development
  • 51. Performance 50Dr. Sebastian Baltes – Expertise in Software Development Scope of this work: • We do not treat performance as a dependent variable that we try to explain for individual tasks • We consider different performance monitoring approaches to be a means for feedback and self-reflection Long-term goal: • Build variance theory for explaining and predicting the development of expertise
  • 52. Performance 51Dr. Sebastian Baltes – Expertise in Software Development • Participants described different properties of expert’s source code (well-structured, readable, maintainable, etc.) „Everyone can write […] code which a machine can read and process but the key lies in writing concise and understandable code which […] people who have never used that piece of code before [can read].“
  • 53. Performance Decline 52Dr. Sebastian Baltes – Expertise in Software Development • Goal: Identify factors hindering expertise development • 41.5% of participants observed a significant performance decline over time (for themselves or others) • Reasons: • Demotivation • Changes in the work environment • Age-related decline • Changes in attitude • Shifting towards other tasks “I perceived an increasing procrastination in me and in my colleagues, by working on the same tasks over a relatively long time [...] without innovation and environment changes.”
  • 54. Age-Related Performance Decline 53Dr. Sebastian Baltes – Expertise in Software Development “For myself, it’s mostly the effects of aging on the brain. At age 66, I can’t hold as much information short-term memory, for example. [...] I can compensate for a lot of that by writing simpler functions with clean interfaces. The results are still good, but my productivity is much slower than when I was younger.” software architect, age 66 software developer, age 60 “Programming ability is based on desire to achieve. In the early years, it is a sort of competition. […] I found that I lost a significant amount of my focus as I became 40, and started using drugs such as ritalin to enhance my abilities. This is pretty common among older programmers.’’
  • 55. 54Dr. Sebastian Baltes – Expertise in Software Development How are experience and expertise related?
  • 56. Experience vs. Expertise 55Dr. Sebastian Baltes – Expertise in Software Development • Self-assessment with semantic differential (novice to expert) and Dreyfus expertise model • More experienced developers adjusted their ratings when context was provided, less experienced not
  • 57. 56Dr. Sebastian Baltes – Expertise in Software Developmenthttps://www.mirror.co.uk/news/weird-news/how-mcdonalds-takeaway-bag-ended-9664800 Takeaways
  • 58. Summary for Developers 57Dr. Sebastian Baltes – Expertise in Software Development • See which attributes other developers assign to experts • Learn which behaviors may lead to becoming a better software developer: • Deliberate practice • Have challenging goals • Build or maintain a supportive work environment (also for others) • Ask for feedback from peers • Reflect about what one knows and what not
  • 59. Summary for Employers 58Dr. Sebastian Baltes – Expertise in Software Development • Learn what (de)motivates their employees: • Main motivation: problem solving • Main demotivation: non-challenging work • Ideas on how to build supportive work environment supporting self-improvement of staff: • Good mix of continuity and change in software development process • Communicate clear visions, directions, and goals • Reward high-quality work wherever possible • Revisit information sharing in company
  • 60. 59Dr. Sebastian Baltes – Expertise in Software Development @s_baltes Dr. Sebastian Baltes expertise.sbaltes.com Data and scripts available on Zenodo