# Saturday, 11 July 2009
Remember that post by Aaron Margolis I linked to about launching a non elevated app from an elevated one? I mentioned that he'd left the managed version of his code as an exercise for the reader. Well Sasha Goldshtein has taken up that challenge and written the managed code. Not only that, he's added it to his UAC Helpers project on CodePlex, a collection of code that helps you work with UAC. Nice!


Saturday, 11 July 2009 17:22:20 (Eastern Daylight Time, UTC-04:00)  #    Comments [0]
# Thursday, 09 July 2009

We have a long running Agile project underway. Every month or so we deliver a new release, then work with the customer to decide what will be in the next release. Unlike many Agile shops, this isn't our only project - we have other small software development projects, mentoring work, and so on that take up about two thirds of the team's time, leaving one third for this project. What's more, we do this as a little fixed bid project every month, and both my bottom line and the customer are happy with the cost of each release. The key to that, of course, is accurate estimation of the effort in each iteration.

In some ways we have it easy now. The client has working code, and each month all we need to estimate are the changes and additions to that code. But how would it be if we were starting from nothing and planning to build a whole big system over the course of a year or so, for someone who wanted a fixed cost up front and a reasonably complete list of features to be delivered for that cost? Stephen Forte gave a talk recently on just that topic. Plenty of good ideas and a fun listen.


Thursday, 09 July 2009 07:38:19 (Eastern Daylight Time, UTC-04:00)  #    Comments [0]
# Tuesday, 07 July 2009

I do a lot of work in VB, though I am a C++ MVP not a VB one. This year at the MVP Summit many of the VB MVPs did short interviews with Beth Massi about how they got started and what they do in VB. Get to know some of these folks a little better. I spotted Julie Lerman, Rob Windsor, Ken Getz, Deborah Kurata, Daron Yondem, Jackie Goldstein, and even a thirteen year old! It's a mix of video interviews and text ones, and a very small time committment.


Tuesday, 07 July 2009 07:31:52 (Eastern Daylight Time, UTC-04:00)  #    Comments [0]
# Sunday, 05 July 2009

Ian McKenzie has a funny list of 20 ways to tell you're Canadian. My only quibble is that for #4 I would say cottage instead of camp. Other than that, rock on!


Sunday, 05 July 2009 19:09:17 (Eastern Daylight Time, UTC-04:00)  #    Comments [1]
# Friday, 03 July 2009

At Tech Ed this year, a whole pile of my friends (and me too) were invited to pontificate a little on fairly light weight technical topics like "what technology have you enjoyed lately?" and "how do you keep up with everything that's changing all the time?". The result is a fun series featuring luminaries inside and outside Microsoft: Scott Hanselman, Billy Hollis, me, Richard Campbell, Stephen Forte, Clemens Vasters, Tim Huckaby, Michele Leroux Bustamente, Jim Wilt, Brian Noyes, Loke Uei Tan, Matt Hessinger, Don Box, Juval Lowy, Jeffrey Palermo, and Tim Heuer. They're being uploaded one a week or so - you can get started now and enjoy more later.

Here's a direct link to mine if you need it: http://msdn.microsoft.com/en-us/dd776253.aspx


Friday, 03 July 2009 17:08:51 (Eastern Daylight Time, UTC-04:00)  #    Comments [0]
# Wednesday, 01 July 2009

So I guess I am totally having a "get off my lawn" moment here. I read, on a blog I generally enjoy reading, the following rant about "bad customer service":

  • Why am I still required to fill out my personal details (city, birth date, job title) while registering on web sites, when all they need to do is fetch that data from my LinkedIn page?
  • Why does my new Internet provider give me a new email address (which I won't use), requiring me to read that mailbox regularly for service updates? Why not send me tweets?
  • Why do I have to go to the web site of my vendor of contact lenses to re-order my monthly set of lenses? Why not enable me to send a "reorder" message through Facebook?
  • Why does the agile 2009 conference require that I upload my presentation to their site, in PDF form with maximum size of 5 MB? Why not integrate with the much more advanced SlideShare where I already have an account?
  • Why do I get offers for products that I clearly don't want or that I already own, which can be easily deduced from my reviews, ratings, and rantings on various social sites?

Prior to this bulleted list was a complaint that an ISP hadn't magically noticed that some emails weren't reaching the ranter, and didn't email about it, or didn't go figure out what @tag to use in a Tweet so that their customer would know there was a problem with some emails. I mean really, "send me a tweet"? Tweets are broadcast messages, not one-on-one communication, aren't they?

Good heaven. If I went to a random web site and on the registration page entered "Kate Gregory" (or "Barack Obama") and it trundled off to LinkedIn and filled in where I live, what I do, my birthday etc I would be majorly creeped out and want nothing to do with that web site. Maybe, just maybe, I would be ok with a button that said "go find this out on the public web" but I doubt it. I think OpenID is a better way to go, and I do appreciate that most Microsoft sites now just let me use my Live ID, but for sites with no business relationship to share what they know about me just creeps me right out. Reorder contact lenses on Facebook? What does Facebook have to do with buying stuff from completely unrelated third parties? Why would it be a good thing to put intermediaries (Facebook, Twitter etc) in all my transactions? The big excitement of Web 1.0 was that it took intermediaries out of the picture and let me interact directly with the producers of the things I wanted to buy. One of the major inconveniences of Web 2.0 is excited under-30's (sorry to generalize, a handful of over-30's are excited like this too) making me sign up for yet another account on yet another Social Networking Silver Bullet that they are going to use to manage their event/project/party/virtual team.

