A few years ago I wrote a pretty critical post on the then-new SEMAT initiative, which wanted to “refound software engineering” with a “solid theory, proven principles, and best practices”. Recently, Ivar Jacobson and others published a book (“The Essence of Software Engineering”) to introduce practitioners to the SEMAT “kernel”. The book is worse than I feared. Greg Wilson and I review it at the Never Work in Theory blog.
These have been times of important anniversaries for me. In the past few days I’ve celebrated ten years in Canada, one year out of academia, and three months with Limbic Consulting.
In 2003, when Val and I moved to Toronto and I started my Master in Computer Science degree, I thought that my stay in both Canada and academia would be temporary. A couple of years, at most. But I discovered I liked both too much—enough to think of staying in them permanently. Years later, as it turned out, Canada is happily still our home, but I became disenchanted with the academic house, or rather with my corner of it, and left.
Professionally, this last year has been excellent—I feel like I had been in danger of being left behind by the software industry, and that I’ve caught up again. After a stint at Terapeak (a company where I learned much, but whose goals diverged with mine) I joined Limbic. I’m very glad I did. Limbic is a small firm (which I think is great) filled with smart, fun, kind, multidisciplinary people. The office feels equal parts grad lab, electronics workbench, Agile shop, and surreal cave.
We’ve got an art gallery attached to our workplace, a tickle trunk with wigs and costumes to use in standup meetings (and whenever the conversation gets heated), a dictionary of modern thought and back issues of Make as our washroom reading material, great coffee, and healthy snacks. Most importantly, the projects we are working on are both technically challenging and fun, and we have the autonomy to work on them the way we think is best. It’s a pretty unique place, and an exciting time for me.
It’s been a while since I last wrote about vegetable gardening, but it occupies my mind quite a bit and I should share some of what’s going on. At home, we’ve had two growing seasons so far, the second being more demanding (and more rewarding!) than the first: we almost tripled our garden area.
We grew spinach, lettuce, kale, swiss chard, peas, beans, tomatoes, tomatillos, hot peppers, garlic and garlic scapes, strawberries, cilantro, and carrots. Without any actual effort we also got rhubarb and blackberries, whereas despite our efforts we had no zucchini, cucumbers, leeks, nor onions. The hot peppers and the carrots could have done much better, and I think they will this time around. Bringing the garlic heads out of the soil after spending about three quarters of a year there felt glorious, even though some heads came out with only three or four cloves.
Although I was not keeping track in detail, I think that the amount we saved on food, for veggies of this quality, surpassed the amount of money we put into the garden last year. Of course, I don’t do gardening to save money, but it’s a nice comparison: I’m sure this was not the case the year before last. This year we’re making some “investments”: a cloche frame (a kind of mini greenhouse) for the tomatoes and peppers, and an irrigation system for more consistent watering—it was difficult to find time every day to water an area this big during the Summer.
I like how gardening has become an important part of my life. I wouldn’t have expected that a few years ago: I was extremely careless and ignorant about plants. I’m still pretty much a novice, but I find the experience alternatively absorbing and dissipating. It gives life (including human life—gardening while being a new parent made the link evident to me) a more natural perspective than what I’d grown to expect in an urban environment. So here’s to many more growing seasons! And if you’re thinking about having a garden, this may be the right time to get started with your planning.
The year wraps up, and I’d like to share a batch of recommendations for stuff I enjoyed in 2012.
First, books. I simply loved Semple’s “Where’d You Go, Bernadette?”. I was expecting it to be funny, but I was surprised to discover it was also clever and humane. Though I usually dislike books about drunkards or addicts, deWitt’s “Ablutions” was fresh and very, very good—after this and “The Sisters Brothers” I’m platonically in love with him. Ford’s “Canada”, a novel about a kind young soul growing among adults that can’t help but bring destruction on themselves, is written with wisdom and skill. Spufford’s “Red Plenty”, an extremely multithreaded novel about communist Russia’s central planning, was not great, but I still appreciated its ambition and originality.
As for non-fiction, I found Lucretius’ “On the Nature of Things” to be awe-inspiring: at times it would seem as if all of modern science had only worked on relatively minor corrections of his understanding of the world, while ignoring his impassioned claim that the whole point of these endeavours is to bring inner peace to humankind. Berger and Luckmann’s “The Social Construction of Reality” was wonderfully compelling, lucid, and witty. It is the book I wish I’d read at the start of my doctoral work. For something lighter, Glouberman and Heti’s “The Chairs Are Where the People Go” is an endearing and frank collection of micro-essays.
I had a good year with books in Spanish, too. The slightly unhinged lovers of Pauls’ “El Pasado” spiral down to disaster with exquisite prose. Borges’ collection of lectures, “Siete Noches”, is a touching display of his brilliance and kindness, and “Los Conjurados”, his collection of late poems, is concerned with history, transcendence, insignificance, and lives lived nobly and simply. Krauze’s trilogy of Mexican history (“Siglo de Caudillos”, “Biografía del Poder”, and “La Presidencia Imperial”) is captivating and often lyrical, although his main thesis—that Mexican history to a large extent can be reduced to and explained by the biographies of its leaders—loses strength as Mexico approaches the present time.
I’m still playing catch-up with recent movies, and I doubt I could recommend anything you wouldn’t know of already (but watch “Moonrise Kindgom” if you haven’t). One exception might be “Small Town Murder Songs”, a low budget Canadian independent film that is subtle but powerful. It features music by Bruce Peninsula–another recommendation on its own right. Going much further into the past, I found Bergman’s “Wild Strawberries” to be almost perfect.
Online, I enjoyed Bret Victor’s essays. He’s clearly a genius—one I often don’t agree with, but this makes his writing all the more engaging. The New Yorker’s Fiction Podcast features authors reading other author’s works, as well as conversations with Deborah Treisman, and it is consistently superb.
Among my guilty pleasures, I loved being distracted by three sites whenever they had an update: What If, for silly questions explored seriously to everyone’s satisfaction; Horsey Surprise, for a satire of online comment trolls, and Textastrophe, for SMS pranks. I didn’t have much time for gaming, but most of what I had went to XCOM: Enemy Unknown, and, in the past few weeks, to Tropico 3, a sort of SimCity where you’re not a city mayor, but a tropical island dictator during the Cold War.
At work, we’re using Dropwizard to structure our web services, and I liked the way it puts all the relevant pieces together. For a personal project, I used and liked node.js and socket.io, and it was refreshingly easy to get my application running with them. I also toyed with D3.js, and I’m looking forward to a time when I can put it to good use—Mike Bostock’s site has fantastic examples of his library at work.
I believe that’s all. If you haven’t read them and are curious, I’ve written similar posts for 2011, 2010, and 2009. I hope you’ll find some of these recommendations useful, and I wish you a Happy New Year!
Greg Wilson writes:
Jorge Aranda and I submitted a short opinion piece to Communications of the ACM in February 2012 that discussed some of the reasons people in industry and academia don’t talk to each other as much as they should. Ten months later, it has ironically turned into an illustration of one of the reasons: it was six months before we received any feedback at all, and we’ve now waited four months for any further word. In that time, Jorge has left academia and I’ve taken a job with Mozilla, so we have decided to withdraw the manuscript and publish it here. We hope you find it interesting, and we would welcome comments.
The manuscript is up at Greg’s blog. Hope you enjoy it.
I’m happy to announce that this week I started on my new programming position at Terapeak, a local data-analytics company. I’m especially happy because it satisfies almost all the criteria I was looking for when I set out to find a job . It’s quite a change for me to get out of the university environment after being immersed in it for almost 9 years—a change that I felt was necessary, and one that I was really looking forward to. So I’m no longer an academic. Or I guess you could say I went native: I joined the community that used to be my object of study .
I’ve only started at the new place, but I’ve been already learning quite a bit and having lots of fun. I’m also having really satisfying feelings of liberation (getting myself out of the small, ineffectual corner to which my research had been pushing me, as research tends to do), of relevance (knowing that my work will be used and found useful), and of possibility (dusting off skills that will get me closer to where I want to be). These feelings may be possibly in part due to the novelty of the change, and, as always, it’s hard to say how things will turn out. But right now this feels like it was the right choice.
 With one exception: it is not an organization working on environmental or social justice issues. But I found none of those hiring folks like me in Victoria. Of course, I’ll continue working on these issues in my free time.
 Though I never did research on Terapeak.
