Skip to content

Book: How to Break Software

07/03/2012
Finally I got around to read a book that is actually related to my area of study, computer science. Although software testing is not my main area of expertise but it never hurts to freshen up on practical skills such as testing.

How to Break Software is a very practical guide to go all out Godzilla on software and break it in every way possible. In his book James Whitaker gives very practical advice on how to systematically and methodologically dissect the inner works of software.

One very good advice Whitaker gives is to very carefully plan testing goals and how much effort should be expended before calling it tested enough and then rigorously work towards the defined testing goals.

So next time you are testing some peace of software set clear attainable goals and then test the crap out of that software.

Is an iPhone enough for a CS conference?

29/02/2012
Short answer no. Short justification, the battery does not last long enough. But let me first start with some of the typical things I do during a CS conference such as ICSE or CSCW and then go over the pro’s and con’s of using an iPhone. And here is the list in no particular order:

  • Attend talks/keynotes.
  • Attend conference breaks.
  • Give talks/presentations.
  • Tweet.
  • Take pictures.
  • Check stuff on the web.
  • E-Mail.
  • Take notes.
  • Exchange contact information.

Attend talks/keynotes

Yes, I still go to conference to actually attend talks, not just because of the location and the opportunity to go on relatively cheap vacations. And attending talks often means walking from room to room, to maximize the gain from listening to talks that are relevant to me and my research.

Believe me the power outlets are always positioned in such a way that you will inconvenience half the room when you want to leave a session. Think front most on either side of the room. Thus not relying on anything that needs a table or power outlet is a win. And the additional benefit of an iPhone is it fits in your pockets, unlike an iPad or a netbook (tried not to mention the Mac Book Air on purpose, darn), which occupies a hand or need to be fit into a backpack, both decreasing maneuverability around other attendants.

Attend conference breaks

We all get hungry at one point and for the small hungers and thirst (in the morning often dominated by the need for coffee) we got those awesome breaks with refreshments. But at conferences with several 100 attendees this can get very crammed and the less you need to carry in your hands and the smaller your profile, meaning no backpack better than having one, the better. You don’t run into people, you don’t drop your coffee and you can get also something to eat with your coffee.

Give talks/presentations

At this years CSCW I was fortunate to give a talk, for more information see my last post. I was considering to use my iPhone to give my presentation but decided against it for two reasons. (1) I don’t have the latest version of Apple Keynote and thus would have needed to revert to doing a pdf presentation without animations, and (2) most importantly there is no remote that you can use to control your presentation and thus limiting you maneuverability (yes I know you can use another iOS device using the KeynoteRemote app, but believe me conference wireless at academic CS conferences is something you really shouldn’t rely upon).

Tweet

There are often folks of mine that are left at home, such as fellow students that couldn’t find the funding to attend a conference, but still would like to know what is going on at the conference in particular at the talks. The by far easiest thing is to tweet bits and peaces as they happen (it is also a good way to pay attention to a talk). But depending on you fellow audience members the typing speed you can reach as an untrained iPhone typist you are reduce to re-tweeting.

Take pictures

… for my blog, like here. I never bothered to invest my meager savings into a high end camera and for the low end the iPhone actually does produce some decent pictures, especially if you know a little bit about photo post-processing.

Check stuff on the web

Ever had the feeling that you need to check a claim of a presenter on the internet? Well, I certainly had and the iPhone is easy to pull out at a moments notice and to check something wether you sit in a talk on a chair or need to stand. Try checking something quickly getting you netbook from you backpack not being able to put it down somewhere to type.

E-Mail

E-mail, easiest thing. My pants are always on vibrate, sometimes annoying but always up to date. Sending work as well plus it helps you keep your responses brief due to the more tedious typing.

Take notes

Note taking is an art with the iPhone, but once you got the hang of using the keyboard it is a very handy way to actually write down your thoughts, you just need to get comfortable with the keyboard.

Exchange contact information

Bump is cool but not available to everyone, email on the iPhone awesome. But nothing has yet surpassed the business card.

Conclusion

Bottom line, I enjoyed to only run around with my iPhone and my charger, both fit neatly in my pockets and I was more agile in jumping from session to session. Plus I did not feel to temped to surf the web and instead listened to the talks more (sadly it made me realize even more how bad many of them really are). If you are not afraid give it a try (just don’t forget to take your wall-charger with you).

(btw I did my iPhone “only” test run at CSCW 2012)

Let me know how your smart phone only conference went!

CSCW Summary

22/02/2012
Last week I was in Seattle-Bellevue for CSCW (Conference on Computer Supported Collaborative Work). If you had the pleasure to follow me on twitter you might have seen my updates and retweet of events tagged with #cscw2012. But before the main track (or better the six parallel main tracks) started I had the pleasure to attend the Workshop on the Future of Collaborative Software Engineering.

Workshop on Future of Collaborative Software Engineering

