{"id":7,"date":"2010-03-05T18:21:35","date_gmt":"2010-03-05T18:21:35","guid":{"rendered":"http:\/\/www.belouin.com\/blog\/?p=7"},"modified":"2010-04-03T19:09:14","modified_gmt":"2010-04-03T19:09:14","slug":"a-short-and-biased-history-of-software-development-methodologies","status":"publish","type":"post","link":"http:\/\/belouin.com\/blog\/2010\/03\/a-short-and-biased-history-of-software-development-methodologies\/","title":{"rendered":"A short and biased history of software development methodologies"},"content":{"rendered":"<p><em>This post is based on the <\/em><a onclick=\"javascript:pageTracker._trackPageview('\/outgoing\/www.slideshare.net\/guestb4b811\/dev8d-presentation-pascal-belouin');\" title=\"the slides from my talk at dev8d 2010\"  href=\"http:\/\/www.slideshare.net\/guestb4b811\/dev8d-presentation-pascal-belouin\" target=\"_blank\"><em>slides from my talk at dev8D<\/em><\/a><em> and various research proposals and essays.<\/em><br \/>\n<br \/>\nAlthough it&#8217;s a relatively young discipline, software design already has a rich history, punctuated by epic failures, a lot of innovation and incredible successes. Indeed, With the explosion of the Web, it could be argued that the idea of \u2018software\u2019, and more precisely the process through which new information-technology-based interactive systems are created and adopted has now a strong influence on the life of a growing number of people.<br \/>\n<br \/>\nThe problem with all these recent technologies is that they evolve so fast that it becomes very difficult to try and understand exactly what&#8217;s happening. Although new amazing and exciting interactive systems appear almost everyday, it becomes difficult to understand what makes a good system, and the reason why particular applications gain immediate attention where very similar ones, which may have appeared a long time before these, are completely ignored.<br \/>\n<br \/>\nAs a first step towards trying to gain a better understanding of the relationship between humans and interactive systems, it seem to make sense to try and borrow from sociological or psychological literature. However, technology seem to appear sometimes as a rather daughting subject and which can quite easily become charged with cultural and sociological values: Each person brings his or her own experiences and ways of experiencing technology, and a developer for example will have a very different view of the system he or she is developing when compared with other stakeholders of a development project, a typical example being a regular user of the system.<br \/>\n<br \/>\nIndeed, this (cultural? social?) gap between developers and users has become more and more salient over time, as development methodologies such as <em><a onclick=\"javascript:pageTracker._trackPageview('\/outgoing\/agilemanifesto.org\/');\" title=\"agile manifesto\"  href=\"http:\/\/agilemanifesto.org\/\" target=\"_blank\">agile<\/a> <\/em>where developed with an emphasis on communication, people, and values.<br \/>\n<br \/>\nThus, almost on &#8220;argument&#8217;s sake&#8221;, it could be interesting to explore the history of software development methodologies, to see how these particular &#8216;discourses&#8217; have been produced over time, and how the meaning of what we could call an &#8216;application&#8217; or a piece of software.<br \/>\n<br \/>\nThe history of software design methodologies (where the term methodology is understood as a group of methods and techniques for the elaboration of software applications) could be roughly divided in three main phases. First, as the need for software to support an increasing number of human tasks grew, inspiration was taken from the industrial world and software design processes where based for instance on the \u2018waterfall\u2019 model (<a onclick=\"javascript:pageTracker._trackPageview('\/outgoing\/leadinganswers.typepad.com\/leading_answers\/files\/original_waterfall_paper_winston_royce.pdf');\"  href=\"http:\/\/leadinganswers.typepad.com\/leading_answers\/files\/original_waterfall_paper_winston_royce.pdf\" target=\"_blank\">Royce, 1970<\/a>), where parts of the development such as planning and prototyping where followed by the actual coding of the piece of software, which would then be tested and finally released, all in a very sequential and planned manner.<br \/>\n<br \/>\n<div id=\"attachment_52\" style=\"width: 310px\" class=\"wp-caption alignleft\"><a onclick=\"javascript:pageTracker._trackPageview('\/downloads\/blog\/wp-content\/uploads\/2010\/03\/chronology.jpg');\"  href=\"http:\/\/www.belouin.com\/blog\/wp-content\/uploads\/2010\/03\/chronology.jpg\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-52\" class=\"size-medium wp-image-52 \" title=\"chronology of the computer science field\" src=\"http:\/\/www.belouin.com\/blog\/wp-content\/uploads\/2010\/03\/chronology-300x165.jpg\" alt=\"A few significant dates in the history of computer science\" width=\"300\" height=\"165\" srcset=\"http:\/\/belouin.com\/blog\/wp-content\/uploads\/2010\/03\/chronology-300x165.jpg 300w, http:\/\/belouin.com\/blog\/wp-content\/uploads\/2010\/03\/chronology.jpg 860w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><p id=\"caption-attachment-52\" class=\"wp-caption-text\">A few significant dates in the history of computer science<\/p><\/div><br \/>\n<br \/>\nIn 1968, it was brought to consideration that a large amount of software projects where failing, resulting in what was deemed a \u2018software crisis\u2019. Later, new software development methodologies started to appear, as the software development field continued to diversify professionally.<br \/>\n<br \/>\nIn the same time, multidisciplinary approaches such as human-computer interaction, mixing psychology and computer science, started to gain academic momentum. As the need to consider the interactions between users and the system and of properly eliciting their requirements started to take the central stage, new development methodologies such as agile and user-centric iterative development approaches where designed and applied with success to a growing number of software projects.<br \/>\n<br \/>\nThis strong emphasis on \u2018users needs\u2019 which appeared relatively recently in the history of software development, and the success of software development methods highlighting the importance of values as well as issues of meaning and communication between the various stakeholders of a software development project seem to suggest an evolution of development methodologies as a particular form of discourse from a focus on technology and the \u2018inner workings\u2019 of a software system to a focus on users, interactions, and therefore the social aspect of this activity.<br \/>\n<br \/>\nThus, it seems clear that a shift in the way \u2018software development\u2019 is perceived seem to have happened where discourse about this particular topic started to integrate more and more concerns about interactions between users, systems, and system developers.<br \/>\n<br \/>\nWhat we could argue is that this evolution makes the adoption and adaptation of theoretical frameworks borrowed from social sciences becomes more and more of a necessity and even a necessary step in the evolution of, to speak widely, &#8216;computer science&#8217;. It appears that these adaptations and borrowings have so far been rather gestural, and that there is a lot yet to explore in the way social theory can help us understand &#8216;interactive systems&#8217;, for lack of a better word&#8230;<br \/>\n<br \/>\nA quick sum up:<\/p>\n<ul>\n<li>Late 60s : Emergence of a professionalised software engineering field: \u2018software developer\u2019 becomes a job<\/li>\n<\/ul>\n<ul>\n<li>68 : The software crisis: the failure of numerous large software projects led to a realisation of the pitfalls inherent to software development<\/li>\n<\/ul>\n<ul>\n<li>80s to 00s: Looking for new directions, growing importance of Human-Computer Interaction principles, apparition of the \u2018Interaction Designer\u2019; further professional specialisation.<\/li>\n<\/ul>\n<ul>\n<li>Now: Increase in the use and elaboration of user-centred and agile development methods; increasing role of usability principles in design. Focus towards the social possibilities offered by technology: Web 2.0 and \u2018social media\u2019, pervasive and ubiquitous computing. Apparition of Behaviour-driven development (BDD). Semantic web\u2026<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>This post is based on the slides from my talk at dev8D and various research proposals and essays. Although it&#8217;s a relatively young discipline, software design already has a rich history, punctuated by epic failures, a lot of innovation and incredible successes. Indeed, With the explosion of the Web, it could be argued that the [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[4,9,11,10,7,6,5,8],"class_list":["post-7","post","type-post","status-publish","format-standard","hentry","category-theory","tag-agile","tag-dev8d","tag-history","tag-interactive-systems","tag-meaning","tag-sociology","tag-software-development-methodologies","tag-technology"],"_links":{"self":[{"href":"http:\/\/belouin.com\/blog\/wp-json\/wp\/v2\/posts\/7","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/belouin.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/belouin.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/belouin.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/belouin.com\/blog\/wp-json\/wp\/v2\/comments?post=7"}],"version-history":[{"count":21,"href":"http:\/\/belouin.com\/blog\/wp-json\/wp\/v2\/posts\/7\/revisions"}],"predecessor-version":[{"id":218,"href":"http:\/\/belouin.com\/blog\/wp-json\/wp\/v2\/posts\/7\/revisions\/218"}],"wp:attachment":[{"href":"http:\/\/belouin.com\/blog\/wp-json\/wp\/v2\/media?parent=7"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/belouin.com\/blog\/wp-json\/wp\/v2\/categories?post=7"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/belouin.com\/blog\/wp-json\/wp\/v2\/tags?post=7"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}