I disagree with the fourth bullet, too. I would much rather just be told where to upload my stuff and be done with it. I also have some empathy for folks who want to use the same way to communicate with everyone on a reasonably large list. Can you imagine the job (probably unpaid in his or her free time) of the conference organizer who says "everybody please put your slides somewhere, anywhere on the web that works for you, and send me the link, and here are links to free places you can put your slides in case you're not on SlideShare." And this organizer probably still has to run the upload-your-slides here site for everyone who doesn't have an account somewhere else. And has to accept and send not just emails about it (with or without links) but also tweets, blog posts, and comments on one speaker's YouTube channel and another speaker's CodePlex project home page, because why should they be obliged to look in more than one place for attempts to communicate? And then this poor organizer needs to know how to download from 10 or 20 different document sharing sites, and register for notifications if they're changed, because the speaker figures uploading new docs and not telling anyone will be fine, since after all the site sends notifications if they're changed.

The last bullet is hilarious. Dude, I get offers for things that I clearly don't want. The spammers can't be bothered to check my gender or what country I live in. You really think they're going to check your MySpace to see you already tried acai berry and whether it worked for you or not?

But under all that rankling and disagreeing is the germ of a really important truth. Just as David Platt likes to say "Know your Customer, for he is not you", I can see that I might not offer enough options to the millennials, and they might not offer enough options to my and my fellow post-boomers. It's an interesting culture clash considering we write software for each other, and one that's worth thinking about. If a customer service department doesn't offer service the way you want it, if the conference speaker wrangler doesn't wrangle speakers the way they want to be wrangled, if my software doesn't let you talk back to me the way you want to talk back to me and if I don't listen when you talk the way you want to, then that's a problem. Hmmm.


Wednesday, 01 July 2009 16:51:06 (Eastern Daylight Time, UTC-04:00)  #    Comments [3]
# Monday, 29 June 2009

I'm a big Ramsay's Kitchen Nightmares fan. I wildly prefer the English series (also true for The Apprentice and several other "reality" shows) because he cares more on those than on the US-edited ones. I'm also a big Steve Clayton fan. So when Steve says "It was like watching an episode of Ramsay’s Kitchen Nightmares (minus swearing). I watched the first episode start to finish…I can’t remember the last time I watched such a long video on the web" that is endorsement enough for me.

I watched it and it was indeed both entertaining and instructive. How could a big company launch a whole new initiative, commission a ton of software for their customers to use, and not have software for the back office to use to manage it all? Why does it take an outside consultant to say to one guy "how much of your time goes to this?" and to another guy "is that enough?" and then present the result to the CEO, who (no surprise) promptly authorizes some hiring? I may never launch a global initiative in Paris, New York, and London and spend a few million in each city before setting to work to make it profitable, but I'm still glad I watched the video. And as the person who sometimes asks the two questions that were never asked in the same room before, it is nice to know the demand for simple questions at the heart of the matter will never fade.


Monday, 29 June 2009 09:39:57 (Eastern Daylight Time, UTC-04:00)  #    Comments [0]
# Saturday, 27 June 2009

I sure do love using the Windows 7 taskbar. (I might have blogged a few times about it already.) I have completely internalized the habit of right-clicking on a running app (or a pinned icon for a non-running one) to open a recent document - whether that app is Word, Notepad, PowerPoint, or whatever. I right-click any Messenger conversation to change my status, and I close instances right from the taskbar preview window. I wish Outlook would give me 5 or 6 jumplist items, like New Message and New Appointment, and I really wish Visual Studio would give me some options too. I am looking forward to new releases that will harness this intuitive way of getting users closer to the files they want to open or the things they want to do.

If you want to put taskbar support into your application, and you're not really a video kind of person, perhaps an MSDN Magazine article will do the trick? Yochay and Sasha should be familiar to my readers - you know these guys know their stuff. The article covers both native and managed development, and concludes with this summary:

In this article, we have explored some features of the Windows 7 taskbar, such as application IDs, thumbnail toolbars, overlay icons, progress bars and jump lists. The Windows 7 taskbar provides a clean, sleek launch surface that strongly benefits users. Integrating into this surface will be a primary goal for any application developer for Windows 7.
Using the native Win32 APIs or the managed Windows API Code Pack provides you with a differentiating opportunity to light up your applications on Windows 7. Bear in mind that the taskbar is the first thing users see after logging on to Windows, and you'll want your application to be pinned to their taskbar.

I completely agree. Give it a read.


Saturday, 27 June 2009 08:05:20 (Eastern Daylight Time, UTC-04:00)  #    Comments [0]