Nothing Special   »   [go: up one dir, main page]

skip to main content
10.1145/3368089.3409766acmconferencesArticle/Chapter ViewAbstractPublication PagesfseConference Proceedingsconference-collections
research-article

Exploring the evolution of software practices

Published: 08 November 2020 Publication History

Abstract

When software products and services are developed and maintained over longer time, software engineering practices tend to drift away from both structured and agile methods. Nonetheless, in many cases the evolving practices are far from ad hoc or chaotic. How are the teams involved able to coordinate their joint development?This article reports on an ethnographic study of a small team at a successful provider of software as a service. What struck us was the very explicit way in which the team adopted and adapted their practices to fit the needs of the evolving development. The discussion relates the findings to the concepts of social practices and methods in software engineering, and explores the differences between degraded behavior and the coordinated evolution of development practices. The analysis helps to better understand how software engineering practices evolve, and thus provides a starting point for rethinking software engineering methods and their relation to software engineering practice.

Supplementary Material

Auxiliary Teaser Video (fse20main-p931-p-teaser.mp4)
The video presents the the background, the main empirical findings and the derived insights.
Auxiliary Presentation Video (fse20main-p931-p-video.mp4)
The video presents the the background, the main empirical findings and the derived insights.

References

[1]
Yanti Andriyani, Rashina Hoda, and Robert Amor. 2017. Understanding knowledge management in agile software development practice. In International Conference on Knowledge Science, Engineering and Management. Springer, 195-207.
[2]
Kent Beck, Mike Beedle, Arie Van Bennekum, Alistair Cockburn, Ward Cunningham, Martin Fowler, James Grenning, Jim Highsmith, Andrew Hunt, Ron Jefries, et al. [n.d.]. Manifesto for agile software development. https://agilemanifesto.org/
[3]
Elizabeth Bjarnason and Björn Regnell. 2012. Evidence-based timelines for agile project Retrospectives-A method proposal. In International Conference on Agile Software Development. Springer, 177-184.
[4]
Graham Button and Wes Sharrock. 1994. Occasioned practices in the work of software engineers. In Requirements engineering. Academic Press Professional, Inc., 217-240.
[5]
Karin Knorr Cetina. 2005. Objectual practice. In The practice turn in contemporary theory. Routledge.
[6]
Yvonne Dittrich. 2016. What does it mean to use a method? Towards a practice theory for software engineering. Information and Software Technology 70 ( 2016 ), 220-231.
[7]
Brian Fitzgerald. 1996. Formalized systems development methodologies: a critical perspective. Information Systems Journal 6, 1 ( 1996 ), 3-23.
[8]
Brian Fitzgerald, Nancy L Russo, and Erik Stolterman. 2002. Information systems development: Methods in action. McGraw-Hill Education.
[9]
Christiane Floyd. 1992. Software development as reality construction. In Software development and reality construction. Springer, 86-100.
[10]
Elihu M. Gerson. 2008. Reach, Bracket, and the Limits of Rationalized Coordination: Some Challenges for CSCW. Springer London, London, 193-220. https://doi.org/ 10.1007/978-1-84628-901-9_8
[11]
Rosalba Giufrida and Yvonne Dittrich. 2014. How social software supports cooperative practices in a globally distributed software project. In Proceedings of the 7th International Workshop on Cooperative and Human Aspects of Software Engineering. ACM, 24-31.
[12]
Rosalba Giufrida and Yvonne Dittrich. 2015. A conceptual framework to study the role of communication through social software for coordination in globallydistributed software teams. Information and Software Technology 63 ( 2015 ), 11-30.
[13]
James Herbsleb. 2016. Building a socio-technical theory of coordination: why and how (outstanding research award). In Proceedings of the 2016 24th ACM SIGSOFT International Symposium on Foundations of Software Engineering. 2-10.
[14]
Brian A Hoey. 2014. A simple introduction to the practice of ethnography and guide to ethnographic fieldnotes. Marshall University Digital Scholar 2014 ( 2014 ), 1-10.
[15]
Brigitte Jordan and Austin Henderson. 1995. Interaction analysis: Foundations and practice. The journal of the learning sciences 4, 1 ( 1995 ), 39-103.
[16]
Pernille Lous, Paolo Tell, Christian Bo Michelsen, Yvonne Dittrich, and Allan Ebdrup. 2018. From Scrum to Agile: a journey to tackle the challenges of distributed development in an Agile team. In Proceedings of the 2018 International Conference on Software and System Process. ACM, 11-20.
[17]
Pernille Lous, Paolo Tell, Christian Bo Michelsen, Yvonne Dittrich, Marco Kuhrmann, and Allan Ebdrup. 2018. Virtual by design: how a work environment can support agile distributed software development. In 2018 IEEE/ACM 13th International Conference on Global Software Engineering (ICGSE). IEEE, 97-106.
[18]
D. Martin, J. Rooksby, M. Rouncefield, and I. Sommerville. 2007. ' Good' Organisational Reasons for 'Bad' Software Testing: An Ethnographic Study of Testing in a Small Software Company. In 29th International Conference on Software Engineering (ICSE'07). 602-611. https://doi.org/10.1109/ICSE. 2007.1
[19]
L. Mathiassen, A. Munk-Madsen, P. A. Nielsen, and J. Stage. 1996. Method Engineering: Who's the Customer? Springer US, Boston, MA, 232-245. https: //doi.org/10.1007/978-0-387-35080-6_15
[20]
Christian Bo Michelsen. 2017. The Practice of ChangingPractices. IT University of Copenhagen.
[21]
M.B. Miles, A.M. Huberman, and J. Saldaña. 2013. Qualitative Data Analysis. SAGE Publications.
[22]
Peter Naur. 1985. Programming as theory building. Microprocessing and microprogramming 15, 5 ( 1985 ), 253-261.
[23]
Davide Nicolini. 2012. Practice theory, work, and organization: An introduction. OUP Oxford.
[24]
Leon Osterweil. 2011. Software processes are software too. In Engineering of Software. Springer, 323-344.
[25]
Colin Robson. 2011. Real world research. Vol. 3. Wiley Chichester.
[26]
Kari Rönkkö, Yvonne Dittrich, and Dave Randall. 2005. When plans do not work out: How plans are used in software development projects. Computer Supported Cooperative Work (CSCW) 14, 5 ( 2005 ), 433-468.
[27]
Outi Salo and Pekka Abrahamsson. 2007. An iterative improvement process for agile software development. Software Process: Improvement and Practice 12, 1 ( 2007 ), 81-100.
[28]
Theodore R Schatzki and Theodore R Schatzki. 1996. Social practices: A Wittgensteinian approach to human activity and the social. Cambridge University Press.
[29]
Kjeld Schmidt. 2014. The Concept of 'Practice': What's the Point?. In COOP 2014-Proceedings of the 11th International Conference on the Design of Cooperative Systems, 27-30 May 2014, Nice (France), Chiara Rossitto, Luigina Ciolfi, David Martin, and Bernard Conein (Eds.). Springer International Publishing, Cham, 427-444.
[30]
Helen Sharp, Yvonne Dittrich, and Cleidson RB De Souza. 2016. The role of ethnographic studies in empirical software engineering. IEEE Transactions on Software Engineering 42, 8 ( 2016 ), 786-804.
[31]
Anders Sigfridsson, Gabriela Avram, Anne Sheehan, and Daniel K Sullivan. 2007. Sprint-driven development: working, learning and the process of enculturation in the PyPy community. In IFIP International Conference on Open Source Systems. Springer, 133-146.
[32]
Margaret-Anne Storey, Neil A Ernst, Courtney Williams, and Eirini Kalliamvakou. 2020. The who, what, how of software engineering research: a socio-technical framework. Empirical Software Engineering ( 2020 ), 1-33.
[33]
Anselm Strauss. 1985. Work and the Division of Labor. The Sociological Quarterly 26, 1 ( 1985 ), 1-19. https://doi.org/10.1111/j.1533-8525. 1985.tb00212.x arXiv:https://doi.org/10.1111/j.1533-8525. 1985.tb00212.x
[34]
CMMI Product Team. 2006. CMMI for Development, version 1.2. ( 2006 ).
[35]
Antônio R. D. R. Techio, Rafael Prikladnicki, and Sabrina Marczak. 2015. Reporting Empirical Evidence in Distributed Software Development: An Extended Taxonomy. In Proceedings of the IEEE International Conference on Global Software Engineering (ICGSE). IEEE, Washington, DC, USA, 71-80.
[36]
Paolo Tell, Jil Klünder, Stefen Küpper, David Rafo, Stephen G MacDonell, Jürgen Münch, Dietmar Pfahl, Oliver Linssen, and Marco Kuhrmann. 2019. What are hybrid development methods made of?: an evidence-based characterization. In Proceedings of the International Conference on Software and System Processes. IEEE Press, 105-114.
[37]
Hataichanok Unphon and Yvonne Dittrich. 2010. Software architecture awareness in long-term software product evolution. Journal of Systems and Software 83, 11 ( 2010 ), 2211-2226. https://doi.org/10.1016/j.jss. 2010. 06. 043 Interplay between Usability Evaluation and Software Development.
[38]
Etienne Wenger. 1998. Communities of practice: Learning as a social system. Systems thinker 9, 5 ( 1998 ), 2-3.
[39]
Ludwig Wittgenstein. 2009. Philosophical investigations. John Wiley & Sons.

Cited By

View all
  • (2023)Acrobats and Safety Nets: Problematizing Large-Scale Agile Software DevelopmentACM Transactions on Software Engineering and Methodology10.1145/361716933:2(1-45)Online publication date: 23-Dec-2023
  • (2023)“What if everyone is able to program?” – Exploring the Role of Software Development in Science FictionProceedings of the 2023 CHI Conference on Human Factors in Computing Systems10.1145/3544548.3581436(1-13)Online publication date: 19-Apr-2023
  • (2023)Contradicting Motivations in Civic Tech Software Development: Analysis of a Grassroots ProjectProceedings of the 45th International Conference on Software Engineering: Software Engineering in Society10.1109/ICSE-SEIS58686.2023.00021(157-163)Online publication date: 17-May-2023
  • Show More Cited By

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM Conferences
ESEC/FSE 2020: Proceedings of the 28th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering
November 2020
1703 pages
ISBN:9781450370431
DOI:10.1145/3368089
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 08 November 2020

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. Agile software development
  2. Cooperative and human aspects of software engineering
  3. Empirical software engineering
  4. Software Processes

Qualifiers

  • Research-article

Conference

ESEC/FSE '20
Sponsor:

Acceptance Rates

Overall Acceptance Rate 112 of 543 submissions, 21%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)41
  • Downloads (Last 6 weeks)6
