User-Driven Development for Bespoke Software
Total Page:16
File Type:pdf, Size:1020Kb
User-Driven Development for Bespoke Software Tryggvi Björgvinsson Dissertation submitted in partial fulfillment of a Philosophiae Doctor degree in Software Engineering Supervisor Dr. Helgi Þorbergsson, University of Iceland Doctoral Committee Dr. Helgi Þorbergsson, University of Iceland Dr. Helmut Neukirchen, University of Iceland Dr. Mathias Klang, University of Gothenburg Opponents Dr. Pekka Abrahamsson, Free University of Bozen-Bolzano Dr. Finn Kensing, University of Copenhagen Faculty of Industrial Engineering, Mechanical Engineering and Computer Science School of Engineering and Natural Sciences University of Iceland Reykjavik, January 2013 User-Driven Development for Bespoke Software Dissertation submitted in partial fulfillment of a Philosophiae Doctor degree in Software Engineering Copyright 2013 Tryggvi Björgvinsson This work is licensed under the Creative Commons Attribution-ShareAlike 3.0 Unported License. To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/3.0/. Faculty of Industrial Engineering, Mechanical Engineering and Computer Science School of Engineering and Natural Sciences University of Iceland Hjarðarhagi 2--6 107 Reykjavík Iceland Telephone: 525 4700 Bibliographic information: Tryggvi Björgvinsson, 2013, User-Driven Development for Bespoke Software, PhD dissertation, Faculty of Industrial Engineering, Mechanical Engineering and Computer Science, University of Iceland. ISBN 978-9935-9069-6-0 Printing: Háskólaprent Reykjavik, Iceland, January 2013 To my mother, Björk Tryggvadóttir, and father, Björgvin Magnússon. Without your support I would never have gotten this far. Abstract Software engineering as a discipline has for the last few decades tried to tackle the problem of software project failures. A software engineer's arsenal consists of various methods and tech- niques applicable to the plethora of different software projects. Initially the field focused on a rigid methodology where the methods follow a similar work-flow and focus on delivering a product based on the customer's requirements. This methodology, what can be called classic software development, is to a large extent based on academic research and observations. Lately another methodology, agile software development, has has garnered much traction. Agile software development, which is a collection of methods and techniques used in practice by experienced developers, puts more emphasis on individuals and delivering constantly changing software. Free and open source software has received a lot of attention in the recent years and is usually developed using a method that strongly resembles those of the agile software devel- opment methodology. However, unlike both agile and classic software development where the motivation for the development is extrinsic, free and open source development has traditionally been based on an intrinsic motivation of the developers themselves. The need to solve a personal problem is usually what sparks off development of free and open source software. The software and its development is opened up to others who can use it as a base to solve their own problems. This leads to general software that solves the needs of many. Usually user solve their problems by hiring contractors to develop bespoke software. This opens the question of whether open source software can benefit users who do not possess any development skills. The ideological foundation of open source software is free software. Therefore, when we look at it more closely, the question revolves around the four freedoms of iii free software. The research question of this dissertation is therefore: How can the four freedoms of free software benefit bespoke software development? In order to try and answer this research question, we conduct an ethnographic study where we look at three different groups: free and open source software developers, software develop- ers in general, and users for whom the software is developed. Knowledge and understanding of these groups reveal to us that free and open source software development is in fact funda- mentally different to both classic software development and agile software development. The main difference between these development approaches is how information flows between all stakeholders in the software project. From this observation we define a new methodology, User Driven Development, where the user becomes the project leader over the software development. Preface What motivates an individual to spend a good chunk of his or her life only to be able to append three letters to ones name? Is it the money? Probably not. Living on a budget below the min- imum wage of ones profession is hardly a strong argument for years of professional solitude buried behind books. Is it showing off? Not likely. Why would anyone want to brag about intel- lectual desolation and despair? Is it a higher social status? For some but other people see doctors philosophæ as eccentric men sporting berets and beards1. The high social status is only respected within the small eccentric community of the beret wearing, bearded men themselves. So why would one want to join this small community? For me, it is joy. The pure and simple joy of acquiring new knowledge and quenching my intellectual curiosity. Most importantly it is, quite frankly, the immense joy I get from knowing that I am doing my best to improve the quality of life of everybody within my community. My goals in life are simple. I want to improve the quality of life for those around me and those who come after me. My friend, John Perry Barlow, expressed this beautifully: "I want to be a good ancestor". I have further prioritised this for my own needs. I want to improve the quality of life for (1) my family, (2) my local and cyberspace community, and in the end (3) the world. With this dissertation I want to contribute to my life goals. I want to help the world under- stand more about my field, to advance human knowledge with respect to software development and software freedom. I also want to advance my own knowledge on the subject so that I will be better equipped to help my local community as well as my cyberspace community. Contra- 1There are of course eccentric women as well (who then do not have beards) but "a beret and a beard" is a description I heard to describe those who have a Ph.D. and it stuck. vi PREFACE dictory to common sense I want this dissertation to help me improve the quality of life for my family, current and future family. They have endured years of little attention while I have been getting educated and preparing myself for the future. In the end I hope the knowledge gained and the education I have received can lead to a better life for me and my descendants. If this dissertation is supposed to help my community and, hopefully in the end, the world it must be understandable to those who I want to be able to read it. I do not want to focus only on software engineers. Software engineers are not the only ones inflicted by changes in software development. Obviously software developers must adapt, but normal end-users, the people around us who all use computers, must adapt as well. Software engineering, and in fact every discipline, has its own jargon which can be incom- prehensible to others. I have set myself a personal goal, when writing this dissertation, to avoid as much jargon as possible or at the very minimum explain it if I decide to use a word unknown to the general public. That is I will try to present my research and results, whenever possible, in layman's terms. I will use analogies, graphical illustrations, and explanations to make the content of the dissertation as widely understandable as possible, unless it affects the research itself and its conclusion. To set such a personal goal is rather unconventional since no author purposely tries to make his or her work inaccessible to others. Nonetheless I feel it is important to clearly emphasise this, since what use is this research if its conclusions cannot be understood by the intended audience? Another personal goal I have set for myself concerns a different kind of accessibility. Free and open access to knowledge is a vital prerequisite to the development of human capital. The world's intellectual development would grind to a halt if there was no access to prior knowledge. I therefore set myself the goal to use books available in bookstores and libraries, and scientific articles available openly, free of charge on the world wide web for my research. Sadly, this is harder than it seems. Access to knowledge is far more restricted than I wanted it to be. Even worse is how the web is used to restrict knowledge. I am fortunate to have access to many journals and articles only because I did most of my research at the University of Iceland. The Icelandic government and the University of Iceland have paid for national and institutional subscriptions to journals which researchers in other institutions and other countries are not able to access as easily. vii It is a sad turn of events. The Internet was designed as and end-to-end network, meaning that the network itself is stupid, it is just there to relay information. The end-nodes, i.e. com- puters connected to the network, could rely on the network to send information to other nodes. This design is still there but now a few of the end-nodes are examining in what country the other node is sitting. I hardly believe that hindering the access to information, if your Ethernet cable happens to be connect to the Net in a particular country, was the original intention of the de- signers. So since I happened to be doing my research in one country, Iceland, I might have had more access to knowledge than other researchers in other countries. Unfortunately, I did not make a habit of checking licenses rigorously and therefore cannot be certain that I was able to reach this goal, although I am certain that I tried.