I am interested in techniques that make it easier to build reliable software that meets
its specifications - this requires that you write specifications of course.
With colleagues I have developed resources to support research activities
by the broader community. Several of them are linked below:
Other people keep track of the papers I've published, but it usually
takes some months for these sources to be updated. If you are interested
in a recent paper send me an email.
There are many great books on the research process that can help
shape one's approach. I won't attempt to point them all out, but
I'll mention one that I found early in my career.
The Incomplete Guide to the Art of Discovery
by Jack Oliver
distills lessons from a long and impactful career in research (on plate tectonics). It is full of many great suggestions, but the
cautionary tales related to the failure to look for and at the big picture
made an impression on me.
For instance, the tendency to "ignore the big opportunity and cautiously probe in detail the next obvious small element of the frontier" of a discipline,
the risk that you "become ... captivated by the intricacies and challenges
of ... day-to-day activities" and get stuck in a "science eddy", and
the temptation to "follow the crowd".
Falling prey to these, which is all too common,
leads to a scientific career comprised of collecting "crumbs".
Oliver is not alone in making these observations. During the COVID-19
pandemic my wife read John Barry's The Great Influenza
and shared a number of interesting insights with me. Barry quotes Oswald Avery
's advice to young researchers
saying that most "go around picking up surface nuggets, and whenever they can spot a surface nugget of gold they pick it up and add it to their collection".
Oswald clearly values the approach of the few other researchers who are "much more interested in digging a deep hole in one place, hoping to hit a vein" and
thereby "make a tremendous advance."
There is no one way to be succesful as a researcher and you need to find an approach that employs your personal strengths, that is sustainable over the long haul, and that makes you happy. But remember that your strengths are not fixed and just as you can develop and add new technical competencies, so too can you build your knowledge of strategies, tactics, and practices that will help you to be a succesful researcher.
One of the best parts of my job involves working with bright, motivated
students. I learn at least as much from them as they do from me.
Here are two interesting explanations of what a PhD education is
all about from quite different perspectives.
I felt both the grind, explained by Philip, and the inspiration, that
is implicit in Matt's explanation, in my education. My aim is to minimize
grind and maximize inspiration for my own students; some grind is unavoidable (i.e., research is hard or someone would have already done it).
- Dong Xu (PhD)
- David Shriver (PhD, co-advised with Sebastian Elbaum)
- Swaroopa Dola (PhD, co-advised with Mary Lou Soffa)
- Soneya Binta Hossain (PhD)
- Will Leeson (PhD)
- Nusrat Jahan Mozumder (PhD)
- Rory McDaniel (PhD)
- Dane Williamson (PhD, co-advised with Yangfeng Ji)
Graduated Doctoral Students
- Mitch Gerrard PhD 2021
- Haitao Zhu PhD 2013 (co-advised with Steve Goddard, first job with Lemko Corporation)
- Elena Sherman PhD 2012 (first job Assoc. Prof. at Boise State University)
- Du Li PhD 2012 (co-advised with Witawas Srisa-an, first job Post-doc at CMU, now researcher at HP labs)
- Jiangfan Shi PhD 2012 (co-advised with Myra Cohen, first job with Microsoft, now launching software testing startup)
- Rahul Purandare PhD 2011 (first job Assoc. Prof. at IIIT-Delhi)
- Suzette Person PhD 2009 (first job as Researcher at NASA Langley Research Center, now Full Prof. of Practice at the University of Nebraska-Lincoln)
- Oksana Tkachuk PhD 2008 (first job as Research Scientist at Fujitsu Laboratories, now at Amazon AWS Security)
- Robby, PhD 2004 (co-advised with John Hatcliff, first job Full Prof. at Kansas State University)
- Corina Pasareanu, PhD 2001 (first job as Researcher at NASA Ames Research Center, Assoc. Research Prof. at CMU)
I believe that the field of software engineering
develops most effectively when people build on each others
work through a cooperative, rather than a competitive, process.
I work to support that process by helping to organize
and run meetings and journals where people can report on and share their work.
- Program (co)chair of OOPSLA (2012), ICSE (2008), FASE (2007),
FSE (2004), PASTE (2002), and SPIN (2001);
- General chair of ICSE (2022) and ISSTA (2011);
- Steering commitee of SPLASH (2012-2015), ISSTA (2009-2016), ICSE (2004-2010,2018-present);
ETAPS (2006-2008), FASE (2006-2008), PASTE (2002-2004), and SPIN (2001-2003);
- Editorial boards for
IEEE TSE (Editor in Chief 2014-2018, Associate Editor 2006-2009),
CACM - Research Highlights (2013-2016),
ACM TOPLAS (Associate Editor 2009-2015),
Springer STTT (co-Editor in Chief 2003-2008); and
- ACM SIGSOFT (Secretary/Treasurer 2005-2009, Vice Chair 2009-2012)