“We don’t have any answers here…”

I registered as a grad student at the University of Toronto almost seven years ago. Back then I was a software consultant in Mexico. I was dissatisfied with the software development practices around me, and convinced (thanks to readings of Brooks, DeMarco and Lister, and McConnell) that a better way to develop software, one based on careful empirical research, was available out there for those willing to learn it. I wanted to be one of them. My plan was to come to grad school, study for a Master degree, and then return to Mexico to create a software firm based on sound engineering principles.

On the first week of classes, when everyone was shopping around for courses to take, I attended a lecture by Marsha Chechik on formal verification. Before getting started with the material, she asked everyone in the group to say their names and why were they there.

I’m not sure why I said what I said when it was my turn. Maybe I misunderstood the question, thinking she was asking why were we in grad school, not in her course. Maybe I had an adrenaline rush after just having an upsetting incident where a clearly drugged homeless man jumped at me on my way to the classroom and tried to kick and punch me  while I blocked him and asked him what the hell was his problem (my one and only such incident in Toronto, weeks after my arrival). Anyway. When it was my turn I said that I was a software developer just beginning grad school, that I wanted to learn how to develop software properly, that I had lots of questions and that I had come to the University looking for answers. This naivete now makes me cringe, although it may have sounded endearing at the time, as if I had just found the wise hermit at the top of the mountain, not a Computer Science prof. Marsha disabused me of my wise-hermit notion immediately. Without skipping a beat she replied: “oh, we don’t have any answers here.” I think she added “but at least we might have better questions,” though I’m not sure: I was blushing and embarrassed by my theatricality by then, and not really paying attention. In any case, her reply was a blow to me. Why was I here, then? Was this grad school adventure just a terrible waste of time?

Months passed, and I understood Marsha’s point better. There are some answers, but they are tentative, and one isn’t supposed to come to grad school to get indoctrinated, but to help elucidate them. And then I started exploring the literature, doing empirical research, and having mind-opening chats with my advisor, and the experience was so fun and appealing that I decided to shelve my plans for a start-up and stick around for a Ph.D.

Now my Ph.D. is almost finished, and I’m happy to report that I did learn some answers, and I helped find others. Most of them are in my thesis, which I hope to make public soon, but I’m not candid enough to think that the world is going to rush to read it. So for the next few weeks, while I decide on a more suitable publication, I’ll be posting in this blog a summary of the ideas that kept me busy during these years, a kind of “what I learned at grad school” series. Hope you enjoy it!


About Jorge Aranda

I'm currently a Postdoctoral Fellow at the SEGAL and CHISEL labs in the Department of Computer Science of the University of Victoria.
This entry was posted in Academia, Software development. Bookmark the permalink.

5 Responses to “We don’t have any answers here…”

  1. Christoph says:

    Great post!

    The nice thing about grad school is that finding answers is our full-time job. Unlike the software developers that we are studying, we actually have time to understand their processes, to evaluate the effectiveness of certain mechanisms, and to look for improvements in systematic ways. Also, we get a much better understanding of why there are so many unanswered questions in the first place.

    One of the reasons for the amount of missing answers is of course the age of our discipline. Researchers in other areas are able to built on centuries of previous work, while the empirical investigation of software development started only one or two decades ago. We can certainly learn from other disciplines, but as you point out in your first post of this series, software development is unique.

    I’m looking forward to the series!

    • Jorge Aranda says:

      Thanks! I think we can draw from other disciplines far, far more than we have until now—as long as we remember to validate those arguments with the particular attributes of our field.

  2. Dai says:

    With the right amount of revisions, I think your thesis can be turned into a very nice book! And I’m sure the world will rush to read it. 🙂

  3. Pingback: Done with my PhD; beginning my postdoc | Catenary

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s