I'm a bit slower on my MEDC blog than my peers. I'm still using my trusty Nikon F3 while my peers have moved on to some newfangled thing called the "digital camera". I had to wait for a week for the film to come back before I could spend 3 evenings scanning it. For the life of me, I can't understand what's so great about digital cameras.
One of the Las Vegas A/V crew spotted the Nikon, probably after hearing the signature clang phwaap of the mirror and shutter during otherwise quiet talks, and after exchanging the secret "film guys with old cameras" handshake, we talked for 20 minutes about our favorite old gear. It was great. I gave him a card with www.zintel.net scribbled on the back of it.
I've been to Vegas 3 times. The first was during my trip to California to visit my dad. I was about 14 and living in rural Nova Scotia. I remember walking up and down the Strip all night, jaw and eyes wide open, gazing at everything. I didn't know it at the time, but that was probably the point where I was committed to leaving Nova Scotia in search of bright flashing lights. Ironic that I ended up in cloudy Washington State, and the Strip, for all its grandeur, has pretty much been flattened and replaced with stuff with way more flashing bright lights.
My next trip was about 10 years later. I was pretty offended by the whole experience that time. I found Vegas to be a spiritually hollow, shallow, uncaring and impersonal place. And all that money, which really should have been collected in taxes to help the poor, was just being wasted. The place was a crude attack on my socially enlightened Canadian sensibility. In retrospect, I think the real problem was that I was nearly broke, and broke people just shouldn't go to Las Vegas. The real currency of Vegas is, well, real currency.
This was a great trip. A few of my Canadian friends would explain my new found admiration for Las Vegas in terms of the corrupting influence that America on me. But I can't believe it myself.
Everything is Vegas is grand.
I like to make sport with my friend and colleague Larry Morris, who runs the Windows CE group, that this was The .NET Compact Framework show. I don't work on operating systems anymore, so I can abstract literally thousands of person-years of work into a single box called "Operating System" and make fun of folks who don't think all day and night about language runtimes.
To put this in perspective, consider that my team has been working on NET CF for over five years now. It took us a little over three years to release Version 1. This was much longer than we had hoped (and estimated, and committed to our management), and was a long time to go without any customer feedback. Ironically, we're building a tool (an "app", in Larry's mind) to build apps, yet we had very little time and energy left to actually build non-trivial apps. So we guessed what would be important to apps writers, and we did "OK". But nothing works as well as real customer feedback.
Immediately after you release a version 1 product, where your success depends on the successful adoption of an ecosystem of partners (and some competitors), there is an initial burst of activity from early adopters. These are brave folks who just love new stuff, or folks who want to get ahead of the pack. Early adopters always suffer a bit of pain and the send the product team into short term crisis trying to help. The initial burst of feedback and the challenge of fixing problems and making partners successful is pretty exciting, and the product team and customers learn a lot quickly. The product usually evolves quickly. Early adopters kept us busy for about 8 months after we released. Many of these folks were at MEDC, and we are grateful. You can't get started if you can't get started.
After that wave, there is a disturbing relatively quiet time where each new win requires convincing more conservative decision makers to take a risk. Without a critical mass of already successful cases to point to, this is a lot of work and proceeds slowly. You pretty much sell yourself, your team and your product seemingly without effect for what feels like forever. We are also grateful for every win during this phase, and frankly, things go a little easier for them than the early adopters.
Finally, assuming you on track to win, adoption seems to spike with no apparent catalyst. Previously conservative decision makers become concerned that they will be left behind and see enough wins that they can manage risk appropriately. For us, this phase started around fall of last year and continues to this day.
Concurrent with great adoption, we are preparing to complete, and were talking about Version 2, our "customer feedback release". We pretty much know we got this one right since we basically did built (most of) what customers using the product asked us to build. People were eager to hear about it, because they asked for it.
While in Vegas, I read Hotel Babylon. This is the perfect Vegas read, in no small way to let yourself feel morally superior to the ultra rich and famous and in part to excuse any of your own bad behavior. But it also gave me some insight into the logistical complexity of the luxury hotel industry. It made me appreciate the bowl of fresh blueberries, strawberries, raspberries and pineapple that I enjoyed in the middle of the desert quite a bit more and gave me some appreciation for the effort that people put into making the stay comfortable.
I would like to share two moments that I experienced there. I worked on the original Windows CE product in 1994. We dreamed of all the cool mobile scenarios and cool devices we would be enabling. But we developed on big, slow prototype boards with small dim screens. When I finally saw the first real device, it was big and slow and had a small dim screen. I decided I didn't have the patience to wait any Moore and moved to work on the PC. But the iMate JAM was pretty close to the device I was dreaming about, and I was holding a real one in Las Vegas. I was in awe of Microsoft's stamina to see things to success.
Second, I asked one of our MVPs, Alex Feinman, who gave a great talk on COM interop, if he was happy with our quality. His response, "it's nice to use stuff that works", made me very happy. We don't talk about quality in public too much because frankly, you should just expect it. But we do work very hard to make sure that the platform is solid, correct, compatible and as bug free as possible. This process starts early in the cycle with good written design and peer review, ongoing automated correctness , stress, performance and application compatibility testing for all features, beta and early adopter feedback and a post-mortem after each release and after a serious bug slips through the process. It's a lot of work, and it makes us happy to hear that you can trust the product.
COM interop frightened me from the beginning. COM is an evolutionary technology, which means that there is no definitive specification to code and test against. The team really wanted to provide advanced features such as ActiveX hosting, but I dragged my feet. I wanted us to take smaller steps and be sure the technology was solid before expanding the scope. Well, things don't always go as planned ...
Alex demonstrated hosting a Macromedia Flash player as a Windows Forms control. I have to admit, it was cool. Damn cool.
Bill was there.
But I think that Bill was overshadowed by the .NET Compact Framework demos.
My team missed the Blue Man group. I heard that it was very good. We went to Penn and Teller instead, which was also good.
Mike M got us tickets. Mike seemed to know his way around Vegas pretty good, and was a great host. Mike is on one of the folks who you don't see much, but plays a critical role in making your experience productive by writing the code that makes the remote debugger work. Tricky stuff too. Mike got the good room.
After Pen and Teller, we decided to walk from the Rio back to the Mandalay Bay. We could see the Mandalay in the distance so we just started walking toward it. After about a half hour of walking, we could still see the Mandalay Bay, but it wasn't getting any bigger, or closer. We got fooled by the fact that everything in Vegas is grand. It turned out that the walk was long but great. There's lots of bright flashing lights to look at on the Strip.
An unexpected bonus for me was the fountain outside of the Bellagio. This thing was just mesmerizing. We went back the next night, playing a cool game we invented called drink a beer, watch the fountain, go in for a beer, back out to watch the fountain. At least I think we invented it. The fountain cycles at 10 minute intervals. It's a fun game.
Chris Muench, another MVP, showed how to write a D3D Mobile game in managed code. I gave the team a goal to make sure that C# was as good a choice as C++ for writing DX games on devices. Since Chris has the coolest game around, I'm assuming they have have been successful.
Chris Tacke shared his experience getting OpenNETCF bootstrapped. Chris refused to even step into the photo enabling light for even a moment. It took me half an hour on Photoshop just to get it this good.
Scott gave a talk on NET CF memory management. Scott explained all the work we do on your behalf so you don't have to worry about memory.
Roman gave a great talk on .NET Compact Framework performance engineering. He explained that if you aren't worrying about memory, you just aren't doing it. Roman got the best score for a new speaker. We knew Roman was a great engineer but we were pleasantly surprised to learn that he is a great motivational speaker too.
I love this one. We just get faster, and faster, and faster. And we're not done yet.
Last but far from least, Mark and David gave a great talking on debugging applications. This was the last talk of the show, and they packed the room.
Thanks for helping us make NET CF great.
This posting is provided "AS IS" with no warranties, and confers no rights.