Slide 1

Slide 1 text

One of the strongest economical regions in Europe

Slide 2

Slide 2 text

2

Slide 3

Slide 3 text

www.uni-stuttgart.de 01-10

Slide 4

Slide 4 text

Tools Requirements Engineering Safety & Security Engineering Quality Engineering Software Engineering Continuous, Agile & Lean Engineering Empirical and Behavioural Software Engineering

Slide 5

Slide 5 text

Rethinking Productivity in Software Engineering Dagstuhl, 2017-03-06/07 Stefan Wagner What’s Productivity? Terminology and Influencing Factors

Slide 6

Slide 6 text

You can copy, share and change, film and photograph, blog, live-blog and tweet this presentation given that you attribute it to its author and respect the rights and licenses of its parts. based on slides by @SMEasterbrook und @ethanwhite

Slide 7

Slide 7 text

The Chimera of Software Productivity Efficiency Effectiveness Productivity Performance Profitability Quantity Functionality Quality LOC, FP, … Intangibility of Software Product Lines Reuse Automation Tools Model-Driven Implementation Test Maintenance Team Workplace Improvement, Measurement, Comparison

Slide 8

Slide 8 text

A Timeline of Productivity Research in Software Engineering 1968 First experimental studies 1975 1987 1979 Albrecht’s Function Points 1981 1986 Jones’ Programming Productivity 2005 2000 2000s Story Points 2010s

Slide 9

Slide 9 text

What is Productivity?

Slide 10

Slide 10 text

Open Issues – Quantity, Quality and Value Productivity of knowledge work […] has to aim first at obtaining quality […]. Only then can one ask: „What is the volume, the quantity of work?” Peter F. Drucker Quality is a complex and multifaceted concept. It is also the source of great confusion… David A. Garvin […] the value of the software […] cannot be measured by the cost of building it, but by how well it meets the needs of the user. And […] I have never, even one time, seen exactly the same business problem. Jon “Maddog” Hall

Slide 11

Slide 11 text

Productivity • Difficult for knowledge work • Could consider – Quality – Timeliness – Project success – Customer satisfaction – Innovation • No broadly applicable and accepted means for productivity measurement Productivity = Output Input Units of products Units of material Person- hours Size

Slide 12

Slide 12 text

Profitability Profitability = Revenue Cost Price inflation Cost inflation

Slide 13

Slide 13 text

Performance Vision and Strategy Internal Business Processes Financial Customer Learning and Growth To satisfy our shareholders, what business processes must we excel at?

Slide 14

Slide 14 text

The PE Model Purpose Quality Functionality Effort Effectiveness Efficiency Productivity Profitability Performance Inflation, pricing Customer perception [based on Tangen, 2005]

Slide 15

Slide 15 text

What general factors influences productivity?

Slide 16

Slide 16 text

Technical Factors Doc. Match to Life-Cycle N. Use of Modern Dev. Pract. Programming Language Use of Software Tools Hardware Concurrent Dev. Project Duration Effective and Efficient V&V Completemenss of Design Early Prototyping Platform Volatility Process Maturity Architecture Risk Resolution Reuse Development Flexibility User Interface Product Quality Software Size Main Storage Constraint Execution Time Constraints Developed for Reusability Product Complexity Database Size Required Software Reliability Precedentedness # of publications 2 3 2 6 3 7 3 4 2 3 2 2 1 1 3 1 2 1 2 3 7 3 7 2 Dev. Env. Process Product Wagner, S. and Ruhe, M. (2008) A Systematic Review of Productivity Factors in Software Development. In Proc. 2nd International Workshop on Software Productivity Analysis and Cost Estimation (SPACE 2008).

Slide 17

Slide 17 text

Soft Factors Avg. Team Size Req. Stability Schedule Telecom. Facilities Physical Separation Time Fragmentation E-Factor Proper Workplace Manager App. Experience Manager Capability Lang. and Tool Experience Platform Experience Applications Experience Progammer Capability Analyst Capability Developer Temperaments Support for Innovation Communication Team Cohesion Turnover Clear Goals Sense of Eliteness Team Identity Camaraderie Fairness Respect Credibility # of publications 4 6 5 1 2 3 3 7 9 4 1 1 8 10 7 7 8 7 2 3 2 1 4 2 5 6 10 Project Cap. & Exp. Team Culture Environment Corp. Culture

