One of the issues with software visualization is the lack of adoption of software visualization tools by industry.
Emerson Murphy-Hill and Gail Murphy conducted an interview based study to find out how programmers discover new tools or features of tools. They interviewed 18 programmers in industry. The paper is entitled Peer Interaction Effectively, yet Infrequently, Enables Programmers to Discover New Tools (ACM Link) and was presented at CSCW 2011.
They described a discovery mode called peer interaction which encompasses both peer observation and peer recommendation, in which programmers learn about the existence of new tools. The results of the interviews showed that peer observation (e.g. during pair programming or instant messaging) and peer recommendation were rated as the most effective modes of discovering new tools as opposed to other modes: tool encounter, tutorials, written descriptions, social media or RSS feeds, and or discussion threads. However, peer observation and especially peer recommendation were less frequently reported modes of discovery, compared to the other modes.
Since peer interaction is the most effective mode but least frequently used, the question is what are barriers from preventing this interaction?
Subjects reported the barriers to effective peer interaction are isolation, toolset differences, toolset acclimation, company policy, time pressures, peer maturity, lack of interest, “developer inertia,” the necessity of sensing progress, and client pressures. It is notable that these barriers occur because of a wide variety of internal and external sources: the client, the company, the management, the programmer, the development environment, and the tool.
Learning about new tools does not always come from the most knowledgeable person in the team, quite often it is a junior programmer.
Although tool knowledge appeared to ﬂow primarily between peers, it also ﬂows from supervisors to their subordinates and from subordinates to supervisors. This ﬁnding may be a result of the relatively ﬂat organization of many software teams, where programmers feel comfortable asking about and recommending tools to other programmers, regardless of seniority.
As many software teams are distributed it is hard to get peer interaction without collocation. One strategy to improve this is to use social media services such as Twitter or RSS feeds to post articles about interesting tools, but programmers are only like to follow recommendations from trusted people or experts in a particular field. Another is to create videos documenting use of tools, which can be effective but also quite burdensome.
KAI hinted at this; “I wish people did make more screencasts; they’re a pain in the ass to make.” Better tool support for creation, editing, and distribution of screencasts may make it more likely that programmers will produce screencasts for their peers, improving screencasts’ effectiveness.