April 5, 2006
@ 06:11 PM

Recently, someone commented in a meeting that we were playing "schedule chicken". I hadn't heard the term before so I looked it up. That's where I found the excellent post Schedule Chicken by Jim Carson which is excerpted below

Schedule Chicken
Given the above setup, it's difficult, if not impossible to accurately estimate project delivery dates. Even when you're brutally honest, spelling out
all the things that must occur for you to meet a date, the dependencies get lost in the footnotes in the appendices at the end of the book. Management "pulls in the date" to something ridiculous that they can sell to their bosses. Their bosses do the same. And so on.

Since everyone is using largely fictitious dates as part of a mass delusion, you would think no one expects to make them, no one will make them, no harm. This is sorta true. Each technical lead assumes that the other leads are lying even more about how long it will take them to deliver.

The ruse continues past insignificant milestones until just before something is actually due. The more seasoned managers will delay admitting to the obvious for as long as humanly possible, waiting for someone else (more junior) to "turn" first. The one who does is the "chicken," and is subsequently eviscerated by their boss and made a public example of all the incompetentcies in the universe.

After this "chicken" has been identified, and summarily punished, all the other teams update their schedules with slipped dates that are slightly less than the "chicken's." The process may repeat itself a few times. Key point: You don't want to slip first. Or last.

The question I have for my readers is simple, what do you do once you realize you're a player in a game of schedule chicken?


 

April 5, 2006
@ 06:01 PM

From the New York Times article Software Out There by John Markoff we get choice quotes like

The new economics of software development poses a fresh challenge to the dominant players in the industry. In 1995, when Microsoft realized that the Netscape Internet browser created a threat to its Windows operating system business, it responded by introducing its own free browser, Internet Explorer. By doing so, Microsoft, which already held a monopoly on desktop software, blunted Netscape's momentum.

Last November, Microsoft introduced a Web services portal called Windows Live and Office Live.
...
Mr. Ozzie, who used the Firefox browser (an open-source rival to Internet Explorer) during his demonstration, said, "I'm pretty pumped up with the potential for R.S.S. to be the DNA for wiring the Web."

He was referring to Really Simple Syndication, an increasingly popular, free standard used for Internet publishing. Mr. Ozzie's statement was remarkable for a chief technical officer whose company has just spent years and hundreds of millions of dollars investing in a proprietary alternative referred to as .Net.

I've heard that it's hard to take newspapers seriously because when they write about things you are knowledgeable about they get it wrong. John Markoff does an excellent job of proving that old saw right.


 

April 4, 2006
@ 07:02 PM

Eric Gunnerson has a blog post entitled Mom and Apple Pie where he writes

What do following words all have in common:

  • Passion
  • Innovation
  • Synergy
  • Agility

They're what I call "Mom and Apple Pie" words, for two reasons.

First, they all have a positive connotation. Who wouldn't want to be more agile, more innovative? Who is going to argue against having a more synergistic approach? Shouldn't everybody have passion?

Combine that with the fact that these words are used in a content-free environment, and you get a nice-sounding platitude that means nothing, but makes it sound like you are for changing things.

You don't think we should have more apple pie? What's wrong with you? Why do you hate your mother?

People who want to make an organization more agile don't say, "We're going to improve agility". They say, "we're going to get rid of <x>, we're going to change <y>, we're going to release every <x> months". People who want to improve synergy say, "Our users are trying to do <x>, and it's way too hard. What do I need to do to help you fix this?"

I have a blog post in my head about the top 3 things I'd like to see from Microsoft executives. One of the three things I'd like to see our execs do addresses one of the words mentioned by Eric Gunnerson; agility.

I am currently part of the Plaforms & Services Division which encompasses both Windows and MSN Windows Live. There've been two reorganizations that have affected this division in the past eight months. Both times, the claim has been that these reorganizations are intended to boost our 'agility'. The first reorg involved adding a new layer of vice presidents between David Cole who ran MSN at the time and Steve Ballmer. This meant that at the time I had four people with the title 'Vice President' between me and our CEO [Brian Arbogast->Blake Irving->David Cole->Kevin Johnson]. How adding more management made us more agile was a mystery to me. Our most recent reorganization involved splitting the teams that build the Windows kernel from the team that builds the Windows user interface and the teams that build the Windows Live services from the teams that build the user interfaces. In practical terms it means that when I work on features like Photo E-Mail and Social Networking, the folks I work with not only don't share the same boss as me but our management chains don't meet until it gets all the way up to Kevin Johnson and Jim Allchin (i.e. 3 vice presidents up the hierarchy later). I don't see how this makes us more agile but maybe I'm just dumb.

