Some notes of Day 1* of the 29th International Conference on Software Engineering, from Minneapolis:
To me, the high point of the day, and quite possibly of the conference, was a panel session on “Retrospectives on Peopleware”, with Barry Boehm, Fred Brooks Jr., Tom DeMarco, Tim Lister, Linda Rising, and Ed Yourdon. I don’t know how much these names mean to you, but their work is practically the reason why I came back to grad school. Two of the few books I brought with me when I left Mexico were DeMarco and Lister’s Peopleware and Brooks’ The Mythical Man-Month. Back then I thought that’s what software engineering should be all about, and I was very disappointed when I found so many people ignoring the essence of the problem of software development (the sociology and psychology of programming) to focus on far more comfortable problems that can be “proved” with math or logic, but that have little connection to real software work.
Incidentally, the panel touched on that topic (Fred Brooks ascribes the lack of Peopleware-related papers in ICSE simply to tenure, and DeMarco said he always had difficulty getting papers in ICSE because they were “squishy”. When his papers got in, he said, it was as “experience reports”. He invites everyone with “experience report” papers to call all other papers “non-experience reports”). They also discussed why it took so long for something like the Agile movement to come up (DeMarco: “I blame Barry [Boehm]”), the need for “hard play” –creative, deeply satisfying activities– in software development, and how terms from the Peopleware book can now be used to refer to complex concepts in everyday geek language: team jellying and furniture police, among others.
It was a very entertaining session –one could easily listen to these people all day. By the way, you can find Linda Rising (“the token female on the panel”) on InfoQ discussing, of all things, primate sex and how it relates to agile development.
Other notes on papers presented today:
- Andrea Capiluppi & Co. presented what they claim is the first evolutionary study of agile development. They investigated the code-base of a project developed using all of XP’s practices. They found that “code complexity is low, and that the relative amount of complexity control work (e.g. refactoring) is higher than in other systems we have studied”. Most of the code in the repository (70%) was test code, and 46% of the “touches” to files were devoted to decrease complexity.
- Jeffrey Stylos and Steven Clarke reported on a study to assess the usability of two types of constructor calls (parameterized vs. parameter-less, default constructors) in APIs. “Contrary to expectations, programmers strongly preferred and were more effective with APIs that did not require constructor parameters”. They speculate that this is because parameterized constructors force developers to commit prematurely to decisions they have not worked out yet.
- Jayakanth Srinivasan and Kristina Lundqvist described an educational simulation game they use to teach software process models to their students. The game follows a constructivist approach, in that it enables students to discover the strengths and weaknesses of software process models for themselves.
- Jeffrey Carver & Co. had a paper on the software development environments used by five scientific and engineering groups. Among several interesting insights, they found that these groups distrust higher-level languages, IDEs, and almost all external software, and that they value the portability and stability of older platforms and languages.
- Ekwa Duala-Ekoko and Martin Robillard presented an approach to manage code clones instead of trying to eliminate them through refactoring. They describe “clone regions” in a manner that is independent from the exact text of the clones, and are able to track changes and simultaneously edit all clones in the “region”. Their paper won a Distinguished Paper award.
- Another well-deserved Distinguished Paper award went to my colleagues and professors, Shiva Nejati, Mehrdad Sabetzadeh, Marsha Chechik, Steve Easterbrook, and Pamela Zave, for their work on matching and merging statecharts specifications. Congratulations!
* Although this is Day 1 of the conference, its collocated events started 4 days ago. I came here to present a paper I co-authored with Neil Ernst, Jennifer Horkoff, and Steve Easterbrook, on evaluating the comprehensibility of modeling languages, as part of the Models in Software Engineering workshop. If you’re interested, you can take a look at the paper and the presentation slides.