Last month, we released the new Zune HD device along with the Zune 4.0 suite of software and services. Smart DJ is one of the big new features for this year’s Zune lineup, and it also happens to be one of the most rewarding features I have ever worked on at Microsoft. Too often in large software organizations, different groups are isolated from each other, which leads to the customer’s needs or desires being lost along the way.
With Smart DJ, we knew we wanted to provide an experience that lets people sit back and enjoy tracks and artsits that sound great together. What began in a meeting in early 2009 fostered a collaboration across groups that ultimately delivered a compelling experience, despite organizational boundaries and disjoint schedules. So, how did we get there?
Today’s Smart DJ feature actually began as a few distinct efforts. I work on the services team, and our strengths include large-scale data processing, domain expertise with music, and really knowing about our customer. We knew we could drive interesting listening experiences with some of our new technology investments. The other side of the team was the group responsible for the Zune PC Client software, and they also know a lot about our users. They have a lot of expertise with flashy user experiences, and we also knew that if we could use the user’s machine to help drive computations, we could distribute the overall load in the system.
It turned out we both were approaching similar experiences with different viewpoints and different code names. On the service side, we need to support a variety of clients. But in on the client side, they can finely tune the feature to their experience and provide a rich user interface to go along with it. Earlier this year, our teams conferenced in a big room together, brainstorming and trying to figure out how to align our priorities. We began with mutual respect and a common goal: create something compelling our users would love that helps them discover new music, enjoy the music they already have, and connects them with their music as fast as possible.
What really struck me about this collaboration is how well it worked in the end. We had schedules that were not aligned, and each team had their own sets of prioritized features. There was a fair amount of give and take, which is to be expected. But this time, it just felt different to me. We all really wanted to provide the best experience possible.
Once we had the algorithms, the transport, and the client all working together, it was incredibly rewarding to let Smart DJ be our musical guide. We were making improvements along the way until we shipped the code, and without revealing too much about it, you can expect to see even more improvements as time goes on. Smart DJ gets better with age.
I was really excited to hear what people had to say about our new experience. We try our software out internally before releasing to the public, and at a company like Microsoft, there are plenty of intelligent people out there happy to share their opinions. We did the best we could to satisfy our internal users, but overall the comments were extremely positive.
The comments are rolling into my inbox, and I must say it’s very rewarding to read how much our users like Smart DJ. We had the right team, the right attitude, and a shared goal to create something compelling for our users. For the software engineer in me, that is what this game is all about.Posted: October 2nd, 2009 | Tags: engineering, smart dj, zune | No Comments »