One of the strongest economical regions in Europe
2
www.uni-stuttgart.de 01-10
Empirical and Behavioural Software Engineering R e q u i r e m e n t s E n g i n e e r i n g Q u a l i t y E n g i n e e r i n g Engineering Software Tools S a f e t y & S e c u r i t y E n g i n e e r i n g C o n t i n u o u s , A g i l e & L e a n E n g i n e e r i n g
What’s Productivity? Terminology and Influencing Factors Rethinking Productivity in Software Engineering Dagstuhl, 2017-03-06/07 Stefan Wagner
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
The Chimera of Software Productivity Product Lines Intangibility of Software Efficiency Reuse Effectiveness Automation Productivity Tools Performance Model-Driven Profitability Implementation Test Quantity Maintenance Functionality Team Quality LOC, FP, … Workplace Improvement, Measurement, Comparison
A Timeline of Productivity Research in Software Engineering 1968 2005 1986 2010s First experimental Jones’ studies Programming 1979 Productivity Albrecht’s Function Points 1975 1981 1987 2000 2000s Story Points
What is Productivity?
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
Productivity • Difficult for knowledge work Units of Size • Could consider products – Quality Output – Timeliness Productivity = Input – Project success – Customer satisfaction – Innovation Units of Person- material hours • No broadly applicable and accepted means for productivity measurement
Profitability Price inflation Profitability = Revenue Cost Cost inflation
Performance To satisfy our shareholders, what business processes must we Financial excel at? Vision Internal Business and Customer Processes Strategy Learning and Growth
The PE Model Customer perception Performance Inflation, pricing Profitability Productivity Effectiveness Quality Functionality Purpose Effort Efficiency [based on Tangen, 2005]
What general factors influences productivity?
Factors in Software Development. In Proc. 2nd International Workshop on Technical Factors Wagner, S. and Ruhe, M. (2008) A Systematic Review of Productivity Software Productivity Analysis and Cost Estimation (SPACE 2008). Doc. Match to Life-Cycle N. 2 Use of Modern Dev. Pract. 7 Programming Language 3 Dev. Env. Use of Software Tools 7 Hardware Concurrent Dev. 3 Project Duration 2 Effective and Efficient V&V 1 Completemenss of Design 2 Early Prototyping 1 Process Platform Volatility 3 Process Maturity 1 Architecture Risk Resolution 1 Reuse 2 Development Flexibility 2 User Interface 3 2 Product Quality 4 Software Size Product Main Storage Constraint 3 Execution Time Constraints 7 Developed for Reusability 3 6 Product Complexity 2 Database Size 3 Required Software Reliability 2 Precedentedness # of publications
Soft Factors Avg. Team Size 10 Project Req. Stability 6 Schedule 5 Telecom. Facilities 2 Physical Separation 4 Time Fragmentation 1 Environment E-Factor 2 Proper Workplace 3 Manager App. Experience 2 Manager Capability 7 Lang. and Tool Experience 8 Cap. & Exp. Platform Experience 7 Applications Experience 7 Progammer Capability 10 Analyst Capability 8 Developer Temperaments 1 Support for Innovation 1 Communication 4 9 Team Cohesion Team Culture Turnover 7 3 Clear Goals 3 Sense of Eliteness Team Identity 2 1 Camaraderie 5 Fairness Corp. Culture Respect 6 4 Credibility # of publications
Do personality and programming styles influence productivity?
Developers differ in their performance, decision making and working habits.
Personality Test 5 The Big Five Openness to Experience Closed-Minded Open to New Experiences Conscientiousness Disorganised Conscientious Extraversion Introverted Extraverted Agreeableness Agreeable Disagreeable Emotional Stability Calm/Relaxed Nervous / High-Strung
Cox and Fisher’s Theory Programming Context’s Factors Task Situation Programming Influence Styles Individual internal like personality external like experience
Programming Styles Bottom-up & Bottom-up Top-down & Top-down & breadth-first & depth-first depth-first breadth-first
Study Design Age Programming Attitude towards Personality Experience Programming Factors Gender ? Human Programming Factors Styles ? Programming Performance Programmer Quality Project and Code Code Quality (Static (self-assessed) Quality (Grade) Analysis Warnings)
Significant Correlations (All Positive) Years at University (Experience) Number of Programming Languages (Experience) Large Revisions (Programming Style) Programming Performance Depth-First Programming Style Conscientiousness Academic Age (Personality) Achievement
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
There is a significant relation between personalities of programmers and their programming styles.
So how do we measure and improve it?
The ProdFLOW TM 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.
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
Joint work with Manfred Broy, Florian Deissenboeck, Melanie Ruhe, Zahra Karimi, Ahmad Baraani-Dastjerdi, Nasser Ghasem-Aghaee Prof. Dr. Stefan Wagner e-mail stefan.wagner@informatik.uni-stuttgart.de 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.
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)
Recommend
More recommend