Abstract
Screencasts are used to capture a developer’s screen while they narrate how a piece of software works or how the software can be extended. They have recently become a popular alternative to traditional text-based documentation. This paper describes our investigation into how developers produce and share developer-focused screencasts. In this study, we identified and analyzed a set of development screencasts from YouTube to explore what kinds of software knowledge are shared in video walkthroughs of code and what techniques are used for sharing software knowledge. We also interviewed YouTube screencast producers to understand their motivations for creating screencasts as well as to discover the challenges they face while producing code-focused videos. Finally, we compared YouTube screencasts to videos hosted on the professional RailsCasts website to better understand the differences and practices of this more curated ecosystem with the YouTube platform. Our three-phase study showed that video is a useful medium for communicating program knowledge between developers and that developers build their online persona and reputation by sharing videos through social channels. These findings led to a number of best practices for future screencast creators.
Similar content being viewed by others
Notes
Click on the URL links in the PDF to navigate to the videos.
More in-depth information about our coding methodology can be found in (MacLeod 2015).
A copy of our code book can be found at http://lmacleod.com/docs/ICPC2015_Codebook.pdf
A copy of our interview questions can be found at http://lmacleod.com/docs/ICPC2015_Interview_questions/
http://www.alexa.com/siteinfo/railscasts.com. Alexa rankings as of October 2015.
References
Adamic LA, Zhang J, Bakshy E, Ackerman MS (2008) Knowledge sharing and yahoo answers: Everyone knows something. In: Proceedings of the 17th International Conference on World Wide Web. ACM, pp 665–674
Adolph S, Hall W, Kruchten P (2011) Using Grounded Theory to Study the Experience of Software Development. Empir Softw Eng 16(4):487–513
Azer SA (2012) Can youtube help students in learning surface anatomy? Surg Radiol Anat 34(5):465–468
Biggerstaff TJ, Mitbander BG, Webster D (1993) The concept assignment problem in program understanding. In: Proceedings of the 15th International Conference on Software Engineering. IEEE Computer Society Press, Los Alamitos, pp 482–498
Brooks R (1983) Towards a theory of the comprehension of computer programs. Int J Man Mach Stud 18(6):543–554
Capiluppi A, Serebrenik A, Singer L. (2013) Assessing technical candidates on the social web. Software, IEEE 30(1):45–51
Charmaz K (2006) Constructing grounded theory a practical guide through qualitative analysis pine forge press
Dabbish L, Stuart C, Tsay J, Herbsleb J (2012) Social coding in github: Transparency and collaboration in an open software repository. In: Proceedings of the ACM 2012 Conference on CSCW. ACM, pp 1277–1286
Dagenais B, Robillard MP (2010) Creating and evolving developer documentation: understanding the decisions of open source contributors. In: Proceedings of the 18th ACM SIGSOFT International Symposium on Foundations of Software Engineering. ACM, pp 127–136
Duffy P (2007) Engaging the youtube google-eyed generation: Strategies for using web 2.0 in teaching and learning. In: European Conference on ELearning, pp 173–182
Duncan I, Yarwood-Ross L, Haigh C (2013) Youtube as a source of clinical skills education. Nurse Educ Today 33(12):1576–1580
Ellison NB (2007) Social network sites Definition, history, and scholarship. Journal of Computer-Mediated Communication 13(1):210–230
Gubrium JF (2012) The Sage handbook of interview research: The complexity of the craft Sage
Guo PJ, Kim J, Rubin R (2014) How video production affects student engagement: An empirical study of mooc videos. In: Proceedings of the First ACM Conference on Learning @ Scale Conference L@S ’14. ACM, New York, pp 41–50
Krippendorff K (2012) Content Analysis An Introduction to its Methodology Sage
Lankshear C, Knobel M (2010) Diy media A contextual background and some contemporary themes. DIY media: creating, sharing and learning with new technologies. Peter Lang, New York, pp 1–21
Lee M, Pradhan S, Dalgarno B (2008) The effectiveness of screencasts and cognitive tools as scaffolding for novice object-oriented programmers. J Inf Technol Educ: Research 7(1):61–80
Lethbridge TC, Singer J, Forward A (2003) How software engineers use documentation the state of the practice. Software, IEEE 20(6):35–39
Levy M (2009) Web 2.0 implications on knowledge management. J Knowl Manag 13(1):120–134
Lindvall M, Rus I (2002) Knowledge management in software engineering. IEEE Softw 19(3):0026–38
MacLeod L (2015) Code, camera, action!: How software developers document and share program knowledge using youtube. University of Victoria, Master’s thesis
MacLeod L, Storey M-A., Bergen A (2015) Code, camera, action: how software developers document and share program knowledge using youtube. In: Proceedings of the 2015 IEEE 23rd International Conference on Program Comprehension. IEEE Press, pp 104–114
MacQueen KM, McLellan E, Kay K, Milstein B (1998) Codebook development for team-based qualitative analysis. Cult Anthropol Methods 10(2):31–36
Mamykina L, Manoim B, Mittal M, Hripcsak G, Hartmann B (2011) Design lessons from the fastest q&a site in the west. In: Proceedings of the SIGCHI Conference on Human factors in Computing Systems. ACM, pp 2857–2866
Mohorovicic S (2012) Creation and use of screencasts in higher education. In: 2012 Proceedings of the 35th International Convention on Information and Communication Technology. Electronics and Miro-electronics. IEEE, pp 1293–1298
Oud J (2009) Guidelines for effective online instruction using multimedia screencasts. Ref Serv Rev 37(2):164–177
Paek H-J, Hove T, Ju Jeong H, Kim M (2011) Peer or expert? the persuasive impact of youtube public service announcement producers. Int J Advert 30(1):161–188
Panahi S, Watson J, Partridge H (2012) Social media and tacit knowledge sharing: Developing a conceptual model. World Acad Sci Eng Technol 64:1095–1102
Parnin C, Treude C, Grammel L, Storey M-A (2012) Crowd documentation Exploring the coverage and the dynamics of api discussions on stack overflow. Georgia Institute of Technology Tech. Rep
Ponzanelli L, Bavota G, Mocci A, Di Penta M, Oliveto R, Hasan M, Russo B, Haiduc S, Lanza M (2016) Too long; didn’t watch!: extracting relevant fragments from software development video tutorials. In: Proceedings of the 38th International Conference on Software Engineering. ACM, pp 261–272
Porter LV, Sweetser Trammell KD, Chung D, Kim E (2007) Blog power Examining the effects of practitioner blog use on power in public relations. Public Relat Rev 33(1):92–95
Räisänen T, Oinas-Kukkonen H (2008) A system architecture for the 7c knowledge environment. Information Modelling and Knowledge Bases XIX(166):217
Richardson WWH (2010) Blogs, wikis, podcasts, and other powerful web tools for classrooms, Corwin Press
Singer L, Figueira Filho F, Cleary B, Treude C, Storey M-A, Schneider K (2013) Mutual assessment in the social programmer ecosystem: An empirical investigation of developer profile aggregators. In: Proceedings of the 2013 Conference on Computer Supported Collaborative Work. ACM, pp 103–116
Singer L, Figueira Filho FM, Storey M-AD (2014) Software engineering at the speed of light How developers stay current using twitter. In: International Conference on Software Engineering, pp 211–221
Snelson C (2011) Youtube across the Disciplines : A Review of the Literature. J Online Learn Teach 7(1):159–169
Storey M-A, Singer L, Cleary B, Figueira Filho F, Zagalsky A (2014) The revolution of social media in software engineering. In: Proceedings of the on Future of Software Engineering. ACM, pp 100–116
Storey M-A, Treude C, van Deursen A, Cheng L-T (2010) The impact of social media on software engineering practices and tools. In: Proceedings of the FSE/SDP Workshop on Future of Software Engineering Research. ACM, pp 359–364
Sugar W, Brown A, Luterbach K (2010) Examining the anatomy of a screencast Uncovering common elements and instructional strategies. The Intl Review of Research in Open and Distance Learning 11(3):1–20
Swart J, Kinnie N (2003) Sharing knowledge in knowledge-intensive firms. Hum Resour Manag J 13(2):60–75
Treude C, Barzilay O, Storey M-A (2011) How do programmers ask and answer questions on the web?: Nier track. In: 2011 33rd Intl Conference on Software Engineering (ICSE). IEEE, pp 804–807
Treude C, Figueira Filho F, Cleary B, Storey M-A (2012) Programming in a socially networked world: The evolution of the social programmer. The Future of Collaborative Software Development:1–3
Treude C, Storey M-A (2011) Effective communication of software development knowledge through community portals. In: Proceedings of the 19th ACM SIGSOFT Symposium and the 13th European Conference on Foundations of Software Engineering. ACM, pp 91–101
Udell J (2004) Name that genre: screencast
Von Mayrhauser A, Vans AM (1995) Program comprehension during software maintenance and evolution. Computer 28(8):44–55
Wenger E (2000) Communities of practice and social learning systems. Organization 7(2):225–246
YouTube (2016) Youtube watch time optimization tips
Acknowledgments
We thank our interview participants for sharing their insights with us, as well as Cassandra Petrachenko, Matthieu Foucault and Alexey Zagalsky for editing support and discussions about our research.
Author information
Authors and Affiliations
Corresponding author
Additional information
Communicated by: Christian Bird and Rocco Oliveto
Rights and permissions
About this article
Cite this article
MacLeod, L., Bergen, A. & Storey, MA. Documenting and sharing software knowledge using screencasts. Empir Software Eng 22, 1478–1507 (2017). https://doi.org/10.1007/s10664-017-9501-9
Published:
Issue Date:
DOI: https://doi.org/10.1007/s10664-017-9501-9