The Emergent Structure of Development Tasks
Integrated development environments have been designed and engineered to display structural information about the source code of large systems. When a development task lines up with the structure of the system, the tools in these environments do a great job of supporting developers in their work. Unfortunately, many development tasks do not have this characteristic. Instead, they involve changes that are scattered across the source code and various other kinds of artifacts, including bug reports and documentation. Today’s development environments provide little support for working with scattered pieces of a system, and as a result, are not adequately supporting the ways in which developers work on the system. Fortunately, many development tasks do have a structure. This structure emerges from a developer’s actions when changing the system. In this paper, we describe how the structure of many tasks crosscuts system artifacts, and how by capturing that structure, we can make it as easy for developers to work on changes scattered across the system’s structure as it is to work on changes that line up with the system’s structure.
KeywordsTask Structure Task Context Group Memory Development Task Integrate Development Environment
Unable to display preview. Download preview PDF.
- 2.Chu-Carroll, M.C., Sprenkle, S.: Coven: Brewing better collaboration through software configuration management. In: SIGSOFT 2000/FSE-8: Proc. of the 8th ACM SIGSOFT Int’l Symp. on Foundations of Software Engineering, pp. 88–97. ACM Press, New York (2000)Google Scholar
- 3.Čubranić, D., Murphy, G.C.: Hipikat: Recommending pertinent software development artifacts. In: ICSE 2003: Proc. of the 25th Int’l Conf. on Software Engineering, pp. 408–418. IEEE Computer Society, Los Alamitos (2003)Google Scholar
- 4.Čubranić, D., Murphy, G.C., Singer, J., Booth, K.S.: Learning from project history: a case study for software development. In: CSCW 2004: Proc. of the 2004 ACM Conf. on Computer Supported Cooperative Work, pp. 82–91. ACM Press, New York (2004)Google Scholar
- 5.Dragunov, A.N., Dietterich, T.G., Johnsrude, K., McLaughlin, M., Li, L., Herlocker, J.L.: TaskTracer: A desktop environment to support multi-tasking knowledge workers. In: IUI 2005: Proc. of the 10th Int’l Conf. on Intelligent User Interfaces, pp. 75–82. ACM Press, New York (2005)CrossRefGoogle Scholar
- 6.Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, Reading (1995)Google Scholar
- 8.Habermann, A.N., Notkin, D.: Gandalf: software development environments. IEEE Trans. Software Engineering 12(12), 1117–1127 (1986)Google Scholar
- 10.Kersten, M., Murphy, G.C.: Mylar: a degree-of-interest model for IDEs. In: AOSD 2005: Proc. of the 4th Int’l Conf. on Aspect-oriented Software Development, pp. 159–168 (2005)Google Scholar
- 18.Robillard, M.P.: Representing Concerns in Source Code. PhD thesis, University of British Columbia (2003)Google Scholar
- 22.Robillard, M.P., Murphy, G.C.: Program navigation analysis to support task-aware software development environments. In: Proc. of the ICSE Workshop on Directions in Software Engineering Environments, pp. 83–88. IEE (2004)Google Scholar
- 23.Sarma, A., Noroozi, Z., van der Hoek, A.: Palantr: Raising awareness among configuration management workspaces. In: ICSE 2003: Proc. of the 25th Int’l Conf. on Software Engineering, pp. 444–454. IEEE Computer Society, Los Alamitos (2003)Google Scholar