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!