At Microsoft, agility has joined innovation and passion as words that now have negative connotations to me. The longer I am at Microsoft, the more words I end up excising from my vocabulary.

I agree with Eric that what I'd like to see is less buzzwords and more concrete talk about how things are being improved for our users. I'm still waiting for the mail from Kevin Johnson which contains an FAQ explaining why adding layers of management and splitting up teams makes us more agile. I hope I'm not waiting in vain.


 

Categories: Life in the B0rg Cube

I stopped paying attention to the syndication wars a couple of months ago. I barely have time to stay on top of all the stuff I have to worry about as part of my day job let alone keeping track of the pointlessness that is the Atom vs. RSS debate. Unfortunately, every once in a while something happens that forces me to pay attention because I'm also the project lead for RSS Bandit.

One cool thing about XML syndication formats like RSS and Atom is that they are easily extensible. This means that anyone can come up with a new extension to the RSS/Atom formats which adds a new feature but is ignored by feed readers that don't understand the extension. Some of my favorite extensions are slash:comments which provides a count of the number of comments in a feed and wfw:commentRss which provides the URL to the feed for the comments to a blog post in the feed. One of my work items for the next version of RSS Bandit is to make it easier for people to 'watch' the comments for a blog post they are interested in if it supports these extensions. That way I can get get a notification everytime some comment thread I am interested in gets new posts directly from my aggregator instead of using other tools like CoComment.

A few days ago Sam Ruby posted an entry entitled Rogers Switches! where he mentioned that he now redirects all requests for his RSS feeds to his Atom feed. This meant that in RSS Bandit I now no longer see the comment count for the blog posts in Sam's feed nor can I view the comments to his posts directly within my aggregator. Sam and I had the following exchange in his blog comments when I discovered the ramifications of his change

I was trying to figure out if I’d introduced a bug in RSS Bandit to make your comment count and inline comments disappear. Instead, it seems you have made your feed less useful as part of the fallout of yet another iteration of the eternal pissing match which is the XML syndication wars.

sigh

Posted by Dare Obasanjo at 20:25

Dare, is this is your way of saying that you don’t intend to support the Feed Thread Extension?  I’d think that you would be on the watch for it.

Posted by Sam Ruby at 22:08

I looked at the draft of the Feed Thread Extension specification Sam linked to and it seems like a reinvention of the functionality provided by the slash:comments, wfw:commentRss and annotate:reference extensions. Great, not only do we now have to deal with the an increase in the number of competing XML syndication formats due to the Atom process ...By the way, have you seen the Atom 0.3 vs. Atom 1.0 debate? I told you so... we now also have to deal with duplicates of all the popular RSS extensions as well? Give me a break!

That said, you can expect support for these new extensions in the next version of RSS Bandit. At the end of the day, what matters is building useful software for our users regardless of how many petty annoyances are thrown in our way on the road there.


 

I mentioned recently that my new kick is storage platforms for Internet-scale services. Sometimes it's hard to describe the problems that large scale services have with modern relational databases. Thankfully, I now have the post I want a big, virtual database by Greg Linden to crib a simple 1 sentence description of the problem and solution. Greg writes

In my previous story about Amazon, I talked about a problem with an Oracle database.

You know, eight years later, I still don't see what I really want from a database. Hot standbys and replication remain the state of the art.

What I want is a robust, high performance virtual relational database that runs transparently over a cluster, nodes dropping in an out of service at will, read-write replication and data migration all done automatically.

I want to be able to install a database on a server cloud and use it like it was all running on one machine.

It's interesting how your database problems change when you're thinking about hundreds of transactions a second over terabytes of data belonging to hundreds of millions of users.You might also be interested in Greg's post on Google's BigTable.

PS: If building large scale services relied on by hundreds of millions of people to communicate with their friends and family sounds interesting to you, we're still hiring for test, developer and PM positions.
 

Categories: Web Development

In his post Exploring Live Clipboard Jon Udell posts a screencast he made about LiveClipboard. He writes