The workshop started with two rounds of poster presentations, where everybody had a chance to give a quick one minute madness introduction to his/her poster to attract people to discuss it in greater “length” (well it was maybe 10 minutes) with other that were interested in the topic. I think that was a great start to get the creative juices flowing and was a good way to get a nice overview of what others had done.

The second part was somewhat disappointing. We had a set of speakers that where either presenting their own paper or a summary of the papers assigned to their session. The speakers were good and the topics interesting but it took up the rest of the workshop.

I would have loved to see us sit down and actually spend half of the workshop discussing and synthesizing the gathered insights and ideas into a set of future trends that we think will be most likely to occur. At the end of the workshop I somewhat felt left hanging without having derived a conclusion about the future outlooks.

CSCW main conference

The main conference was interesting but sadly offered only a small number of sessions that looked interesting and most of them where in parallel. But this gave me the opportunity to explore different tracks and although not directly (or even indirectly related) to my research area there are some remarkable things going on. One talk that in particular caught my eye was about eye tracking. This research group is able to track at which line of code participants are looking on the screen, super cool for program comprehension studies.

I also had the chance to contribute a talk to the main talk, here are my slides on slideshare.net, note I am currently working on webinizeing the slides so that they actually make sense. In the mean time you can get the paper from acm.org.

The talk went well, I stayed on time, got some major laughs and got some good questions. The only down side was that it was the first on the first day after lunch. Which brings me to the following, never organize a conference with lunch on your own. Especially at the first day people had trouble finding a place close enough serving food fast enough and had trouble keeping track on time as a result many people came in late to the session, almost until the end of my talk people kept trickling in.

Oh well, the next day I had fun at the town-hall meeting by calling bullshit on some discussion that seems to happen at about every conference. With the new review process the acceptance rate got much higher and raising concern as to the worth of a CSCW publication and as always all the “senior” profs stated that it is an insufficient measure and we shouldn’t worry about, but somehow those same profs sit on the hiring and funding committees, strange. After I posed the question about “who then is using this measure if everyone agrees that it is inappropriate” and I got a lame excuse that we only use it because other research fields are relying on Journals and don’t think conference publications have any worth. Oh well, I guess after decades of dealing with that issue no one ever bothered to change the process to first submit to a CSCW journal and then invite the accepted papers to the conference, and be done with this pathetic crusade to convince others that our system is equivalent to the more traditional journal based systems.

Let’s move to some more fun things. The same day of the town-hall we had the conference banquette. It was at an Arcade with Bowling alley, sweet. All games were free it was just plain amazing. Bowling with friends check, racing friends in Ferrari simulator check, racing friends in Need for Speed check, Dance Dance Revolution check, and Air Hockey check. Man it was just plain cool, that event alone made the conference so worth it. Sorry, didn’t had the chance to make pictures and due to the dark nature I don’t think my iPhone would have produced anything of use.

Anther cool thing at CSCW was DoTastic a social to do app. You can assign tasks to yourself and to other. When you assign tasks to others you can give them points for completing them or you can chip in points to get your friends going on other tasks as well. During CSCW Microsoft had a competition running on who can gather the most points to win a Kinect and look you won (picture to the right).

Go SEGaL.

Poster at Future of Collaborative Software Development

15/02/2012
This week I presented some posters at a workshop held at CSCW 2012. The workshop was on the Future of Collaborative Software Development here the excerpt of the workshop:

This workshop brings together researchers who are interested in the evolution of software development organizations and the role of collaboration technology, such as crowdsourcing, social media, software hosting, and application marketplace services. This CSCW 2012 workshop will include brief presentations, moderated discussions, a poster session, and a forecasting exercise to inspire participants to come up with their next big research idea.

And here is my poster to the paper we submitted:

Paper/Poster abstract:

Organizations are spending effort and money on upgrading their development infrastructures such that their tool suites better integrate with each other. This new level of integration, which pushes beyond the level of coding activities and the management of such activities, is rapidly increasing across the industry. Once this integration encompasses the product development as a whole, including coding, marketing, design, and testing, we will experience a breakdown of department boundaries within organizations that mainly exists because of environments specific to each department. In consequence, teams in organizations will organize more naturally and enable easy collaboration across “departments”.

Book: The Progress Principle

08/02/2012
The Progress Principle: Using Small Wins to Ignite Joy, Engagement, and Creativity at Work gives some very interesting insights about the power of positive and negative work events. Teresa Amabile and Steven Kramer uncovered some very important insight into increasing productivity. Both managers and employees alike should heed the advice of creating a constant stream of positive work events.

But what are positive work events that should be maximized and what are negative that should be avoided?

Positive work events constitute events that accomplish tasks towards meaningful work and helping your fellow colleagues or your sub-ordinates to accomplish their tasks are two very powerful events that will greatly increase productivity for future work.

Negative event on the other hand, such as frequently changed goals, adversity in pursuing important work, and loss of independence.

I personally do research in optimizing the productivity of software developers by providing them with new tool and processes to be able to accomplish their work faster. I am currently wondering how much influence these tools and processes actually have.

