Incremental mojo
Hello, another introduction for you – my name is Geoff Price, and I’m the Product Unit Manager for MacBU in Redmond. This is MS speak for saying I have responsibility for the core engineering teams here (development, testing, program management and user experience research.) I look forward to contributing to this eclectic RSS broadcast at irregularly scheduled times, and I’d like to echo those who have gone before in thanking you very much for tuning in.
I intend to cover more specific topics about our software, our teams, what we build and why, but first I thought I’d start out (perhaps uncreatively) by filling in some of the background picture on my particular history of development on the Mac and how I got to be here.
My programming experience with Apple computers began on the Apple IIe in 1983, and my development experience with the Mac itself began around the time of the introduction of the Mac II in 1987. (I realize it is possibly more fashionable these days to date your involvement with the Mac all the way back to at least 1982, or some other date even earlier than its actual introduction, but these happen to be the correct dates in my case.)
Back in the day, I worked at a Mac lab in U.C. Santa Barbara, and when student traffic was slow I could use the time to do coursework, experiment with Turbo Pascal, or write political columns for the campus paper (random aside: one of these concerned the case of an amateur talk radio host by the name of Sean Hannity, facing dismissal from the campus airwaves over inflammatory on-air remarks. A story, I suppose, for another blog.)
I soon joined a team operating out of the deeper recesses of the lab that worked with faculty to explore the practical teaching and learning opportunities emerging out of the new “multimedia” technology. In order to rapidly develop courseware applications for interested faculty, this entailed a deep immersion in the enchanting, “hyperlinked”, quasi-object oriented world of HyperCard, which would prove to be a consuming focus for the next several years.
As long-time Mac enthusiasts know well, HyperCard tended to stir fierce devotion in its supporters. At the time, it captured a sense of the creative possibilities of computing, as well as the spirit of the Mac in enabling the rapid development of graphic user interfaces with a more accessible and English-like interpreted language for programming. It also had a bit of the punk sensibility of DIY (if with a highly geek cast.)
This was at a time when Apple was pretty dominant in education, and there was terrific momentum behind HyperCard there. Now, HyperCard was relatively accessible, but it still took some learning and a lot of scripting, and by default had some limitations, especially relative to multimedia. It was however highly extensible, as developers could build compiled code resources (XCMDs) that tapped into any underlying system API, which could then be accessed as commands in the HyperTalk scripting language.
My work on courseware applications led to a partnership with a teacher named Mark Ferrer, who had ideas about trying to provide teachers and students a richer framework for developing their own interactive multimedia applications. The result of this was a HyperCard-based authoring product with a name rooted in academic workshops, HyperGASP, which we eventually released as a small-scale commercial product, touring around schools and colleges and working with interested educators.
One thing this initial foray into commercial software made me appreciate pretty clearly was the amount of work involved and the value of specialized expertise in all aspects of software development. I designed UI, wrote code, tested it, wrote documentation (in a stack, of course), spent time working with reviewers at tech publications, mocked up ads in Photoshop, managed beta lists, handled tech support, etc. You can still read about the product here, conveniently and cryonically preserved on the web. (Funny to go back and read some of that. I forgot about the great Word integration features we threw in – so Microsoft-friendly!)
Ultimately of course, HyperCard didn’t make it. Apple struggled with the business case, the rise of the PC in all segments as well as alternative authoring environments displaced a lot of HyperCard seats, and ultimately the cross-platform standard of the web provided a much more killer framework for hyperlinks. Many creative endeavors that had incubated in and around HyperCard lived on, such as wikis, boingboing, and Myst.
(Quick test for HyperCard gurus lurking in the audience: given that you could only paste cards after the current card, what’s a one line command you could type into the message box which would move a given card (say #n) to the first position in a stack, and why does it work?)
My personal life got busy with the arrival of my first two children. I transitioned to working for a publisher in Santa Barbara who had carried HyperGASP in their catalog, helping them build custom cross-platform multimedia tools. In addition to Mac programming this entailed ramping up on more serious Windows application development (Win32/MFC) as well – something that seemed like a reasonable hedge given the share Windows 95 was establishing.
By the time I dropped an updated résumé off with a recruiting agency at MacWorld Expo, I was resigned to the idea that my next job might end up being straight-up PC programming, or something completely different like Java. Surprisingly, the company that turned out to be most interested in the Mac portion of my résumé was, of all companies, Microsoft.
It was 1998, soon after the formation of MacBU as an independent business group, and the new team was staffing up on Mac-focused developers. The existing roster included devs with a wide range of interesting experiences in the industry (one senior developer had previously worked at Apple on HyperCard’s file format, among other technologies.) The opportunity to work on a well-supported project with a group of really smart folks gathered from all over the world – as well as Excel architect Rick Powell’s persistence – eventually got me on board.
At this point I’ve been with MacBU for over eight years, starting as a developer in Mac Excel, where our first challenge was to move our development environment and code from MSVC to CodeWarrior so that we could move forward on the platform. I was the Excel dev lead through the Carbonization effort of Office v.X, rewriting the older and thicker layer of Excel’s event handling nervous system to be based on the native OS X (and more preemptive multithreading-friendly) APIs of Carbon. Since 2002 I’ve been focused on managing first the development team and now the Redmond engineering teams as a whole, which among other things means doing what I can to maintain an environment where smart people will continue to want to come and work.
I’ll have to save some stories for later posts, as this “brief” introductory post has already gone long, but I’ll close up with a short state of the union.
One nice thing about MacBU is that things are certainly never dull, working as we do at the intersection where Office as a powerful and constantly evolving standard for “information work” meets the rich and rapidly evolving platform of the Macintosh. This combination entails ongoing engineering challenges, which have proven particularly intense for the release we’re building now. We have major work underway for Intel-based hardware, significant rewrites of user interface code to run in composited HIViews, and a cross-platform push to provide completely revamped and more open file formats, as a sampling of “under the hood” changes alone.
The good news relative to all this is that, while it’s taken time to grow and sign up the caliber of people we require, the group of developers we have on board now is the largest we’ve had in MacBU’s history, with a lot of fantastic people on board. Our test team has geared up with the most robust arsenal in terms of test plans and automation we’ve ever put together as well, and is at work validating deep quality as major functionality gets checked in. That said, we’re still looking to grow further, and I’d be remiss if I failed to mention that we’ve recently created new openings in both dev and test here in Redmond (and also have openings on our engineering teams in Mountain View, all of which you can review and/or respond to here.)
So, folks are downright busy and we still have a ways to go before we can share a whole lot more about new features in Office. In the meantime, we’ll try to keep the blog posts coming. Again, welcome and thanks for tuning in.
Comments
Anonymous
October 06, 2006
Ahh, Turbo Pascal. I learned that in my first uni CS course, too. I wonder if I still have my textbook from that class.Anonymous
October 06, 2006
Geoff, Man, you're giving me severe flashbacks. My name is Steve Parker, and I was one of the original "employees" (as a student) of the MCL at UCSB. We started with four Apple II machines, and then kept adding computers, knocking down walls (physically and literally) as we "grew" into the bigger Mac and PC labs. I worked very closely with Mark Ferrer as well, who I still remember as one great guy. Other names I workedc with in those days were Marcus Sandy, and Marvin and Jeff Marcus. Hopefully that will trigger a flashback for you... Very cool to see people from the "old days" out and about in the world!!! Steve ParkerAnonymous
October 06, 2006
Hey, nice to see some Gauchos in the MacBU! The MCL (now IC) is still around--I assume the name change was from people either looking confused or snickering when they heard the word "microcomputer". I'm a couple years away from graduating (comp. engineering), and am looking forward to reading more about what you do and the direction Mac Office is taking. By the way, we still have plenty of political controversy here ;-)Anonymous
October 06, 2006
The comment has been removedAnonymous
October 07, 2006
Nice introduction. These alone are pretty interesting and a good reason to RSS here. But the mention of all the HIViews work rang my "Carbon alert" bell. Actually, I've heard quite a lot about Carbon v Cocoa and how meaningless it is at times, but I'm worried the next Office is still going to be a bit Carbonic!Anonymous
October 07, 2006
Thank you for your reply. ^^Anonymous
October 10, 2006
Steve - cheers, great to hear from you. Glad I could fire off some nostalgia bulbs. Yep, all those names sound familiar. Brendan - that's too bad, I sort of enjoyed the retro antiquated quality of "The Microcomputer Lab" (rows of microcomputers, each small enough to be heaped on a single table!) Surprised to hear about ongoing political controversy, given the moderate and non-polarized political climate pervading the rest of the nation. Thanks for dropping by. KaiYin - yes, we are working on it. John - thanks; a revisit / update on the Carbon, Cocoa topic would probably make a reasonable blog post here at some point. (I see David had a recent thread <a href="http://davidweiss.blogspot.com/2006/09/mixing-carbon-and-cocoa.html">here</a> on his blog, and Rick posted on the topic a couple of years ago <a href="http://davidweiss.blogspot.com/2006/09/mixing-carbon-and-cocoa.html">here</a>.)Anonymous
October 10, 2006
It was worth a try. :)Anonymous
October 12, 2006
I was asked by my boss to investigate the possibility of customizing Mac Office much as I have done with Office XP/2003/2007 using SmartTags, SmartDocs and Standard Office extensions via the IDTExtensibility2 interface and not to mention customizations done via various Visual Studio Tools for Office (VSTO) projects. I know nothing about Mac Office so the question is: can you customize Mac Office apps, such as Excel and Word, as you would in the windows world? Also, it appears a lot of effort was put in to the enhancement of VSTO to support Office 2007 extensibility. Has there been any discussions about this regarding Mac Office 2007?Anonymous
October 13, 2006
Hey Geoff, what's "deep quality"?Anonymous
October 13, 2006
ennyp - generally no, unfortunately you can't customize Mac Office apps using those technologies from the windows/VS/.NET world. eric - a good question... We'll have more posts over time about the scale of the test effort. "Deep" here relative to the overall test space, which you could describe as an insanely large tree, with "shallow" scenarios at the top including basic everyday operations in the software, and the deeper you go the more layer of combinations you have - features A and B both being edited in manners C and D inside a document of size E with characteristics F, G and H in language I on version J of the OS with chip architecture K and 3rd party software L, M and N installed... Based on straight combinatorial math these test cases tend to explode on you in scope.Anonymous
October 15, 2006
Hi, I'm sorry, I just can't remember... how do you make a card the first one in the stack ??? LJAnonymous
October 16, 2006
The comment has been removed