Dog Food, Anyone?
By Jonathan Goodyear
Last month I told you about the new Model-View-Controller (MVC) Framework that Microsoft is cooking up as an alternative to Web Forms for ASP.NET development. As is evident, Microsoft is releasing new technologies at a torrid pace, and is putting on a pretty good marketing show through conferences, commercials, and other means to try to convince us to use them. Those of us that like to stay on the bleeding edge have little trouble accepting and adopting the gospel of the mother ship.
But some of you are not so quick to jump on the dance floor with every new Microsoft technology that comes your way. This may be because of circumstance, caution, or downright skepticism. Many large enterprises want to see a new technology vetted through usage by others (a service pack or two doesn t hurt, either). It s generally a good idea to wait for the initial excitement to wear off a bit before proceeding, just in case there are a few warts that need to be addressed.
A vendor of a new technology (Microsoft, in this case) can help expedite adoption by using it themselves. In the software industry, this is a practice known as eating your own dog food ( dogfooding for short). If corporate decision-makers see Microsoft successfully implementing a technology they are selling, it brings them one step closer to adopting it themselves. After all, why should we adopt a new technology if Microsoft isn t doing it themselves? That question isn t so cut and dry.
Unfortunately, Microsoft sometimes gets themselves into trouble by not dogfooding at times when we think they should. A recent example is the new Zune 2.0 client software (http://www.zune.net). As a media application with a dynamic user interface, on the surface it seems like the perfect candidate for Windows Presentation Foundation (WPF). The final product certainly looks the part. However, WPF was not used. Instead, a customized variant of the Media Center UI Framework and Media Center Markup Language (MCML) the presentation markup language used for third-party enhancements to Windows Media Center was the technology implemented.
At first blush, it might appear that Microsoft lacked confidence in WPF. Indeed, many in the blogosphere (yet another term I struggle to adopt) have indicated as much. Before casting judgment, though, you should take into consideration the multiple factors that go into the technology decision-making process for any software company. One of these is timing. Even though WPF was released a year ago, the design cycle for Microsoft often takes place 18 to 24 months (or more) before a software application ships. In the case of the new Zune software, that would mean that Microsoft would have been taking on another risk factor by using early bits for a technology that wasn t quite finished. It would also have tied them to WPF s release schedule, which may not have been ideal.
Another factor that could have played into the decision is the amount of functionality that already exists in the Media Center UI Framework that may have needed to be re-created in WPF for the Zune application. I m sure that time-to-market was an important factor for the Zune team, as it competes with Apple s iTunes. Another factor that probably didn t play into the Zune sofware decision, but is important nonetheless, is how much history an application has and how much backward compatibility it needs to support. Usually the bigger and more established a product is, the slower it is able to move its core technology from one platform to the next.
At the end of the day, there are a lot of important cost-benefit decisions that must be made early on for any software project from any software company (Microsoft included). These decisions are definitely not made on the basis of popularity or geek appeal. If you re wondering whether Microsoft truly believes in WPF, then look no further than Expression Design, Expression Blend, and Expression Encoder, which are all WPF-based tools. More software applications based on WPF (and other new Microsoft technologies) are certainly in development, as well.
One thing I will say is that Microsoft does a fantastic job of dogfooding new operating systems (e.g., Vista), as well as new versions of Office and Visual Studio. Many people at Microsoft begin to use all three of those pieces of software early in their beta stages. It s much easier to dogfood those technologies early, though, because they don t have a direct impact on customers which removes a large barrier to assuming the risk.
So don t be too quick to judge Microsoft for what appears to be a slow adoption of their new technologies. The large time arc for software applications the size of which they build causes a time window between when one of their new technologies is released and when you begin to see large-scale dogfooding. Silverlight, anyone? If you do happen to be working for a company that creates new technology, I would highly suggest that you dogfood as early in the process as possible, as it establishes customer confidence in what you are selling.
Jonathan Goodyear is president of ASPSOFT (http://www.aspsoft.com), an Internet consulting firm based in Orlando, FL. Jonathan is Microsoft Regional Director for Florida, an ASP.NET MVP, a Microsoft Certified Solution Developer (MCSD), and co-author of ASP.NET 2.0 MVP Hacks (Wrox). Jonathan also is a contributing editor for asp.netPRO. E-mail him at mailto:[email protected] or through his angryCoder eZine at http://www.angryCoder.com.