How Computer Programmers Work

Understanding Software Development in Practice

Till ett fritt folk
Vapaalle kansalle


How Computer Programmers Work
©2015–2019 Espen Suenson; ©2017 Jyrki Katajainen and Company
Cover design by Rakel Hinriksdóttir
Published in 2017 by Jyrki Katajainen and Company (paperback). Published by Suenson Systemudvikling in 2017 (PDF e-book), and in 2019 (web site).
Jyrki Katajainen and Company has the exclusive, world-wide and unlimited right to reproduce, publish, distribute, and sell this work in all printed forms and printed media.
Paperback: ISBN 978-87-991521-2-4
PDF e-book: ISBN 978-87-999875-0-4

Contents

About the author

Acknowledgements

1 Why study programming?

2 Programming practice

3 Programming theories

4 Game programming

5 Safety critical programming

6 Programming culture

7 Writing programs

8 Reflections

9 Understanding

List of source material

Bibliography

About the author

Espen Suenson was born in 1979 in Copenhagen. He obtained his doctoral degree in software engineering from Åbo Akademi in 2015. This book is an edited version of his PhD thesis. He holds an MSc in computer science and a BA in European ethnology from Københavns Universitet.

Suenson started his career as a professional programmer in 1999, developing the online banking page of a mid-size Danish bank. He has worked with programming as a research assistant at Københavns Universitet in the fields of programming language research, evolutionary biology, and neuroscience. In 2003 he worked as a programmer at the naval base in Korsør and from 2003–2004 he worked for a market survey provider. From 2007–2008, Suenson worked for a global satellite television company in a cross-disciplinary Scrum team, and from 2010–2011 as a researcher in the Software Engineering Laboratory at Åbo Akademi. Since 2014 he has been working as a programmer in the public sector for a consultancy in Copenhagen.

Suenson has served as a board member and editor of Nord Nytt, the Nordic peer-reviewed journal of ethnology and folkloristics, from 2004–2008, and from 2012–2014 has lectured in Nordic ethnology at Åbo Akademi.

Acknowledgements

This research has been made possible through the generous financial support of Svenska kulturfonden i Finland, Svenska litteratursällskapet i Finland, Gustaf Packaléns mindefond, det Suensonske familielegat, and Turku Centre for Computer Science.

I would like to thank my advisors from Åbo Akademi for their help and their engagement and interest in my research: Anna-Maria Åström, professor in Nordic ethnology; Iván Porres, professor in software engineering; and Patrick Sibelius, lecturer in computer science.

I would like to thank my closest research collaborators – my parents Susanne (public health, Københavns Universitet) and Thomas Suenson (ethnology, Københavns Universitet) – who have been actively involved in the entire research process. The most important things I know, I have learned from them.

Thanks to my mentor Hans Axel Kristensen who taught me to figure out what I want to achieve. Thanks also to my friend and colleague Ann-Helen Sund (ethnology, Åbo Akademi), who has been a great help during the writing process, and to Jeanette Heidenberg (software engineering, Åbo Akademi), with whom I had the pleasure to collaborate during data collection.

Heartfelt thanks to the many people who have helped me and encouraged me along the way, especially in the difficult first stages of my research. Among them are Jyrki Katajainen (computer science, Københavns Universitet), Fritz Henglein (computer science, Københavns Universitet), Thomas Højrup (ethnology, Københavns Universitet), Jukka Teuhola (computer science, Turun yliopisto), Eija Karsten (management systems, Åbo Akademi), Markku Heikkilä (management systems, Åbo Akademi), Katariina Heikkilä (ethnology, Turun yliopisto), Helena Ruotsala (ethnology, Turun yliopisto), Thomas Geisnæs (philosophy, Københavns Universitet), Gry Søbye (ethnology, Københavns Universitet), and Jeppe Høst (ethnology, Københavns Universitet).

I would like also to express my gratitude to my friends from the student organization NEFA (Nordisk Etnologisk Folkloristisk Arbejdsgruppe). It was through their friendship that I came to find my way to Finland. Particular thanks to Karoliina Autere (ethnology, Turun yliopisto), Päivi Salonen (ethnology, Turun yliopisto), and Mikko Helminen (archaeology, Turun yliopisto) – and to Jenny Viitanen (folkloristics, Turun yliopisto), for helping me to find my home in Finland.

A very warm thanks to the owners and employees of Tribeflame, who took my observation of their work and the disturbance it caused in good spirit. Thanks to all the engineers and developers who allowed me to interview them in connection with the RECOMP research project. Thanks also to the programmers and IT professionals whose interviews have not been used in this research, but which were a great help nonetheless: Luka Milovanov, Henri Sara, Riku Mustila, and Olli Salli.

Thanks to the researchers and staff from the institutions I have been a part of at Åbo Akademi: The Department of Information Technologies, especially the Software Engineering Laboratory, and the Faculty of Arts, especially the Department of Nordic Ethnology.

Thanks to the participants in the ethnological research seminar at Åbo Akademi: Anna-Maria Åström, Ann-Helen Sund, Niklas Huldén, Anna-Liisa Kuczynski, Sanna Lillbroända-Annala, Katriina Siivonen, Ole Rud Nielsen, Kasper Westerlund, Camilla Hautala, Sonja Hagelstam, Marcus Lepola, and Evaristo López Ruano (cultural anthropology, Universitat de Barcelona).

Thanks to the participants in the weekly software research discussion group SEMPRE at the Department of Information Technologies, among whom are: Jeanette Heidenberg, Marta Olszewska (computer science, Åbo Akademi), Piia Hirkman (management systems, Åbo Akademi), Max Weijola (software engineering, Åbo Akademi), Tingting Lin (information systems, Turun yliopisto), Henrik Nyman (management systems, Åbo Akademi), Samuel Rönnquist (computer science, Åbo Akademi), Johannes Eriksson (computer science, Åbo Akademi), and Natalia Díaz Rodríguez (computer engineering, Åbo Akademi).

Thanks to all of my programming colleagues and employers
through the years, especially Casper Gjerris and my development team at NDS Denmark: Guus Oosterbaan, Nanna Glerup, Martin Lorensen, Søren Thomsen, Anders Petersen, and Kristian Knak. My practical experience with programming work has been crucial to my research.

Thanks to the ScrumPLoP community for inspiration, especially Dina Friis (computer science, Københavns Universitet) and Jim Coplien.

Thanks to all of my Finnish teachers, especially Jenni Laine and Pirjo Vuoriluoto.

I am grateful for all the dear friends and acquaintances I have made in Finland, each and every one of you. Thanks to Emilia Komulainen for showing me the kokko in Naantali at Juhannus. Thanks to Johanna Vikman & Matti Toivio for being like a family to me.

Thanks to my wife and my family for the love that we share – it is what gives my work meaning.

Above all, praise and thanks be to the Lord Almighty, God of our fathers, the Trinity, One in essence and Undivided. For Thine is the kingdom, and the power, and the glory, of the Father, and of the Son, and of the Holy Spirit, now and ever, and unto ages of ages. Amen.