I've been experimenting with microformats since before they were called that, and I'm completely jazzed about Live Clipboard. In this screencast I'll walk you through examples of Live Clipboard in use, show how the hCalendar payload is wrapped, grab hCalendar data from Upcoming and Eventful, convert it to iCalendar format for insertion into a calendar program, inject it natively into Live Clipboard, and look at Upcoming and Eventful APIs side-by-side.

All this leads up to a question: How can I copy an event from one of these services and paste it into another? My conclusion is that adopting Live Clipboard and microformats will be necessary but not sufficient. We'll also need a way to agree that, for example, this venue is the same as that venue. At the end, I float an idea about how we might work toward such agreements.

The problem that Jon Udell describes is a classic problem when dealing with mapping data from different domains. I posted about this a few months ago in my post Metadata Quality and Mapping Between Domain Languages where I wrote

The problem Stefano has pointed out is that just being able to say that two items are semantically identical (i.e. an artist field in dataset A is the same as the 'band name' field in dataset B) doesn't mean you won't have to do some syntactic mapping as well (i.e. alter artist names of the form "ArtistName, The" to "The ArtistName") if you want an accurate mapping.

This is the big problem with data mapping. In Jon's example, the location is called Colonial Theater in Upcoming and Colonial Theater (New Hampshire) in Eventful. In Eventful it has a street address while in Upcoming only the street name is provided. Little differences like these are what makes data mapping a hard problem. Jon's solution is for the community to come up with global identifiers for venues as tags (e.g. Colonial_Theater_NH_03431) instead of waiting for technologists to come up with a solution. That's good advice because there really isn't a good technological solution for this problem. Even RDF/Semantic Web junkies like Danny Ayers in posts like Live clipboard and identifying things start with assumptions like every venue has a unique identifier which is it's URI. Of course this ignores the fact that coming up with a global, unique identification scheme for the Web is the problem in the first case. The problem with Jon's approach is the same one that is pointed out in almost every critique of folksonomies, people won't use the same tags for the same concept. Jon might useColonial_Theater_NH_03431 while I use Colonial_Theater_95_Maine_Street_NH_03431 which leaves us with the same problem of inconsistent identifiers being used for the same venue. 

I assume that for the near future we continue seeing custom code being written to make data integration across domains work. Unfortunately, no developments on the horizon look promising in making this problem go away.

PS: Ray Ozzie has a post on some of the recent developments in the world of Live Clipboard in his post Wiring Progress, check it out.


 

Categories: Technology | Web Development

One of the features I've been working on is soon going to see the light of day. In the post A picture is worth a thousand words, Vlada Breiburg talks about an upcoming feature in the Windows Live Mail Desktop Beta (formerly Outlook Express) which we worked on together. She writes

We are (re)introducing Photo E-mail—a super duper easy way to share photos (for those of you who use MSN Premium client this will be very familiar).


As soon as you insert a few pictures they show up in the message with an easy way to add some (funny) captions. We’ve also decided to give you a few fun and productive tools to make your pictures truly yours:

  • you’ll be able to add some borders
  • change pictures to black and white
  • change background color
  • and even auto-correct.

When designing this we debated a lot of what we should offer and decided to start with these tools until we hear more user feedback. We don’t ever want to be a full photo editing tool, but we do want to make things easier for our customers (Thank you Heather for making the tough calls; Heather was the original PM on the feature). So let us know what you think!

On sending these pictures, the photos will be uploaded to our servers and smaller versions will be placed inside the message (Thank you Dare, Richard, and Jura from the storage team on making this happen!). This will make sure that your friends and family don’t get huge messages that fill out their inboxes...

If your friends want to view bigger versions of the photos, all they have to do is hit “Play slideshow”. This is where are our friends from the Spaces team come in. They’ve created an awesome viewer for your friends and family to enjoy your pictures (Thank you DeEtte, Greg, and James).

I worked with both Heather (the original PM for the feature) and Vlada on making the Photo E-mail feature come together. It was different working on a feature for one of our desktop applications instead of a web-based property. As usual it was fun to work on a feature that I not only would use but could recommend to friends and family as well. Working on consumer software definitely rocks in this regard.

Working on the services for this feature clarified some of the thinking I've been doing around photo APIs for MSN Windows Live Spaces. I can't wait until we are ready to put some new stuff up on the Windows Live Developer Center. Exciting times indeed.


 

