It took me nearly twenty years to earn my Master's Degree in Computer Science. I started in 1987 and finished in 2006.
Can you beat that?
Why write about it? I think it's a pretty good story. And it's related to XAM.
And it's a Friday.
I started a co-op job at Data General in June of 1986. DG was building a brand new facility just off campus in Durham, NH. During my entire senior year I racked up hours at DG working on software for the storage industry. As graduation neared, I was enjoying my job enough to hope for a full-time job in the same facility. I approached my manager and he agreed to hire me after graduation.
On the day before graduation DG announced a hiring freeze. I had no resume and had interviewed nowhere. Oops.
I had a small moment of panic before reasoning that perhaps I could stay on as a co-op if I enrolled into grad school and started taking courses. I was right. I took the GREs, was verbally accepted into the program (pending the result of my GRE scores), worked full time in the summer of '87, and then started taking courses in the fall (while continuing to work a full week).
The hiring freeze lifted in November, and I was hired full time. Coincidentally I was also given the Berkeley RAID paper and told to "start building it" (the beginnings of CLARiiON). I decided to keep taking courses and complete a master's degree. I was literally one mile away from campus, and DG was footing the bill.
DG Closes the Durham Facility
I finished all of my grad courses and proposed a thesis. I was going to try and implement a technology known as LINDA. I proposed my thesis in the Fall of 1990. It was accepted. Unfortunately, DG announced the closing of the Durham facility at the same time. All of the people in my group that were building the RAID product held their collective breath waiting for the layoffs. Some (like myself) were fortunate enough to receive a relocation package. While this was great from an employment perspective, transferring to Westboro, MA from Durham, NH put a dent in my thesis plans. It wasn't so easy to work remotely in those days.
I was also swamped trying to ship the first version of RAID known as FLARE (CLARiiON's eventual microcode). We announced our first product in March of '91. I was unable to make any progress on my thesis. I didn't know exactly how to proceed.
Great News from UNH
In discussions with my advisor over the phone I received some extremely encouraging news. UNH was adding a PhD program, and as a result, they were trying to make it easier to move through their Master's Degree program. If students took two additional courses, UNH would drop the thesis requirement.
"Can I take the courses in Massachusetts and transfer the credits to UNH?", I asked. "Yes", came the reply. I took two courses at Boston University, and in spring of 1992 I transferred the credits to UNH.
Then I asked for my degree via email.
Bad News from UNH
It pained my professor to answer said email.
"The two more courses idea was just a proposal. It got shot down", he said. So was I back where I started? Did I still need to do a thesis? "No", he said, "we also have a test option now that you've completed the extra courses. There are four tests that measure your computer science breadth: Operating Systems, Compilers, Artificial Intelligence, and Analysis of Algorithms".
Sigh. The last thing I wanted to do was curl up with books on those topics. But I had gone this far, I might as well give it a shot. I had taken all of those courses as an undergrad, with the exception of Analysis of Algorithms. So I brushed up on the other three and dove deep into AoA. I drove up to New Hampshire and took the tests, and waited for the results. (So did all of my co-workers on the FLARE team). I thought I had done reasonably well.
More Bad News from UNH
I passed all four tests. What I didn't know, however, was that I needed to not only pass them, but "ace" them, as in "show that you have dominant knowledge in these areas". If I wanted to, I could keep studying, and take those tests ONE LAST TIME.
Moreover, my co-workers were having a wonderful time with the situation. Having a problem compiling FLARE? Don't ask Steve, he gets "confused" when it comes to compilers. Having an issue with FLARE's operating system? Better let somebody else look at it, Steve doesn't really know a lot about O/S concepts. And so on, and so forth. Gotta love your co-workers.
So I threw in the towel. I had no desire to become an expert on Artificial Intelligence. I was starting a family. Customers were buying RAID technology, and a new business unit was forming (CLARiiON). Too busy. My co-workers wanted me to give it a shot (for the wrong reasons I'm sure).
So, about 14 years went by, then...
I Bumped into My Professor.....
In 2005 I sent an email to one of my professors at UNH about some research he was doing on distributed programming. I was working on Centera and saw some similarities, so I dropped him a line.
"You should finish your degree", he said, "you're written so many papers and made so many presentations in your career that it shouldn't take you long".
He mentioned that if I could find a "non-proprietary" topic that was of interest to EMC and UNH, maybe I could actually get it done during work hours. Hmm. I like this idea.
Thank You XAM
Fortunately in 2005 SNIA had made enough progress on the XAM initiative that a first draft of a programming specification had been proposed. Many people inside EMC, as well as in the industry, wanted the API to be attractive to developers in the sense that it was "easy to use". There was hope that it could be "ubiquitous", in the same way that industry programmers were comfortable and familiar with file system programming.
So an idea was born. Write a XAM simulator, write some XAM software, write equivalent file system software, and compare the two approaches. This comparison would lead to recommendations about how to make the XAM API easier to use.
That's a win for UNH (good research topic), and a win for EMC/SNIA (get some early feedback on the usability of the API).
Interesting Guests at the Thesis Proposal
I have two memories of proposing my XAM thesis at UNH: (1) every student walking around campus seemed to be talking on a cell phone, (2) my 14 year old daughter and her friend were in the audience. Big difference between 1987 and 2006, that's for sure. My daughter thought it was strange when teachers showed up in shorts and bare feet (yup, it's pretty casual in Durham). She broke out the bagels and cream cheese for the students and the teachers. I told her that it's hard for people to ask the tough questions when their mouths are full.
All in all, it was a great experience for myself, my daughter, and especially the CS department, because I already knew most of the teachers, and they were glad to help me finish up.
In November of 2006, I completed my defense, and published the thesis.
I went out to eat afterwards with some of the other founders of CLARiiON who had lived in NH back in the day. We had a good time, and of course, there was plenty of ribbing, and lots of questions about what took me so long.
Would love to hear if anybody out there has a similar story, and perhaps took a longer time to finish their degree.