If you want to know more about the progress principle you can find more at progressprinciple.com.

The Evil Guide to Getting Papers in Empirical Software Engineering

01/02/2012
Over the past years as a PhD student I had many discussions about how to best publish papers. After many rants about the in my opinion deprecated review system (not really my point in this post, but it is always good to plant and nurture the seed ;)), I came up with the following evil paper publishing scheme. For all of you that are still innocent or are easily tainted by evil schemes and thought, you might want to stop reading right here.

Here is what you should do:

  1. Take a course in creative writing.
  2. Read paper from researchers that do studies in industrial settings.
  3. Read paper the open source/open data counter part to the papers describing studies in industrial settings.
  4. Read open source/open data papers that do not have an industrial settings counter part.
  5. Write the the industrial settings counter part and publish.

The Trick that makes it all work:
Have you ever read a paper that reported on a study conducted at a company that wishes to remain anonymous? Right, that is the loophole that we are exploiting by simply stating that we cannot reveal our sources and therefore take any means of checking our research. Worst case we can always refer that our results differ that much because of the very special circumstances of the project we studies.

Step 1: Creative Writing
Create writing is the one skill you will need the most to succeed with this evil scheme. Creative writing will help you to come up with nice ideas and construct an intuitively logical argument (pepper it with some sound stats on face data and nobody will be able to stop you). The next steps will help you to find topics to apply your creative writing and make sure that you stay within your limits and don’t start to make outrageous claims in your papers.

Step 2: Industrial Settings
This you will need to do to see how data from industrial studies is reported and to get a good overview about the arguments used why they cannot name the organization or publish the original data. Furthermore, industrial case studies often have some very unique settings. Those settings are always a good source of inspiration when trying to justify some of your variation in results and give you a bit more credibility that you actually did research at a company.

Step 3: Open Source/Data Settings
To further your understanding between studies done at industrial sites that don’t allow for publishing their data and the rest of the world (well that is mainly the open source community)you should read up on studies whose data is available. This will give you a better idea on what data usually is available to the public and what can be done with it, as well as short comings that you might not find in industrial settings. For instance, in open source you have a more difficult time getting access to developer in particular when you want to shadow them during their development time, whereas in an industrial project you usually know where the developers are located and when they are working.

Step 4: No Industrial Settings
Next on the list is to get ideas for you own “paper”. The easiest way is to read papers about studies that do not have a closed data equivalent. You basically scour the huge amount of studies that had certain short comings due to their data collection methods or did not explore the connection between the project setting and the results in great detail and use this and other potential differences to write your own paper.

Step 5: Write Your Paper
When writing you paper that is based of the ideas of studies that are already published it is important to vary the results and the setting in a meaningful way, such that your results can intuitively be explained by the variation in the setting. This serves two purposes, you won’t make any claims that are unbelievable and stay within a certain norm of accepted results and you will make the researchers of the original study happy as to mostly confirming their findings.

Bonus: Steps 2-5 are not essential
Now for the creative writing pro’s that have enough experience in their field of study. You can omit steps 2 to 5 and simply conjure up a study that is generally believable and follows the trends within your community. The trick is to stay away from things that might create doubt in the validity of your study by making outrageous claims or contradicting accepted norms, simply put: keep a low profile. This won’t win you any best paper awards but a paper is a paper.

The final questions for you: How important do you think is it to teach graduate students and researchers ethical guidelines/behaviour? And how do you and/or institution do that?

Book: The Prince

25/01/2012
I recently got to read an old classic, The Prince (associate link) by Niccolo Machiavelli. My main motivation was that Robert Greene in his book The 48 Laws of Power makes excessive use in referencing the works of Machiavelli. Now I finally understand what people mean by (or what the actual meaning of) describing someone as Machiavellian.

Here is a definition I took from an online dictionart (thefreedictionary.com):

adj.
1. Of or relating to Machiavelli or Machiavellianism.
2. Suggestive of or characterized by expediency, deceit, and cunning.
Machi·a·velli·an, Machi·a·vellist n.

Although I doubt that most people that describe someone as Machiavellian try to relate it to the works or Machiavelli directly, I do need to agree to the second definition as describing someone as expedient, deceitful, and cunning. These are also the main “weapons” Machiavelli suggest to use in order to establish or keep in power.

Let me highlight the two aspects in his guide of conduct for princes (or more general people in power) that stood out to me:

  • Kill everyone that could claim you power or will diminish some of it in the process of attacking your power. This seems to be very extreme, especially nowadays. Nevertheless, it might be not a bad idea to rid oneself from someone by killing his/her reputation instead. Do you think that is enough?
  • Keep the populous happy. Similar as Sun Tzu in The Art of War (associate link) pointed out, in order to stay in power especially when that means ruling or leading people it is very important that those people have a positive view of you and are not unnecessarily provoked to conspire in taking you down.

With regard to the last aspect, what do you do to keep your people happy?