Q&A: challenges of developing Office:Mac

Another one from the open question thread:

What are the main challenges with working on a new version of Office? Rewriting legacy code? Integrating changes made by the Win Office team? Having a limited number of engineers to implement changes?

Those are all certainly on the list of challenges that my team faces, although it's definitely not a complete list.

Word, Excel, and PowerPoint are all 20 years old, so there's plenty of old code in there. Some of the Word code is so old that we discovered a child living in there. Rewriting and refactoring legacy code is something that we do in every release, and we love it when we end up with a net reduction in the number of lines of code.

Compatibility with Office for Windows is, of course, important to us. There are places where we share code with them, such as the code for the file formats. Integrating changes from Windows Office impacts us. For example, in Office 2008, a lot of our shared code changed with the introduction of the new XML-based file formats. We've got a great relationship with our counterparts in WinOffice, and they have some development practices which were implemented with the sole intent of making sharing code with us easier. Cross-platform development isn't trivial, but we're able to work with our counterparts to make it better.

Currently, MacBU is somewhere on the order of 220 employees. (That's all-inclusive: developers, testers, program managers, technical writers, user experience, marketing, etc.) For the number of apps that we produce, and the complexity of those apps, we do a lot with our 220 people. I've often heard the suggestion that we're Microsoft so we could just throw more people (read: more money) at the solution -- I wrote a blog post about this a few years ago called the Microsoft fallacy about this. The numbers are no longer accurate (both MacBU and Microsoft have grown in the intervening years), but the basic idea still holds: money doesn't buy everything.

We've got a big codebase. There's some highly specialised stuff going on in there -- spreadsheet development isn't for the faint-of-heart. And, of course, Mac developers don't grow on trees. A couple of weeks ago, I noticed a blog post from the guys over at Rogue Amoeba that mentions that they've had a senior Cocoa UI developer position open for awhile 'cause they haven't found someone "quite right just yet". I knew exactly what they meant. Getting in the right people is hard. We do hire fresh college grads and train them in our codebase and how to be a good Mac developer, but you can't take one of those fresh grads and throw them deep into highly-complex code and expect any good to come of it.

Aside from finding great Mac developers, you missed out on several other of the challenges in developing Office:Mac. One of the biggest ones is changes to the platform, the operating system, and the development environment that impact our work. After all, the switch from PowerPC to Intel and the switch from the very mature CodeWarrior to the less mature Xcode was also a huge engineering challenge, and it came in the middle of our development cycle. A change on that scale doesn't happen every release, of course, but managing the changes from one version of the OS to the next is also a challenge.

Another challenge lies in our goal of being the best productivity software available on the platform. Such a goal is a moving target, and there are many directions that we could take as we try to attain and retain that goal. Many of the directions are mutually exclusive. Setting that strategy is a challenge, and it's an ongoing one that can change on little notice based on external factors.

Life in MacBU isn't easy. There's plenty of easier jobs out there. If I haven't frightened you off, we've currently got a couple of open developer positions. As we wrap up the next version of Office:Mac (which will come out in time for your holiday shopping pleasure in 2010) and start the work on the next version, I'm sure that you'll see some more open positions here. You can search on Microsoft Careers for "Mac Office" in the product listing to see what we've got.