As many of you know, I love the desktop and have been very vocal against web development over the last couple years. There was a time when I said, “I hate the web” and “I will not do any more web development”. I have changed my tune slightly to, “I will NOT do any more webforms work”. I’ve come to the realization that webforms (for the most part) is what turned me off to doing web development. The last couple webforms projects I worked on involved lots of user controls created dynamically at run-time, so I was definitely in webforms page lifecycle hell.
Most of the past 2 years has been spent working exclusively on desktop applications. As an old-school VB Classic and Delphi developer, this is always where I’ve felt most at home. My projects recently have either been WPF or WinForms, although the WinForms work has slowed way down. I continue to do WPF and love every freakin’ second of it.
A week or so before the Ann Arbor Give Camp in July, I started doing some maintenance / bug fixing on a pretty cool Silverlight-based dashboard application for a client in Chicago. I’ve dabbled in Silverlight before, but this was my first real experience with a larger, production application. While Silverlight isn’t exactly web, it isn’t exactly desktop either. Right off the bat, I jumped in an replaced one of the main screens with a better design and then spent a bunch of time refactoring the WCF service calls to increase performance of the application. Because of my work on that project, my client asked if I’d be willing to spend 3 weeks (which quickly changed to 4 weeks) in Chicago working with a team to go from “whiteboard to working prototype” for one of his clients. When he first mentioned it I was a bit apprehensive, but once he explained how all my expenses would be picked up, I said, “hell yea!”
While I can’t go into details on the project itself, I will say it’s all Silverlight and it will again be a dashboard-type application. The really cool thing is that my client is a very “out of the box” thinker. He won’t accept statements like, “because it’s how we’ve always done it” and he forces people to consider new ways of doing things. If you suggest (which I did NOT by the way) that information should be displayed in a grid with navigation buttons, he will force you to open your mind and really think about other ways to organize and display information. I’m working very closely with him, a great UX / designer, an information architect and two representatives from the end client. It’s been an interesting experience so far because I am the farthest thing from a creative person, so a lot of what we talk about (and put on the whiteboard) scares the hell out of me.
We started the prototype using Sketchflow. Sketchflow is kinda cool, but I think it makes it too easy to say, “ooh, look, it works. Let’s ship it.” I think for early prototypes, I still prefer Balsamiq Mockups. Anyway, while the IA continues to use Sketchflow to mock things up, I tend to flip between Blend and Visual Studio a lot, only because I can’t handle the code editor that’s inside Blend 3. The workflow between us all has been pretty smooth, with only a few bumps along the way.
I was in Chicago for 3 days last week (before my crazy-ass trip to Richmond) and honestly, I was pretty amazed by what we produced in a very short period of time. I’m now sitting on the train (well, I was when I originally wrote this post – now I’m sitting in my hotel room), heading to my second week working in Chicago and I’m really looking forward to diving right back in. A lot of my friends know that I can get pretty insecure about my dev skills, but I’m not allowing myself the luxury of saying, “I can’t” or “I don’t know how to do that”. I was brought in to produce results and by God, that’s what I’m gonna do. The fact is, I have access to a metric butt-load of talent on twitter, my IM list and my phone. If I get stuck on a Silverlight issue, it’ll only be for a short time.
The toughest part about this project is being away from my family. I’ve never traveled as much as I have this year, and I have NEVER worked onsite for an extended period like this. Every night my family and I fire up our web cams and chat for 20-30 minutes before the kids go to bed. It’s tough on all of us, but the short-term pain will be worth the long-term gain.