Skip to main content

Abstract

Developers use the Web as a tool to find information to help them solve their software development problems. However, little was known about what kinds of problems motivate developers to do searches on the Web. We observed 24 developers at 3 software companies. In our analysis, we found that there are four main kinds of problems. When “Remembering,” developers knew exactly what they are looking for and only wanted to remember syntax details or find facts. When they needed “Clarification,” developers had a high-level understanding of what they want to implement, but did not know precisely how to do it. During “Learning,” developers wanted to acquire new concepts. Finally, the last kind of problem was a need for a tool or open source project/component. The first three kinds of search can be characterized as using an opportunistic process, whereas the fourth kind uses a non-opportunistic process. Our findings complement prior research on search targets during source code search and have implications for tool support.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 84.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 109.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info
Hardcover Book
USD 109.99
Price excludes VAT (USA)
  • Durable hardcover edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Notes

  1. 1.

    Some definitions of sessions used by other researches indicate that Web usage must be continuous with no breaks longer than 5 min [11], 6 min [3], or 25.5 min [4]. However, we decided not to include a cutoff in the longest time a break could take in the same day. Our decision was based on the fact that we observed that developers had interruptions longer than 25.5 min while using the Web and when they came back they continued reviewing information on the Web or refining queries to fill the same information need. For that reason, the only time constraint we consider is that Web usage should happen the same day. Instead, we put more emphasis to the intention of the search. If Web usage was done to meet the same information need, we consider all those intervals as part of the same Search Session. The three longest breaks that we observed in our field sites were of 3 h 25 min 46 s, 1 h 34 min 19 s, and 1 h 16 min and 18 s. In these cases, developers interrupted their search to chat with co-workers, answer calls from customers, code, write documentation, and have personal breaks. When they used the Web again, they read the information they found before and in some cases they also copied and pasted lines of source code and used them even though more than 3 h passed since their first query.

References

  1. Sushil Bajracharya and Cristina Lopes. Mining search topics from a code search engine usage log. In Proceedings of the 6th IEEE Working Conference on Mining Software Repositories, pages 111–120, 2009.

    Google Scholar 

  2. Joel Brandt, Mira Dontcheva, Marcos Weskamp, and Scott R. Klemmer. Example-centric programming: Integrating web search into the development environment. In Proceedings of the 28th International Conference on Human Factors in Computing Systems, pages 513–522, Atlanta, Georgia, USA, 2010. ACM.

    Google Scholar 

  3. Joel Brandt, Philip J. Guo, Joel Lewenstein, Mira Dontcheva, and Scott R. Klemmer. Two studies of opportunistic programming: interleaving web foraging, learning, and writing code. In Proceedings of the 27th international conference on Human factors in computing systems, pages 1589–1598, Boston, MA, USA, 2009. ACM.

    Google Scholar 

  4. Lara D. Catledge and James E. Pitkow. Characterizing browsing strategies in the world-wide web. In Proceedings of the Third International World-Wide Web conference on Technology, tools and applications, pages 1065–1073, New York, NY, USA, 1995. Elsevier North-Holland, Inc.

    Google Scholar 

  5. Rosalva E. Gallardo-Valencia. How Software Developers Solve Problems by Searching for Source Code on the Web: Studies on Judgments in Evaluation of Results and Information Use. Ph.d. Thesis, University of California, Irvine, 2012.

    Google Scholar 

  6. Rosalva E. Gallardo-Valencia, P. Tantikul, and Susan Elliott Sim. Searching for reputable source code on the web. In Proceedings of the Group Conference 2010, Florida, USA, 2010. ACM.

    Google Scholar 

  7. Raphael Hoffmann, James Fogarty, and Daniel S. Weld. Assieme: finding and leveraging implicit references in a web search interface for programmers. In Proceedings of the 20th Annual ACM Symposium on User Interface Software and Technology, Newport, Rhode Island, USA, 2007. ACM.

    Google Scholar 

  8. Otavio Augusto Lazzarini Lemos, Sushil Bajracharya, Joel Ossher, Paulo Cesar Masiero, and Cristina Lopes. Applying test-driven code search to the reuse of auxiliary functionality. In Proceedings of the 2009 ACM symposium on Applied Computing, pages 476–482, Honolulu, Hawaii, 2009. ACM.

    Google Scholar 

  9. J. Lofland, D. Snow, L. Anderson, and L. Lofland. Analyzing Social Settings: A Guide to Qualitative Observation and Analysis. Wadsworth/Thomson Learning, Belmont, CA, 2006.

    Google Scholar 

  10. P.N. Robillard. Opportunistic problem solving in software engineering. IEEE Software, 22(6):60–67, 2005.

    Article  Google Scholar 

  11. Craig Silverstein, Hannes Marais, Monika Henzinger, and Michael Moricz. Analysis of a very large web search engine query log. SIGIR Forum, 33:6–12, September 1999.

    Google Scholar 

  12. Susan Elliott Sim, Medha Umarji, Sukanya Ratanotayanon, and Cristina V. Lopes. How well do internet code search engines support open source reuse strategies? ACM Transactions on Software Engineering and Methodology, 21(1), December 2011.

    Google Scholar 

  13. Jeffrey Stylos and Brad A. Myers. Mica: A web-search tool for finding api components and examples. In IEEE Symposium on Visual Languages and Human-Centric Computing, 2006. VL/HCC 2006, pages 195–202, Brighton, United Kingdom, 2006. IEEE.

    Google Scholar 

  14. Phitchayaphong Tantikul. JCSSE: Java code snippet search engine. Master’s thesis, Information and Computer Sciences, University of California, Irvine, 2011.

    Google Scholar 

  15. M. Umarji, S. E. Sim, and C. Lopes. Archetypal internet-scale source code searching. In B. Russo, E. Damiani, S. Hissam, B. Lundell, and G. Succi, editors, IFIP International Federation for Information Processing 275: Open Source Development, Communities and Quality, pages 257–263. Springer, 2008.

    Google Scholar 

Download references

Acknowledgements

Thank you to all the participants and supporters at Novatronic, “Health Connection,” and AppFolio. This research was possible due to their generosity in sharing their time and work with us. This material is based upon work supported by the NSF under Grant No. IIS-0846034. Any opinions, findings, and conclusions or recommendations expressed in this material are those of the authors and do not necessary reflect the views of the NSF.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Rosalva E. Gallardo-Valencia .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2013 Springer Science+Business Media New York

About this chapter

Cite this chapter

Gallardo-Valencia, R.E., Sim, S.E. (2013). Software Problems That Motivate Web Searches. In: Sim, S.E., Gallardo-Valencia, R.E. (eds) Finding Source Code on the Web for Remix and Reuse. Springer, New York, NY. https://doi.org/10.1007/978-1-4614-6596-6_13

Download citation

  • DOI: https://doi.org/10.1007/978-1-4614-6596-6_13

  • Publisher Name: Springer, New York, NY

  • Print ISBN: 978-1-4614-6595-9

  • Online ISBN: 978-1-4614-6596-6

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics