Getting Photoshop CS5 to 64-bit on Macintosh

The Photoshop team recently posted a video called “Behind the Splash Screen,” above, which chronicles some of the history behind the development of Photoshop CS5.

Back in June of 2010, I sat down and started writing out my experience as a lead on the “Carbon to Cocoa” effort in Photoshop CS5. I thought I’d share that experience now. Below is what came out:

The Beginning

Shortly after we shipped Photoshop CS3 on April 16, 2007 we were on our path to deliver both a Macintosh and Windows version of Photoshop CS4 in 64-bit.
It was apparent to our team that 64-bit support for Photoshop CS4 on the Mac was going to be challenging. We decided we needed to spread the work over the course of CS4 and CS5 development.

This was disappointing to our users. Photoshop and Lightroom, started out on the Macintosh platform prior to being ported to the Windows platform.

Laying The Groundwork

A lot of architectural work went on during the course of CS4 to get us closer to our goal of a 64-bit version on the Macintosh and due to the scope of work, we re-focused our efforts.

One of the first things we did was port our plug-in framework to 64bit. We learned a lot from this experience and leveraged it as we started working on the core of Photoshop.

Carbon to Cocoa or C2C

Our Carbon to Cocoa (or C2C) team was geographically dispersed and we engaged in agile-like development methodologies to move quickly and effectively through each of the tasks and communicated often.

Despite meeting or exceeding our development goals there were many milestones still ahead.

Cocoa/64-bit

Around October of 2009, we had a Cocoa version of Photoshop up and running but it was still 32-bit. We were so close to being 64-bit. We set the challenge to get a 64-bit version of Photoshop up and running by the end of the week and we met our goal. That Friday, we demoed Photoshop running in 64 bit and allocating tons of RAM. I even posted a screenshot to share my excitement to the world over Twitter.

The team spent the holidays working hard on reconstructing the walls around the core of Photoshop. Our prerelease testers had builds in hand and were pleased with what they saw. The app wasn’t without its hiccups, but the team remained focused on fixes and getting fresh builds out to prerelease.

Going For It

I was feeling confident and was one of the first people to suggest we go for it: let’s just do a Cocoa release for both 32-bit and 64-bit. We had to nail 64-bit for our customers, so it didn’t matter if the 32-bit binary was Carbon or Cocoa. From my standpoint, going all Cocoa was a way to create a tight focus on what was important. When we returned from the holiday break, our team integrated our changes into our main branch and the entire team was set loose on the 64-bit application, adding final polish, tuning features and performance, and fixing the remaining issues.

Beta Testing: Calling in Reinforcements

At this point, we knew we had made radical changes to the foundations of the product and wanted to get broader exposure to various users and broader hardware configurations. We ran a larger pre-release program that involved users who belonged to the National Association of Photoshop Professionals. The program quickly added thousands of users that helped us polish and identify the remaining issues that needed to be addressed before we needed to GM in early March.

This exposure to new types of users and hardware was invaluable to raising the quality level to a very high bar. We leveraged Photoshop’s Crash Reporter to identify crashing issues and fix them, slowly working down the number of crash buckets and the number of crashes they contained. The process and results were dramatic. We were reducing the number of crashing issues by more than half, build over build.

Satisfaction ratings from prerelease were the highest we’d ever seen thanks in part to the level of quality we achieved and the ‘wow’ factor of some of the features we had like Content Aware Fill, Puppet Warp, and HDR Pro.

Reaching the Finish Line

Photoshop CS5 was ultimately released April 30th, 2010 and was received very warmly by users. While the overall level of quality of Photoshop CS5 was high we found a few more things to fine-tune. The team kept the pedal to floor and delivered a dot release (12.0.1) on June 30th for the critical issues that had been found. The team continued to leverage Crash Reporter, and direct interaction with our users, to suss out a few more items for a dot release (12.0.2).

I can’t tell you how extremely proud I am of our team at what we accomplished with CS5.

More importantly, I’m extremely proud and grateful to all the wonderful, passionate users of Photoshop who helped us in the beta testing process.

Cheers,

Jeffrey Tranberry
Adobe Systems, Product Manager, Customer Advocacy – Digital Imaging

Additional Resources

5 Responses to Getting Photoshop CS5 to 64-bit on Macintosh

  1. For the work I do, Photoshop CS5 is one of the most significant releases ever — Content-Aware Fill and Healing; improved HDR, Lens Correction, and Refine Edges; Puppet Warp; ACR 6; and a host of amazing JDI features that I use every day. Outstanding effort by all! You guys and gals rock!

  2. Carl says:

    Jeff has gone above and beyond to help users out on the Adobe forums — doing first line customer support — as an Adobe engineer: one of the guys who *makes* Photoshop. It was great to see some of the faces behind the product and to hear you share your stories of the effort to bring CS5 for the Mac to market.

  3. Jeff has been a great help to the Adobe community, I thank Adobe for having such wonderful staff that meet our needs. I can imagine it must be a real stressful task for them in caring for people. But I just want to say thank you.

  4. Poulg says:

    Thanks for sharing. Its cool to get a bit of inside :)

    Love to see more…

Leave a Reply

Your email address will not be published. Required fields are marked *


eight − 5 =

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>