This is a summary on my ICSE experience this year. It is based on my personal notes and pictures I took during the conference. Note that I focus on sharing my opinions and feelings and that these depend on my personal perspective.
This years edition of ICSE was held in Zurich, Switzerland. There was a number of exciting workshops and collocated events going on. Please find my opinion about these events elsewhere (MSR’12, RSSE’12).
There were 850 Participants, which is the highest number in at least 12 years. There were 408 submissions, 7 desk rejects and 146 early rejections. 87 papers were accepted, resulting in an acceptance rate of 21.3%. The conference featured 7 distinguished papers. From the statistics shown, I got the impression that papers about tools and environments had good chances to be accepted.
The first keynote was presented by Saskia Sassen about Digital Formations of the Powerful and the Powerless. Saskia is a star sociologist and her style seemed to shock the engineers in the room. Personally, I am not sure that I understood a single thing (obviously in contrast to Neil Ernst, who sat next to me). I found slides and talk hard to follow because of complicated sentence structure, limited match of both channels, and the high number of words I did not understand. Nevertheless, I liked the experience, because it reminded me that there is so much going on beyond the narrow scope of software engineering. My key takeways were:
- Communities are using new technology – creatively!
- Without those communities, these new ways of use would never be uncovered.
- Nevertheless, systems should adjust to users, especially to technically illiterate sub-groups.
NIER Session 1: NIER in Support of Software Engineers
Tobias Roehm and Walid Maleij presented on Automatically Detecting Developer Activities. They used a Hidden Markov Model to learn the probability that a developer performs a given activity (e.g. apply solution, document solution) based on some observable characteristics (e.g. change code, read code, do web search). My take aways are a) the Hidden Markov Approach and b) the importance of reflecting on privacy issues in this kind of research. Tobias and Walid did a very good job in these aspects.
Christoph Dorn gave an inspiring talk about perceiving People and their Collaboration as architectural components that can be monitored and adapted.
James Corrigan presented on Augmented Intelligence and Unleashing Human Capabilities in Knowledge Work. I liked the rather non-technical topic and the presentation style (no slides!!!). Also, I found the following citation noteworthy:
In a high IQ environment, IQ is not a qualifying factor. But emotional intelligence is.
Research Session 7 - Human Aspects of Development
This session was clearly one of the highlights of ICSE 2012. I noticed that in time (15 minutes before session start) to get a seat. The room filled then quickly and was packed when the first talk started.
Michaela Greiler presented about Test Confessions. With her being a visiting student in Victoria, I wonder why I did not manage to see that talk before. However, I heard much praise on her presenting this particular work and I agree: this is a great talk about a wonderful piece of research. Michaela talked about barriers for plugin tests (e.g. responsibility, ownership, training, technical feasibility) and mitigation strategies. Accordingly, eclipse developers perceive their openness (in terms of communication, release management, extensibility) as one way to manage quality in eclipse.
Tobias Roehm, Rebecca Tiarks and Walid Maaleij presented about How Developers Comprehend Software. I especially liked their research method that was based on a) Field Observation in combination with Think Aloud (determining the Which and When) together with b) Contextual Structured Interviews (determining the How and Why).
Martin Robillard concluded the session by presenting work on Asking and Answering API questions. He presented videos that showed Students using the JGraph API. I think this a great way of presenting this work, because some particular problems in using an API become apparent. He then abstracted to information needs.
Franz Dieter Clesle gave the second keynote at ICSE 2012. I found the keynote quiet inspiring and I liked the presentation and the slides - partly because of the contrast to the first keynote. Being German in an English speaking country, I feel encouraged by seeing such a highly recognized person being nervous and struggling to find the best words. Also it is nice to see the different styles that originate from different countries and domains. I guess the main message for me is summarized in this particular slide:
Research Session 13: Human Aspects of Process
Based on yesterdays success of the Human Aspects track, the organizers rearranged the room, removed tables and added chairs. Still, this session was rather crowded but not as bad as the day before.
Laura Plonka presented work about investigating Disengagement in Pair Programming. This work is based on Qualitative Research (here: Questionnaires and Video Recording). According to Laura, one challenge is to define disengagement: “Disengagement is indicated by not being engaged”. Especially the Expert-Novice-Constellation exhibits specific types of disengagement: a) social pressure (do not look stupid) and b) time pressure (do not slow down experts). A mitigation strategy is to let the Novice drive and to rely on verbalization, explanation, and feedback. My take away is that different types of disengagement exist that can be arranged in a Portfolio with the axes acceptable/harmful and visible/invisible.
Developers started to call broken builds ‘sad bunnies’.
John Hosking presented work about Ambient Awareness of Build Status in Collocated Teams. This is amazing work that deserves a second glance. Among other methods, they used Wifi Rabits (similar to the Nabaztag) to show the build status and compared the results of showing the status to the individuals or to the whole team. Accordingly, these ambient awareness mechanisms had a positive impact on the software development and Developers started to call broken builds ‘sad bunnies’.
Minghui Zhou and Audris Mockus presented their work on What makes Long-Term Contributors in Open Source Software Communities. Accordingly, the environment determines people’s fate in the first month. If they find friends, feel welcome, and think they learn, they will be long term collaborators. If they use the Gnome Crush-Reporter or similar tools, they won’t be long term collaborators.
The session was concluded by Otavio Lemos’ talk about whether Auxiliary Functions should be developed Agile. The rationale is that auxiliary functions are often developed by newbies, but are often part of serious bugs. Otavio reported that pair programming has a big impact in this environment. He could also show that even experts profit from a test first approach in this context. The discussion started to focus on the definition of auxiliary (e.g. it is not sufficient to investigate simple functions, because most often they are not!). Then it went on to discuss a general criticism about agile: Its focus on microscope view.
SEIP Session 8: Case Studies
Sebastian Eder presented findings about Unused Code and Maintenance. For the case study, Sebastian et al. used method genealogy, i.e. a list of methods that represent the history of a single method. They then used an ephemeral profiler during productive use and identified unused code. Their findings include that Change Requests target only code that is in use and that Unnecessary Maintenance [of unused code] is not too bad. Future work should investigate the change coverage of tests.
Emilia Mendes reported on her work of using Bayesian Networks for Knowledge Elicitation to Improve Web Effort Estimation. I found this work very interesting from a knowledge management point of view, as it allows to learn from past projects in a systematic and structured way.
Research Session 22: Code Recommenders
Premkumar Devanbu and Abram Hindle delivered one of the best talks I saw during this ICSE On the Naturalness of Software. They used language models known from natural language processing. With this, they help to improve auto completion and code recommendations in IDEs.
Code is more predictable than English or German.
Collin McMillan presented work about Recommending Source Code for Use in Rapid Software Prototypes. This is an amazing idea, but please: if you use it, remember how prototypes should be used. Throw them away and do not use parts of them in productive code! I guess for my research, this work is not as relevant as the group’s previous works on Identifying Features from Product Descriptions.
Jeff Kramer gave a wonderful keynote on Software Architecture. From the three keynotes, I found that this was the easiest to follow. Jeff highlighted the different streams in recent years of software architecture research and focussed on the research community. As a consequence, I have only two take aways: a Book that I want to read (Taylor RN, Medvidovic N, Dashofy E: Software Architecture: Foundations, Theory, and Practice, Whiley 2008) and a great quote:
The Not Invented Elsewhere Syndrom
The not-invented-elsewhere syndrom describes a situation in that a perfect solution is not applied in an organisation, because it does not come from a source recognized by management (e.g. internally developed solutions are not applied, even if they are better than what is on the market).
- ICSE Homepage
- Felienne’s Blog with live reports from the talks.
- Goldfish Panel Blog
- Neil Ernst on Saskia’s Keynote
- … (more to come)
Farewell & Disclaimer
This ICSE was again an awesome experience. The main benefit to me is of course of a type that is not easily captured in a blog article: Networking and Inspiration.
Of course I might have misinterpreted or misunderstood things. Also, my notes are kind of selective and might not make too much sense without being at the conference. If you see any opportunity to improve this post, please let me know and I will see what I can do.
You are welcome to use the pictures in this blog. Please add a link to this blog where appropriate!