Categories: Windows Live

March 28, 2006
@ 06:56 AM

Today I read two contradictory posts about Microsoft employees and passion. The first post I found via Mini-Microsoft. It is entitled Microsoft, Your Slip Is Showing (Passion) and is excerpted below

And this partly explains the passion of the comments you will read on this post at Mini-Microsoft.

Skewering the Microsoft leadership. Calling for heads to roll. Frustration. Disgust. Dark humor. Cynicism. Optimism. Pessimism. Rage. Love. Hate.

Another reason -- big reason -- why the Microsoft commenters are so passionate: They give a damn. Whatever else you may think about their comments, their Give-A-Damn meter is registering in the Green. Sure, it may seem like I've got it ass backwards and they're pegged out in the dreaded Red zone.

I'm sure a few are indeed red-zoning, but what I see mostly are folks who want to to be the best. They want their team to be the best. They are proud people. They are winners. They hate the thought of losing -- in any endeavor... to any person or thing.

The people who work for Microsoft are not only some of the best minds in the computer industry, they give a damn about what they do. That is a good thing.

I could be critical of this post but Rory Blyth beat me to the punch in his [unrelated] yet quite relevant post entitled Ten Minutes of Sincerity - Enthusiasthma where he writes

Enthusiasthma

The contemporary blight of communication, at least at Microsoft, is passion. You can’t walk three feet on the Redmond campus without hearing someone talk about passion. If you interview for a job at Microsoft, you will get drilled about your passion. During the course of your job, you will attend meetings in which people constantly refer to passion. You will receive emails about passion.

Again, like communication, passion is a good thing. It’s good to talk. It’s good to be excited. But, it’s gotten to the point that the passion has become a sort of disease. I call it "Enthusiasthma"
...
This notion of constantly being excited is exhausting. It’s not healthy. It isn’t normal. It’s downright stupid and counter-productive.

People at the company are so terrified now of not appearing to show passion that they’ll give you Oscar-winning speeches about what they had for lunch and why it was so great for customers. If you end a sentence with fewer than three exclamation points, offset by several spaces to isolate the excitement and drive it home, then you clearly aren’t really behind whatever it is that you’re talking about.
...
As long as employees feel pressured to constantly overflow with passion, they’re going to be terrified to speak when it’s time to address what isn’t going so well. I’ve watched projects continue, and not with any great success, fueled mainly by passion. In those cases, yeah, people are being passionate, but they’re putting all this passion into things that aren’t really helping. They’ve been fooled by their own passion.

And this is happening company-wide. It’s like open honesty and skepticism are getting brushed aside for passion. It’s spreading thanks to that other often celebrated social disease, the meme. It’s everywhere. And the word is used so often that it’s losing its meaning.

At Microsoft, one of the other words you’ll hear left and right is “innovation.” I’ve already said what I want to say about this awful word, but regardless of how overused I think the word “innovation” is, I still understand its importance.

So here’s something to think about: As long as people are running around with all this passion, having left their critical thinking and skepticism in the late 90’s, and while they’re driving these sometimes winning/sometimes losing projects with all this passion, they’re handicapping their ability to innovate. Innovation is only good as long as what’s being created is actually useful.

We have this situation, then, where one company ideal, innovation, is getting squashed by another company ideal, which is passion.

The problem is that all of this reeks of extremism and zealotry, which never lead to real success. The way you win with extremism is by fooling yourself into believing that everything you think is right, and then bludgeoning your enemies with your abundant resources until they give. That’s not really winning.

Rory says a lot of what I would have said in criticism of the passion post I found via Mini-Microsoft and does it with a lot less bitterness than I could ever muster. If you ask me, Microsoft could do with a lot less of its so-called passionate employees.


 

Categories: Life in the B0rg Cube

Alex Russell has a blog post entitled ajaxWrong where he writes

Apparently a new XUL app called “ajaxWrite” was just launched. I think this thing is going to be my poster child for what’s wrong with single-renderer markup languages from now on. It might be a fine app, I haven’t used it long enough to have a strong opinion, but its marketing is truly reprehensible. I’m sure someone assured Michael Robertson that they couldn’t launch a web-ish app without tacking the word “ajax” in the title and the folks with sense were shouted down. A pity.

