Saturday, March 28, 2009

Consultants: Listen up!

I'm a mild-mannered software consultant. My day job consists of guidance, architecture, coding, automated unit testing, coffee consumption: All the fun stuff I love about software development. As if that didn't consume enough of my precious little time on earth, I have this hobby, a thing called photography. Over the past several years, it's evolved into a passion, then an obsession, and finally the potential for some fun side-work.

Up until now, I was content shooting my kids' sporting events (the baseball/soccer/volleyball parents do their share to cover my web hosting costs). Over the past two years, I [unofficially] shot two weddings (my biased opinion is that I out-shot the paid pro, but opinions are like...). Today was a big deal: an opportunity to score a real wedding shoot. Ok, maybe not "score," but at least deliver a compelling proposal.

As we're preparing our proposal, my co-photog and I found out (just a few short hours before our meeting) that the bride wants the "digital negatives." In the photography business, giving away negatives (whether film or digital) is typically taboo: once you give away the original source to an image, the new owner may cut the photog totally out of the loop. This impacts potential revenue as well as control of the photo's usage. So our knee-jerk reaction was something like No Way! But... we figured we could offer up at least some type of compromise: maybe charge a bunch for the digital files, or even agree to handing over a subset of the images but skip the book-layout tasks, saving a ton of labor.

So on we went to meet the bride and groom today, as well as the groom's dad. With a bit of trepidation.

As the bride flipped through our sample images and books, she kept revealing more and more of what she liked, didn't like, loved... along with some hidden gems: how she likes the casual, candid shots over formal stuff, how there are some family squabbles between specific people that shouldn't be photographed together...

Most importantly, we found out why she wanted the digital images: for email, desktop background, screensaver, and her digital photo frame. In fact, she despises the chore of printing photos. And until she saw our sample albums, she didn't even want to purchase any prints (now she's totally jazzed about it).

The moment we realized this, we were able to turn this into something positve: we scrawled it right on the contract: Free web-ready and desktop-ready digital images with every print ordered. The bride was happy. The groom was happy. The dad was happy. And the photog's? Score! The icing on the cake? They admitted that no other photographers interviewed would even consider parting with digital copies. Double-score!

So... time to circle back, and somehow relate this to software consulting. Between the original customer requirements (a phone call the likes of "Hey David - these folks want us to shoot their wedding!"), and initial statement of work, a new requirement popped up at the last minute. A poorly-defined requirement at that: a simple one-liner with no context. But that one-liner triggered an almost-catastrophic set of potential responses:

  • No way! (definitely would have killed the proposal)
  • Sure, but you're gonna pay through the nose! (good chance that would have killed the proposal)
  • You must not know anything about the photography business! (nice way to insult the customer's intelligence, and kill the proposal)

Do any of those responses sound similar to something you might have considered blurting out at some point in your past? C'mon, be honest...

Ok, so we avoided reacting, and instead simply mentioned this new requirement and asked her to give us a bit more information about the need for digital copies. And that's when the "why" behind the "what" surfaced. A very simple, sensible requirement. One that we could painlessly provide a solution for, as it had little impact on our workload and no significant risk to the contract's cost structure or the project itself.

In the end, we were able to deliver a proposal that directly met the customer's needs, simply because we asked questions and listened.

After all this rambling, I guess I'm just trying to remind myself (and others, if they've gotten this far) that listening and asking questions is such an important part of the requirements process. And, after reading the body language of the client, I realize it goes much deeper than that. By being able to ask the right questions, listen to the nuances and details of the responses, and then propose a sensible solution tailored for the customer, I believe this is where true business relationships are formed, and trust is established.

Were you listening???

Wednesday, March 18, 2009

MIX 09 Keynote Recap

Today's MIX 09 Keynote in Las Vegas was hosted by Scott Guthrie. As much as I had hoped to attend, my Vegas trip didn't materialize. However, I watched the live stream and, to be honest, I was blown away by the sheer number of announcements. If you followed my tweets, you probably have a good idea of all the technical goodness. Here's a consolidated summary, with links to the various downloads.

Expression Web 3
  • SuperPreview feature – view rendering across all browser types and versions. Split-screen designer, fullscreen-mode, allows comparison of “baseline” browser vew and alternative browser view side-by-side. Also “overlay” mode – stacks two browser views, to help identify differences.
  • Supports both local browsers and cloud service, to allow for rendering on browsers not installed locally (e.g. Safari for Mac)
  • Easy to compare multiple versions of IE without having each browser version installed
  • Beta available right now: http://www.microsoft.com/expression/try-it/blendpreview.aspx
ASP.NET 4.0
  • Web forms: more control over viewstate, html markup, improvements in data binding and url routing
  • Improvements to Ajax stack and jQuery support
  • Client–side templates and databinding, along with additional REST support
  • Velocity caching engine
Visual Studio 2010
  • Improved JavaScript, Ajax, jQuery scripting support, including intelliSense
  • SharePoint editing/debugging within Visual Studio IDE
  • Publishing and deployment improvements, including database deployment
  • Still a CTP - get the latest here
IIS7
  • Ten new extensions available, including secure FTP, WebDAV, app request routing
  • Grab the new extensions here.
Microsoft Web Platform Installer
  • Provides single source for all components required for Web platform installation.
  • Version 2 (beta) already includes support for just-released ASP.NET MVC 1.0.
  • Grab the latest v2 beta here.
Microsoft Web App Gallery
  • Free apps to download and use
  • Anyone can add an app to the gallery
  • Visit the gallery here.
Commerce Server 2009
  • Available now.
  • View detailed information here.
Azure Services Platform
  • FastCGI support (allows 3rd-party programming languages like php)
  • .NET full trust
  • Raw ADO.NET support
  • View details here.
Microsoft BizSpark
  • New program designed to help startup companies get up and running quickly
  • Includes software and licensing support for 3-year period
  • Includes marketing, business development opportunities, hosting partners
  • Free to qualifying startups
  • Read details here.
  • Demo performed by startup StackOverflow.com, a BizSpark member
Silverlight V3
  • GPU acceleration support (on Windows and Mac)
  • New CODEC support (h.264, aac, MPEG-4)
  • Raw bitstream API
  • Improved logging for media analytics
  • Perspective 3D
  • Bitmap / pixel API
  • Deep linking, navigation page framework (for interfacing with browser navigation)
  • ClearType support
  • Multi-touch support
  • Library caching (download and cache to local system)
  • Data binding improvements
  • Multi-tier data (support for data context updates in Silverlight pushing updates to the server)
  • Binary XML
  • Out-of-browser experience - Silverlight app runs like a desktop app, yet still within a sandbox (and still dependent only on the Silverlight runtime bits). Supported on both Windows and Mac
  • Offline awareness (with network status change events)
  • V3 download is apparently 40K less than V2 download!
  • Get the latest beta here. Warning: once you install the Beta tools, you now have a Silverlight 3-only development environment, so maybe go with a VPC...
IIS Media Services
  • New product, available today.
  • Includes live streaming (in beta, available today)
  • Edge-caching. Akamai has already announced services to support this
  • For more info and installation details, go here.
Expression Blend 3
  • Includes new SketchFlow tool offering sketching/prototyping, complete with transitions, collaboration tool (free SketchFlow player), all built into Blend.
  • Version control support
  • Xaml IntelliSense
  • Photoshop PSD import, including preservation of layers (as well as the ability to selectively toggle layers)
  • Grab the preview here.

MIX 09 Updates

I'll be publishing highlights from the MIX 09 keynote today. In the meantime, you can follow my twitter feed .