From May 22 till May 25, I attended ICSE 2013 — the 35th International Conference on Software Engineering — in San Francisco. Apart from learning about new research and connecting with colleagues, I interviewed local practitioners, hugged the Octocat, and was ON A BOAT. This blog post provides some (non-comprehensive) details for these four days I spent in San Francisco.
Wednesday: Promises and Perils of Technology Startups
On Wednesday the 22, I got up at 4am. Some weeks prior, genius struck me and I booked a 6:30am flight without thinking about when future-me would have to get up. Thanks! More pleasant: from Victoria, the direct flight to San Francisco is only about two hours and I arrived around 8:30am as planned.
I took BART to Embarcadero, as ICSE was situated in the Hyatt Regency hotel next to that station. Entering the atrium of the hotel was the first thing that baffled me: 17 storeys of open space, with some art and light installations.
Olga and Raphael — my former colleagues from Hannover — had arrived a few days earlier. As we shared a room, they had deposited my key card at the reception. Thus, checking in was painless and quick. However, I was surprised when I found out that our room was on the 17th floor — the top floor.
After taking one of the fast glass elevators, I found out that our room actually was a corner room with a view of the Ferry Building, the Bay Bridge, and Market Street. As I was told later, we only got that room because of some organizational mishap on the part of the hotel. Lucky us!
After enjoying the view for a few seconds, I hurried downstairs again: Raphael was about to present our paper on the testing culture on GitHub. I arrived in time spent the next 90 minutes listening to talk on current research. In the afternoon session, another paper stood out for me: Felienne presented her work on Data Clone Detection and Visualization in Spreadsheets. She not only gave one of the most lively, enthusiastic presentations of the whole conference, but also won a SIGSOFT Distinguished Paper Award for her research.
I used the lunch break and dinner to meet with local developers — I had arranged some appointments beforehand. As part of my curiosity regarding social media, software development, and the startup scene, I got to talk to two equally fascinating, but very different groups of people.
For lunch on Wednesday, I met with a YCombinator alumnus. He had sold his company for several million dollars. This money now buys him time to work on new business ideas without too much pressure. We talked a bit about hiring practices in the scene he works in and the role social media play in everything. I got some interesting insights into a world a bit different from the one I live in, and met a nice guy who doesn’t seem to let it get to his head.
Wednesday evening, I met a team of founders who didn’t win the startup game. Even though they had gotten funding early on, they weren’t able to turn their ideas into a viable business. While their product is still popular and available online, they had to move on to other ventures before any profitability was realized. They are now working for development or marketing groups in various other startups and taking a break from the demands of founding their own companies. The high contrast of this meeting to the one over lunch struck me — these stories are seldom told in the media, and I feel honored that they told me a bit about their experiences. I wish them the very best.
Thursday: The San Francisco Experience
The second day of ICSE started off with a keynote by Pixar’s Tony DeRose. In his talk, Tony first described how movies are made at Pixar. From a high-level view, they use a waterfall-like process with different phases, such as design and implementation. However, they include a lot of feedback loops and iteration points that help evaluate and refine the current state and direction of the movie. This is much more similar to the waterfall process described in the original paper by Royce than what we often see in practice today.
The second part of the keynote showed how Pixar tried to use their movie making process for software development. Pixar needed to rewrite their production software and worked closely with the movie designers. They used the feedback loops they had used in their movies before and made impressive reels for workflows: animated UI sketches that describe the whole process, not the application in isolation. Which also added value to these reels was a voice-over from what in a use case would be the main actor, describing what he’s trying to achieve, why he’s doing it, which workflow it is a part of, and so on. This approach looked like use cases on steroids and was very impressive. At the same time, I sadly realize that such an approach requires an amount of money, time, and expertise in making movies that most software development companies just don’t have.
After the keynote, I chose to attend the NIER (New Ideas and Emerging Results) session on collaborative development. Raphael presented a paper we had written together in which we argue how very light-weight, low-involvement contributions like we found on GitHub (drive-by commits) could be used to systematically crowdsource software development tasks such as writing tests. The short talks and sometimes provocative topics of the NIER talks certainly incited a lot of questions, which gave the session a very nice back and forth between presenters and the audience. It was chaired by Daniela Damian who leads The SEGAL Group — our neighbouring research lab.
At lunch that day, I sat next to Chris Parnin. During lunch I found out that he had arranged a short tour of the GitHub headquarters a few minutes later and had to leave the lunch a bit early. I attribute it to my very unsubtle amazement that he invited me to join him. Completing my San Francisco experience, we took a sleek Uber car to GitHub HQ 2.0, and I totally checked in there on Foursquare. However, most importantly, I got a chance to hug the Octocat (cf. Fig. 4)! On a more serious note, I was quite impressed with the nice atmosphere in the GitHub offices. They have many different work environments to accommodate different situations and requirements regarding privacy and collaboration: closed rooms, an open office space, and even more open space that resembles a coffee shop. If I remember correctly, a bit less than half of all GitHub employees work in the office though, as the majority are working remotely. To support that, every employee is interviewed when they join, and the resulting video is posted internally so everyone can get to know the new hires. GitHub even has its own internet-based radio station so remote employees can listen to the same music as the whole office. I thought these were some interesting and meaningful attempts at creating a shared company culture over a distance.
In the evening, I attended the ICSE conference banquet on the San Francisco Belle, a ship used for dining cruises. From the pier, the ship took us towards the Golden Gate Bridge, where we watched a beautiful sunset from the top deck. The ship then went back to the pier, giving us a great view of downtown San Francisco at night. The whole trip took approximately three hours.
On this trip, I also learned about I’m On A Boat (ft. T-Pain).
Friday: The Importance of Practical Relevance for Research
Linda Northrop of the Carnegie Mellon Software Engineering Institute delivered the Friday morning keynote. It was titled “Does Scale Really Matter? Ultra-Large-Scale Systems Seven Years after the Study”; the slides can be found here. I found the core topic pretty interesting as it touches upon many disciplines, such as software engineering, game theory, economics, and network analysis. My key take-away however was that software engineering research needs to become more relevant to the real world. That is a sentiment I have been hearing more and more in the previous years, but I believe it needs repeating. Northrop reiterated that the real world are actually things like the rise of the smartphone, climate change, distributed collaboration on GitHub, or a population that is growing older and older. All these things create new challenges and opportunities, and researchers should work on these very real developments.
In the following session on analysis studies, I was particularly excited about a study by Johnson, Song, Murphy-Hill, and Bowdidge. In their empirical investigation, they explored why developers don’t use static analysis tools to find bugs. Felienne Hermans did a liveblog of the talk. The results were interesting: developers are overloaded and get too many false positives. Results often don’t have associated actionable advice. As I looked at practice and tool adoption by software developers in my PhD studies and am still very interested in it, this was particularly interesting to me. Apart from that, I liked the very hands-on empirical approach they used: talking to actual developers. More software engineering researchers should do that!
The session after that again spoke to my heart: it was about empirical studies. Bacchelli and Bird presented a study on the “Expectations, Outcomes, and Challenges of Modern Code Review”. Again, this was an investigation that involved actual developers. What’s more, based on their findings, the authors even give recommendations to practitioners on how to conduct code reviews. Another great talk in this session was Marian Petre’s “UML in Practice”. She also talked to developers and inquired about whether, how, and why they use UML, the Unified Modeling Language. Greg Wilson gave a nice overview of the paper at the It Will Never Work in Theory blog.
In the following closing session, well-deserved awards were presented to several outstanding researchers. We all thanked the organizers of ICSE 2013 and got an outlook from the organizers of ICSE 2014 and 2015. ICSE 2014 will be in Hyderabad in India and will introduce some changes to the review process — I view them as a positive development and am curious about how they will work out in practice. I’m especially excited that the call for papers explicitly welcomes replications of empirical studies. Replications are an important part of the scientific process that get overlooked too often in the race for the most novel results. In this session, the “ICSE Closing Session Blues” set in for me — every ICSE so far has been an intense three days for me. They’re always in interesting environments, and I always meet many people I only get to see once or twice per year. To me, this annual meeting creates a great sense of community, and I hope I will be able to attend ICSE 2014.
I spent the evening of Friday with a local web developer who is currently caught in a job where he cannot learn any new skills and therefore feels that he has no future. He cannot really leave his current job because of the health insurance it provides — he wouldn’t be able to buy it himself. This very personal dilemma provided a stark contrast to the flair- and opportunity-laden image I got from San Francisco on my first two days there. We talked a bit about different strategies that he could use to get out of this situation. I wish him the best.
Saturday: Cooperative and Human Aspects of Software Engineering (CHASE)
Even though ICSE was now officially over, I stayed in San Francisco for Saturday’s CHASE workshop. It started off with a great keynote by James Noble: he talked about his and his collaborators’ experiences with applying Grounded Theory in software engineering research. He gave an engaging overview of the method and shared some lessons he learned practicing it. The slides for his keynote are here and I urge every researcher interested in Grounded Theory to read “Developing a grounded theory to explain the practices of self-organizing Agile teams” authored by Hoda, Noble himself, and Marshall. It has many details that a keynote talk just can’t cover.
CHASE also had several paper presentations. In one of them, Jason Tsay talked about work he is doing with Dabbish and Herbsleb. They are looking at signals that developers emit and use to assess other developers and software projects, such as on GitHub. How do you decide which library or framework to invest your time? Next to technical reasons, you will certainly also consider other factors, such as how “alive” a project appears to be. Tsay provided some interesting preliminary work and I’m curious what else the researchers will find in this project.
Between paper sessions, the CHASE organizers had planned a poster session. I presented “Analyzing the Friendliness of Exchanges in an Online Software Developer Community“, which I had worked on together with CHISEL members Carlos and Brendan from our lab. Apart from having an engaged audience for our own research, I liked walking around and talking to many other researchers, all presenting interesting projects. Because “meta” things appeal to me, “Improving Developer Participation Rates in Surveys” by Smith, Loftin, Murphy-Hill, Bird, and Zimmermann especially appealed to me. In their paper, they give some recommendations on how to invite software developers to complete questionnaires. This reminded me a bit of how the Obama campaign used A/B testing to improve their conversion rate for donation-related emails by 49%.
To catch my flight, I unfortunately had to leave CHASE a bit early. With warm and sunny weather, I had been very lucky during ICSE and CHASE — but a minute after take-off, San Francisco was a mere carpet of clouds, with nothing resembling a city to be seen.
Every ICSE is special to me. But this year’s ICSE was especially great: holding it in San Francisco made it possible for me to meet some friendly and open locals who gave me very interesting and contrasting insights into life in this technology hub. I loved seeing current research being presented, and positively noticed a trend to more and more empirical work that I believe is so important for research to be relevant. And I enjoyed meeting many people I knew from past conferences, and also several others that I had never talked to before. In summary, it made me realize once more why I’m so thankful for my job: I get to meet so many interesting people, either colleagues with exciting new ideas and results, or practitioners that can tell me about their experiences in the real world.
Thanks a lot to Cassie for her helpful comments on a draft of this post!