This thing is appropriating the necessarily amorphous terminology of “Ajax” for an implementation that is directly at odds with why Ajax is an important technology. A XUL app being billed as “Ajax” is just as laughable as a Flex or XAML app suddenly growing the same moniker. That it’s Mozilla’s walled-garden language doesn’t really excuse the gaffe.

I find this quite hilarious. I would have never thought of sprinkling technology buzzwords in the name of my product even though my product didn't use said technology. I guess that's why I'm not in marketing.


 

Thanks to numerous reports from RSS Bandit users it has come to my attention that the Atom feeds provided by Google's Blogger are invalid and in many cases aren't even well-formed XML. Please fix this. I'm tired of dealing with threads like Blogspot feeds - XML Failure in our support forums.

If you'd like an example of what is wrong with your feeds. Click on http://feedvalidator.org/check?url=http://nothing-more.blogspot.com/atom.xml which shows the results of validating the feed for Derek Denny-Brown's blog. Below is the list of errors returned

This feed does not validate.

  • line 4, column 0: This feed uses an obsolete namespace [help]

    <feed xmlns="http://purl.org/atom/ns#" version="0.3" xml:lang="en-US">
  • line 4, column 0: Unexpected version attribute on feed element [help]

    <feed xmlns="http://purl.org/atom/ns#" version="0.3" xml:lang="en-US">
  • line 7, column 0: type attribute must be "text", "html", or "xhtml" [help]

    <title mode="escaped" type="text/html">only this, and nothing more</title>
  • line 7, column 0: Unexpected mode attribute on title element (7 occurrences) [help]

    <title mode="escaped" type="text/html">only this, and nothing more</title>
  • line 8, column 0: Undefined feed element: tagline [help]

    <tagline mode="escaped" type="text/html">irregular eccentic eclecticisms, di ...
  • line 11, column 0: Undefined feed element: modified [help]

    <modified>2006-03-27T00:01:47Z</modified>
  • line 12, column 0: Unexpected url attribute on generator element [help]

    <generator url="http://www.blogger.com/" version="5.15">Blogger</generator>
  • line 13, column 0: Undefined feed element: info [help]

    <info mode="xml" type="text/html">
  • line 4, column 0: Missing feed element: updated [help]

    <feed xmlns="http://purl.org/atom/ns#" version="0.3" xml:lang="en-US">
  • line 22, column 0: Undefined entry element: issued (6 occurrences) [help]

    <issued>2006-03-26T15:25:00-08:00</issued>
  • line 23, column 0: Undefined entry element: modified (6 occurrences) [help]

    <modified>2006-03-27T00:01:47Z</modified>
  • line 24, column 0: Undefined entry element: created (6 occurrences) [help]

    <created>2006-03-27T00:01:47Z</created>
  • line 27, column 0: type attribute must be "text", "html", or "xhtml" (6 occurrences) [help]

    <title mode="escaped" type="text/html">You call that Democracy?</title>
  • line 36, column 0: Missing entry element: updated (5 occurrences) [help]

    </entry>
  • line 153, column 156: XML parsing error: <unknown>:153:156: unbound prefix [help]

    ... S-X's niceties. If I knew people on the <st1:place st="on">Vista</st1:pl ...
                                                 ^

In addition, this feed has issues that may cause problems for some users. We recommend fixing these issues.

  • line 5, column 134: service.post is not a registered link relationship (2 occurrences) [help]

    ... hing more" type="application/atom+xml"/>
                                                 ^
  • line 7, column 66: text/html type used for a document fragment [help]

    <title mode="escaped" type="text/html">only this, and nothing more</title>
                                                                      ^
  • line 4, column 0: Missing atom:link with rel="self" [help]

    <feed xmlns="http://purl.org/atom/ns#" version="0.3" xml:lang="en-US">
  • line 18, column 150: service.edit is not a registered link relationship (6 occurrences) [help]

    ... emocracy?" type="application/atom+xml"/>
                                                 ^
  • line 27, column 63: text/html type used for a document fragment (6 occurrences) [help]

    <title mode="escaped" type="text/html">You call that Democracy?</title>
                                                                   ^
  • line 29, column 0: application/xhtml+xml type used for a document fragment (6 occurrences) [help]

    <div xmlns="http://www.w3.org/1999/xhtml">

Thanks for listening.