A Function That Forces

Far Side - Midvale School for the GiftedAt Microsoft, there’s this passive-aggressive cultural thing called a “forcing function,” which, to put it crudely, is an engineering way for us to control the behavior of others. The idea is that you set up something to happen, like a meeting or an event, that will “force” a person or group to do something that you want them to do.

For example, if someone won’t answer your email, you can set up a meeting on their calendar. Since Microsoft is a meeting-oriented culture (even though we all hate them), a ‘softie will be very reticent to decline your meeting request. So, they have a choice – they can attend your meeting so that they can answer your question in person or they can answer your email and get that time back in their lives. This kind of forcing function can take larger forms as well. I can’t say that our execs make the decision like this (since they don’t talk to me : ), but it is the case that signing up a large number of Microsoft employees to host and speak at important industry events does have the effect of making us get together to ensure that our technologies and our descriptions of those technologies holds together (well, holds together better than they would otherwise : ).

Unfortunately, this way of thinking has become so much a part of me that I’ve started to use it on my family (which they very much do not like). Worse, I use it on myself.

For example, I have been holding back on half a dozen or more blog posts until I have the software set up on my newly minted web site to handle blog posts in a modern way, namely via Windows Live Writer. In other words, I was using the pressure inherent in the build up of blogging topics to motivate me to build the support I wanted into sellsbrothers.com to have a secure blogging endpoint for WLW. Before I moved all my content into a database, I could just pull up FrontPage/Expression Web and type into static HTML. Now that everything is data-driven, however, the content for my posts are just rows in a database. As much as I love SQL Server Management Studio, it doesn’t yet have HTML editing support that I consider adequate. Further, getting images into my database was very definitely a programming task not handled by existing tools that I was familiar with.

So, this is the first post using my new WLW support and I’m damn proud of it. It was work that I did with Kent Sharkey, a close friend of mine that most resembles Eeyore in temperament and facial expressions, and that just made it all the more fun!

Anyway, I’m happy with the results of my forcing function and I’ll post the code and all the details ASAP, but I just wanted to apologize for my relative silence on this blog and that things should get better RSN. XXOO.

P.S. I’m loving Windows Live Writer 11!

Comment Feed 10 comments on this post


That would explain the tail...

I was going more for a Joe Bltsplk vibe there.

Wednesday, Oct 27, 2010, 2:10 PM


Is it that evident to the other person that your requested meeting is because they didn't answer your email? How long to you wait for the email response before deciding to meet? Do you try to email one more time? What if they reply to the email.. should they request you to cancel the meeting or wait for you? I am asking all these questions because I don't know your work place etiquette. "your work place" could be your own group or the whole company.

Plus people have different expectations.

Thursday, Oct 28, 2010, 12:31 PM

Chris Sells:

Adbu, believe me, I only do the meeting thing as a last resort. I don't like meetings, either!

Thursday, Oct 28, 2010, 12:40 PM


Presumably you used a completed version of the code you described so well at: http://msdn.microsoft.com/en-us/magazine/ff872392.aspx?

I started to use that, have quite a few hours into completing it. Spliced in a reasonable post schema, but have been unable so far to get WLW to post to it more than sporadically.

Probably if I invest enough time in learning the intricacies of Atom I can get it to work, but would really rather find a source for a completed version.

I use BlogEngine.net for the occasional blog post where WLW works just fine. I need this to add content to a completely different mvc based site.


Saturday, Jan 15, 2011, 1:27 PM

Chris Sells:

I haven't finished the odata-based code yet although it was damn close!

Saturday, Jan 15, 2011, 3:42 PM


OK, thanks for replying.

I think we will splice in MetaWebLog. How did you do it?

Monday, Jan 17, 2011, 8:07 AM

Chris Sells:

I'm still a fan of AtomPub so to make sure that I understood the protocol, I implemented it all from scratch. That's how I integrate WLW with my site now. Works a treat. I'm happy to share the implementation if there's interest.

Monday, Jan 17, 2011, 10:26 AM


Well, Orly decided a couple of days ago to do the same thing and he has most of it working. Still some problem with image attachments.

So yes, if there is a convenient way to share the implementation we would appreciate it.

kal at ecbridge dot com

Friday, Jan 21, 2011, 10:59 PM

Hugh Brown:

"a ‘softie will be very reticent to decline your meeting request"

Reticence is an unwillingness to speak. Reluctance, which is what you mean, is an unwillingness to act.

Monday, May 2, 2011, 5:15 AM

Chris Sells:

is declining a meeting request an action or an utterance?

Monday, May 2, 2011, 3:26 PM

comment on this post

HTML tags will be escaped.

Powered By ASP.NET

Hosted by SecureWebs