The Role of Emergent Knowledge Structures in Collaborative Software Development

One step closer to the PhD candidacy: My submission to the doctoral symposium at ICSE 2010 has been accepted!

In the research abstract, I propose to study the role of emergent knowledge structures in software development. We define emergent knowledge structures as “tangible ad hoc artifacts that are created as part of informal individual or collaborative processes in software development but that are not part of the software product”. Examples include comments on source code and tasks, wikis, blogging, micro-blogging and tagging. Due to the recent addition of Web 2.0 style collaboration functionality such as social tagging and wikis to software development environments, more and more of these knowledge structures “emerge”. There are usually no prescribed processes attached to their creation.

We have two main research questions:

  1. Which software development processes do lightweight emergent structures support?
  2. How can tools for software developers leverage the knowledge from lightweight emergent structures?

We expect the following main contributions from this research:

  • Identifying the software development processes that are supported by lightweight emergent structures.
  • Characterizing the knowledge that lightweight emergent structures add to a software project.
  • Improving tool support for lightweight emergent structures.

Our recent papers on tagging, dashboards and feeds and the tool ConcernLines as well as our Web2SE workshop all fit into this research, and we are looking forward to conducting more exciting research on this topic.

This is the preliminary abstract of the research abstract:

The focus of software development tools has shifted towards team-aware tools that explicitly support communication and cooperation. Many of these collaboration features draw on lightweight technologies that are associated with Web 2.0 such as social tagging or wikis. We propose to study the role of emergent knowledge structures that are created through lightweight collaboration in software development. Using a mixed-methods approach, we aim to investigate which software development processes are supported by emergent knowledge structures and how tool support can leverage these structures. Our goal is to assist both managers and developers in their decisions about using lightweight collaboration tools in their software development projects.

Update [June 6, 2010]: The paper is now available here (ACM Digital Library).


4 thoughts on “The Role of Emergent Knowledge Structures in Collaborative Software Development

  1. This looks great, Christoph, and I’m happy your doctoral symposium submission was accepted!

    A question though –do you expect to find that some development processes have little or nothing to gain from these emergent structures? Isn’t it possible that it’s not so much the process, but the use and adoption of the tools by the development team, that determines the degree to which these knowledge structures are beneficial?

    I don’t know the answer to this question myself, by the way, but I’d love to hear your thoughts.

  2. Excellent question, and one that we will have to answer within the next few years.

    The preliminary answer for now: Since the emergent knowledge structures that we’re looking at here are not part of the software product, developers are not required to use them. In fact, many software development projects in the past (in particular open source) have proven that you don’t need this advanced tooling to write great software. I would not want to force any Web 2.0 style technology on somebody who is happy coding in emacs. Having said that, what we’re looking at in this research is HOW and WHY these lightweight features (tags, dashboards, feeds, etc.) are used anyway. This will hopefully inform managers and developers in their decisions about using lightweight collaborative tooling in their software development projects.

    Since no developer is forced to use any of the Web 2.0 style tooling, we have looked at the adoption rate so far to understand if developers gained something from using them. That’s also why we’re analyzing the long term use of these tools, i.e. we want to make sure that developers have kept using the tools for several years. At the same time, we make sure that developers aren’t forced by their managers to use certain tool features.

    To sum this up, I think my preliminary answer is: Yes, it is entirely possible that the use and adoption of these tools determines the benefits of emergent knowledge structures. But in this research, we focus on what kind of benefits are possible and what kind of processes are supported.

    On the other hand, we have recently started to look into teams that use different processes from agile to conventional. Maybe there are some differences based on different development approaches? That question is certainly on our research agenda.

Comments are closed.