Keynote at ICSME 2017, Shanghai, China.
Title: The Elusive Nature of Software Documentation and Why Understanding How Knowledge Flows Matters
Abstract: Many developers consider writing documentation to be a painful and under-appreciated activity, yet the same developers often complain that a lack of documentation significantly hampers their work. Other developers argue that documentation is passé as developers more readily curate and exchange knowledge through networked platforms such as Slack, Twitter, and Stack Overflow. And while the savvy modern developer will know who to follow, who to ask, and where to look when they need software knowledge, finding the right knowledge at the right time remains a serious development bottleneck for many. Recognizing that these platforms contain golden nuggets of useful information, we see tremendous effort being directed at designing methods for capturing, mining, extracting, and distributing software knowledge, but will they succeed if we lack a good understanding of how knowledge flows in software development projects and communities? Through this talk, I will discuss the elusive nature of documentation and why I believe documentation will always be hard to define, capture, distribute, keep up to date, and to find, and I will argue that we should focus more on understanding, supporting, and amplifying knowledge flow in distributed software development.