Slide 18

Slide 18 text

Do personality and programming styles influence productivity?

Slide 19

Slide 19 text

Developers differ in their performance, decision making and working habits.

Slide 20

Slide 20 text

The Big Five Personality Test 5 Closed-Minded Open to New Experiences Disorganised Conscientious Introverted Extraverted Disagreeable Agreeable Calm/Relaxed Nervous / High-Strung Openness to Experience Conscientiousness Extraversion Agreeableness Emotional Stability

Slide 21

Slide 21 text

Cox and Fisher’s Theory Task Situation Individual internal external Influence Programming Styles like personality like experience Programming Context’s Factors

Slide 22

Slide 22 text

Top-down & depth-first Top-down & breadth-first Bottom-up & depth-first Bottom-up & breadth-first Programming Styles

Slide 23

Slide 23 text

Study Design Age Gender Programming Experience Attitude towards Programming Personality Factors Human Factors Programming Styles ? ? Programming Performance Programmer Quality (self-assessed) Project and Code Quality (Grade) Code Quality (Static Analysis Warnings)

Slide 24

Slide 24 text

Significant Correlations (All Positive) Programming Performance Number of Programming Languages (Experience) Age Academic Achievement Depth-First Programming Style Conscientiousness (Personality) Years at University (Experience) Large Revisions (Programming Style)

Slide 25

Slide 25 text

Limitations • Self-developed questionnaire to operationalise some styles • Self-assessed survey • Mainly students in second year of studies • Volunteer bias • Correlations do not need to be cause/effect

Slide 26

Slide 26 text

There is a significant relation between personalities of programmers and their programming styles.

Slide 27

Slide 27 text

So how do we measure and improve it?

Slide 28

Slide 28 text

The ProdFLOWTM Approach Ruhe, M. and Wagner, S. (2008) Using the ProdFLOW™ Approach to Address the Myth of Productivity in R&D Organizations In Proc. 2nd International Symposium on Empirical Software Engineering and Measurement (ESEM '08). ACM.

Slide 29

Slide 29 text

„ The most important contribution management needs to make in the 21st century is […] to increase the productivity of knowledge work and the knowledge worker. Peter F. Drucker

Slide 30

Slide 30 text

Prof. Dr. Stefan Wagner e-mail [email protected] phone +49 (0) 711 685-88455 WWW www.iste.uni-stuttgart.de/se Twitter prof_wagnerst ORCID 0000-0002-5256-8429 arXiv http://arxiv.org/a/wagner_s_1 Institute of Software Technology Slides are available at www.stefan-wagner.biz. Joint work with Manfred Broy, Florian Deissenboeck, Melanie Ruhe, Zahra Karimi, Ahmad Baraani-Dastjerdi, Nasser Ghasem-Aghaee

Slide 31

Slide 31 text

Pictures Used in this Slide Deck Programmer writing code with Unit Tests by Joonspoon under CC BY-SA 4.0 (https://commons.wikimedia.org/ wiki/File:Programmer_writing_code_with_Unit_Tests.jpg) Stuttgart-Schlossplatz-at-night-denoised by Curnen under CC BY-SA 3.0 (https://commons.wikimedia.org/wiki/ File:Stuttgart-Schlossplatz-at-night-denoised.jpg) Line Art Drawing of a chimera by Pearson Scott Foresman (Public Domain) (https://commons.wikimedia.org/ wiki/File:Chimera_(PSF).jpg) Happy Programmers by Jesper Ronn-Jensen (https://flic.kr/p/oi9kA) Computer Work Hero (https://www.jisc.ac.uk/sites/default/files/computer-work-hero.jpg) Source code security plugin by Christiaan Colen under CC BY-SA 2.0 (https://www.flickr.com/photos/ 132889348@N07/20013034943)