Reflects downloads up to 19 Sep 2024

Other Metrics

Citations

Cited By

View all
  • (2023)Acrobats and Safety Nets: Problematizing Large-Scale Agile Software DevelopmentACM Transactions on Software Engineering and Methodology10.1145/361716933:2(1-45)Online publication date: 23-Dec-2023
  • (2023)“What if everyone is able to program?” – Exploring the Role of Software Development in Science FictionProceedings of the 2023 CHI Conference on Human Factors in Computing Systems10.1145/3544548.3581436(1-13)Online publication date: 19-Apr-2023
  • (2023)Contradicting Motivations in Civic Tech Software Development: Analysis of a Grassroots ProjectProceedings of the 45th International Conference on Software Engineering: Software Engineering in Society10.1109/ICSE-SEIS58686.2023.00021(157-163)Online publication date: 17-May-2023
  • (2022)Conceptualizing Information Systems Development as an Organizational RoutineACM SIGMIS Database: the DATABASE for Advances in Information Systems10.1145/3551783.355179053:3(91-107)Online publication date: 26-Jul-2022
  • (2021)A New Sustainable Hybrid Software Development Methodology: FIRAT-UG2021 9th International Symposium on Digital Forensics and Security (ISDFS)10.1109/ISDFS52919.2021.9486385(1-4)Online publication date: 28-Jun-2021

View Options

Get Access

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media