Last Sunday, on Canada Day, Val and I took the oath of citizenship to become Canadian (we retain our Mexican citizenship, too). The ceremony took place at the beautiful Government House, and we got the chance to meet and shake hands with the Lieutenant Governor Steven Point, the Minister of Community, Sport, and Cultural Development for British Columbia, Ida Chong, and the Mayor of Victoria, Dean Fortin.
It was an emotional ceremony, but I didn’t feel I became Canadian there. As with my PhD convocation, I felt that the ceremony was merely a ritual to mark something that had happened earlier on, gradually, over many moments and incidents. Getting the citizenship is great—I’ll get to vote, travel will be much easier—but I’ve been calling Canada home for a long time already.
One of the things I’ve been doing over the past six months is an assessment of the effects of the Software Carpentry program on its participants. It involved surveys, dozens of interviews, and observations. I’m happy with the results, and glad I got the chance to do this. I delivered my report today, and it’s now available to the public (PDF). If you prefer, you can read the Executive Summary at the Software Carpentry blog.
Since I wrote a post about looking for a job, a few people told me they were interested in the reasons why was I not looking for a professor position. After all, the typical procedure for someone in my situation (a PhD with a postdoctoral fellowship under his belt) would have been to apply to as many professor and research lab positions as possible. Right now, I should be flying all over the continent, presenting my work at universities, and trying to get one of those elusive tenure-track positions somewhere or other—perhaps taking another postdoctoral fellowship (or two) if the professorship does not materialize.
However, I decided to step out of that treadmill when my time at the University of Victoria runs out. There are many reasons, but three stand out: I became a father, I got tired of the Ponzi scheme dynamics of the academic career, and, most importantly, I lost faith in the value of much software research to society.
First, parenthood. Among other things, parenthood meant, to me, that my partner and I should be more selective of where we’ll live, where are our friends, how much will I need to travel, and to what extent can I balance work and personal life. We’ve made friends in Toronto and in Victoria; uprooting ourselves again, perhaps a number of times until we finally settle, is unappealing. Furthermore, I now like keeping my evenings and weekends to my family, and to minimize travel. All of this does not agree with the demands placed on young computer scientists today: there are proportionally very few positions available, and if you want to get one, you might need to jump yearly from postdoc to postdoc, and from city to city, perhaps from country to country, and to work overtime to beat your friends to one of them—and once you get it, you’ll need to sacrifice even more to satisfy your tenure committee.
I don’t think it was always like this, for Computer Science researchers. From what I have heard (I don’t have concrete data), the field expanded pretty rapidly some 15 years ago, and for a while universities were grabbing new doctors as fast as they could. But CS enrollment took a huge hit after the bubble burst, and it has not recovered. As a result, university demand for new professors is pretty low—or even negative, in some cases: the positions of retired professors are not being refilled. The university keeps churning new doctors, though, and these doctors are taking postdoc positions because there’s nothing else available, and they build up their CVs so that new grads almost certainly need to engage in the same dynamic themselves if they are to compete. The postdoc life in North America, by the way, is certainly more comfortable than that of the graduate student, but it still does not compare to that of the industry professional. Before you get that professor position (if you get it), you’ll spend about ten years of your life, at least, earning a fraction of the salary of your wiser college friends. The skills you’ll learn in academia will also be a tougher sell outside of it than the skills you would’ve learned in industry (though I think they may be extremely valuable skills, they are not necessarily seen that way out there). All in all, there does not seem to be a strong financial case to be made for the academic path at this point in my field.
I could put up with all of that, actually—with the uprooting and the overtime and the elbowing and the living-at-the-poverty-line—if I was convinced that what we are doing in Software Engineering research is important to humanity. But over the past few years that belief has almost disappeared. The academic structure, at least in my area, only rewards benefits to society nominally; in practice, they are usually nowhere to be seen. You can scour our top publication venues for usefulness, as I do, and find, often, very little to report. (Sadly, you could scour my publications and come to a similar conclusion…)
This problem of usefulness to humanity exists when Software Engineering research fails to be pertinent, but sometimes also, ironically, when it succeeds: one of the goals of our research is to improve the efficiency of software companies, and for a civilization mindlessly depleting its resources faster than ever, it’s unclear whether the net impact of improving the performance of a software corporation is positive or negative to society. There is of course an argument to be made about indirectly aiding progress, but I’m skeptical of it. I only have one life, and if I’m going to put myself and my family through the stuff I described above, I want to make sure that it is for a good reason.
Now, I said that my belief in the usefulness of Software Engineering research has almost disappeared, and that “almost” is important. To be sure, some people working on this field are admirable, their work is fascinating, they tirelessly swim against the stream, and we’re indebted to them (you know who you are; don’t make me name you!). When I think of them I start second-guessing myself: should I not stay and keep trying to use my skills in meaningful problems? Am I not acting precipitously? And the empirical bent of much of our research today brings it closer to applicability—am I not giving up too soon?
Perhaps, but in the end, I’m leaving the university because I have not found a sustainable way to stay and help (truly help) fix the world, and I lost my patience. I’ve resolved to work for an organization that is actually built around that purpose, ideally, or for one that makes it easy for me to do it in my personal time. Given the current state of my field, either will bring me closer to my goal than pursuing a professorship.
My time as a postdoctoral researcher at the University of Victoria will run out fairly soon: until the end of August at the latest, four months from now. It’s time, then, to look for another job, and to make some important decisions about who and where do I want to be. For reasons that deserve a blog post of its own, I decided not to look for professor positions, and to broaden my scope instead.
Ideally, I want to find a job that fulfills as many of these needs as possible:
- First, do no harm. I won’t work for an organization that deals in violence to others, to the environment, or to fairness.
- Second, do as much good as possible and still get paid. I would love to work for an organization that’s trying to make the world better, especially with respect to social justice or environmental issues. I would work hardest, and for lower pay, if this was the case. Alternatively, I would like to work for an organization that has enough freedom built in so that its members can pursue these goals in their available time.
- Geography. Val and I like Victoria and Toronto, we’ve built networks in both cities, and they’re currently our two top choices.
- Stability. I want a permanent position with a sustainable salary, because I don’t want to be looking for another job again a year from now.
- Work-life balance. Reasonably low overtime and travel requirements, and flexibility in work hours to be there for my daughter when she needs me.
- Good teamwork and work environment. This is harder to assess than the others, but I think a commitment to team self-organization, autonomy, and co-location are good indicators.
- Technically hard problems, because I want to feel challenged and engaged at work.
And here’s what I think I can offer in return:
- An unusual perspective: I’ve studied dozens of software organizations and interviewed hundreds of professionals, who have shared with me their ideas of how their teams work and how they could work better, especially with respect to coordination and communication.
- Pragmatic knowledge of useful and state-of-the-art empirical research in software development, which I regularly blog and write about.
- Skills that I learned while getting my PhD and that are transferable to (and, I think, welcome in) the software industry and elsewhere: observation, active listening, data analysis, communication, estimation, and self-management.
- More conventionally, experience developing software and managing projects.
- The assurance that, as long as my employer fulfills the needs I listed above, I’m in it for the long haul.
There’s nothing in my wishlist about specific positions or job titles—the ideal position for me might be hard to pin down with a label. I expect that for most organizations my best current fit would be around project management, although I would also love to develop software again, and to work in the intersection of research and practice. If you know of a place where I could be of help, or if you’d like to discuss possible collaborations, please let me know!