FYI... ------------ Forwarded Message ------------ Date: Friday, September 09, 2005 11:19 AM -1000 From: Philip Johnson <[EMAIL PROTECTED]> Subject: Software Engineering "Micro-Process" Working Group
Greetings, all, Over the past several months I have begun to notice a convergence of interest in characterizing and exploiting what might be termed "software engineering micro-processes". In contrast to traditional software engineering processes (waterfall, spiral, XP, etc.) which tend to characterize development at timespans of weeks, months, or years, "micro-processes" tend to characterize development at much smaller timespans of days, hours, minutes, or even seconds. Let me provide a few pointers to work that I am aware of that appears related to this phenomenon: 1. Hongbing Kou (University of Hawaii) is working on a Hackystat-based system called Zorro. This system monitors developer activity in an attempt to determine whether or not the developer is using Test Driven Design practices or not. The TDD detector is actually part of a more general facility called Software Development Stream Analysis which uses a rule-based system to classify event streams into episodes. More details appear at: <http://csdl.ics.hawaii.edu/techreports/05-03/05-03.pdf> 2. Frank Schlesinger (Free University Berlin) is working on an Eclipse-based system called Electrocodeogram (ECG). ECG monitors developer activities in an effort to detect patterns of developer activities that are particularly prone to defect creation. For example: trial and error, cut and paste, work and interrupt and work. As I understand it, the idea is to detect when programmers are doing fault-prone behaviors and give them feedback. More details appear at: <http://www.electrocodeogram.org/> 3. Sebastian Jekutsch (Free University Berlin) is working on defining a "generic description of the micro-process of programming, a kind of vocabulary", and then present the micro-process data to the programmer for self-assessment. Frank has been in contact with the Hackystat group and is interested in coordinating activities. More details on his approach appear at: <http://projects.mi.fu-berlin.de/w/bin/view/SE/MicroprocessHome> 4. Victor Basili, Marv Zelkowitz, and Lorin Hochstein (University of Maryland) are involved in a DARPA-sponsored program called HPCS, one goal of which is to better characterize and understand the process of high performance computing system application development. As part of that effort, they have developed a set of approximately 40 "development time micro activities", such as "compiling the parallel code", "compiling the serial code", "diagnose runtime error", "cache optimizations", "space reductions", and so forth. 4. Larry Votta, Michael Van De Vanter, and Susan Squires (Sun Microsystems) are also involved in the DARPA-sponsored effort HPCS program. Among other things, they have been carrying out case studies of professional programmers to understand the activities involved in perfective maintenance of high performance computing code. 5. Mike Paulding (University of Hawaii) has worked with both the Sun Microsystems and University of Maryland groups on characterizing high performance computing system application development. He has carried out two case studies (on himself) in an effort to better understand the kinds of activities involved in HPCS development. More details on the first case study appear at: <http://csdl.ics.hawaii.edu/techreports/04-22/04-22.pdf> 6. Philip Johnson (University of Hawaii) has been interested in whether machine learning techniques for episode discovery can be applied to support automated characterization of software engineering micro-processes. More details appear at: <http://csdl.ics.hawaii.edu/techreports/05-05/05-05.pdf> In summary, micro-process detection and analysis seems to be applied to: (a) characterizing programmer behavior (i.e. doing TDD); (b) characterizing programmer effort (i.e. time spent optimizing); and (c) correcting programmer behavior (i.e. that last cut-and-paste is likely to create a defect if you're not careful). So, where do we go from here? Sebastian has stated an interest in writing a high-level "vision" paper that establishes the terminology, surveys the approaches, and characterizes the applications of micro-process detection and analysis. I am interested in participating in the writing of this vision paper, and also using it as a high-level requirements specification that enables us to develop generic support within Hackystat for micro-process detection and analysis. For example, I am envisioning at least one new kind of Hackystat sensor data type (microProcessEvent) for data collected by process and product sensors and that can be used as input to analyses for the various application domains above. I believe that the more participation we have in developing the vision of software engineering micro-processes, the better we will understand how to characterize and exploit it. Thus, I would like to organize a loose working group (i.e. mailing list) of researchers who are interested in this topic. I am sending out this initial announcement to you because I have personal knowledge of your prior efforts in areas related to this work, but I am sure there are others who might be interested in participating and solicit your help in making them aware of this initiative. To establish this working group mailing list, I would like to follow an "opt-in" policy: if you would like to be on it, please reply to this email with something similar to "I'm in", and I'll add you to it. I expect this to be a low-volume mailing list with only a few postings per week maximum. Of course, you can leave it at any time, and only subscribers will be able to post in order to avoid spam. Our first activity will be the development of the vision paper. Sebastian has volunteered to take the lead on the first draft. Feel free to forward this email to others who might be interested in participating. If you have any comments or suggestions or pointers to additional relevent material, please let me know! Cheers, Philip ---------- End Forwarded Message ----------
