Entries from Dec 2006 ↓

Clarifying my Microsoft Developer Division Rant

Contents


I Ranted and Eric Rebutted

The day before yesterday I wrote a long winded and rambling rant about how Microsoft’s release cycle and process for creating developer tools. I commented on how I believe it is making them fall behind and causing many formerly loyal Microsoft developers to look at open source solutions on non-Windows platforms. I referenced a post that Microsoft’s Eric Lippert wrote over 2.5 years ago titled Top Minds Are Working On It[1]. In retrospect it might have appeared I was being critical of Eric but that wasn’t my intention, and if that’s how I came across I apologize. Instead I was referencing Eric’s comments as symptomatic of the Microsoft culture at large. And yesterday I awoke to find that Eric had issued a rebuttal.

While I Respect the People at Microsoft…

But before I address his comments let me talk about Eric and all the others I’ve met from Microsoft. Eric is actually a brilliant guy, and very likeable. I’ve met Eric face-to-face and it’s obvious he’s much smarter than me. But then I could say that about most of those I’ve met from Microsoft; they don’t hire dummies. As a rule I’ve been impressed with every Microsoft employee I’ve met. They are super bright and AFAICT they do really want to do "Good Things(tm)".

…They Become Detached

But group dynamics being what they are, when you get a group of super-bright people together they become competitive, hone their debate skills, and learn to be strong advocates for whatever their own positions. And they can become detached from the outside world, much like politicians in high office. Politicians are also typically super bright, and most enter office wanting to do Good Things(tm), but once "on the inside" they loose touch with the concerns of their constituents. So I am not condemning Eric and his Microsoft colleagues, I am merely commenting on the culture that results and collectively channels them.

Eric Unconsciously Supports my Thesis!

So I started yesterday’s post saying I’d been planning to blog on the topic for a while but the reality was I still didn’t know how best to explain my concerns. But for better or for worse I did write a rambling essay yesterday, but ironically Eric’s comments made my points far better than I! My central thesis was that Microsoft isn’t meeting developer’s needs because of their processes and infrequent releases and consequently open-source alternatives are meeting developer’s needs instead. Eric’s both debated my examples and pointed out they now plan to address some issues I referenced. But not only did Eric not address my central thesis, he ironically supported it given his rebuttal’s choice of focus! In my post I wrote the following:

"Microsoft’s culture is to argue semantics when reality doesn’t match their world view"

And Eric’s comments proceeded to do exactly that! In my post from 2.5 years ago[1] I called for Microsoft to address things that PHP, Ruby, and Python are addressing today, which Eric rebutted at the time. In yesterday’s rebuttal Eric referenced his earlier comments stating (emphasis mine):

"Second, my ‘esoteric’ reasons for not implementing a scripty version of VB on the .NET platform were hardly esoteric then and are hardly esoteric now. They are (1) fracturing the language further causes confusion amongst customers and is massively expensive for little gain, …"

Dismissing the Proposal, Not Solving the Problem

Now I’ll freely admit Eric is far more qualified to evaluate my suggestion on technical merit, but that wasn’t the point of my 2.5 year old post. Customers with needs a company’s not addressing will often propose solutions they believe will address their needs, yet often their suggestions aren’t workable for whatever reason. People who specialize in addressing customer needs know that rather than dismiss suggestions as unworkable it’s far better to determine the customer’s actual needs and implement a workable solution instead. And often, many other customers have those same needs. So Eric dismissed my proposed solution but didn’t address my unresolved needs that prompted the proposal. I don’t attribute this failing to Eric, I attribute it to Microsoft’s current culture.

Not More Power; Transitionality!

Eric then went on to say:

"(2) we can do things to make VB.NET more powerful without fracturing the language,…"

Ironically, I didn’t ask for a more powerful VB.NET; I asked for one that was easier to start using and one that developers could then easily transition to more powerful usage. Though they believed they were providing an easier to use Visual Basic 2005, they addressed the language but not how people develop applications. Though they made strides with the Express Edition, my biggest concern was with the complexity of the development environment and the language. I suggested an interpretive environment with a transitional language design that allowed new developers to start easily yet be able to effortlessly grow their expertise with use. What I envisioned was something like Boo, but I wanted it 2.5 years ago with a simple interpretive environment, and I wanted it from Microsoft so that it could possibly generate a large and immediate and user base with a thriving community and significant peer support.

Today’s Potential Didn’t Address Yesterday’s Deficiency

Eric continued with the following…:

"(3) Microsoft makes scripting languages like Iron Python"

…but omitted the fact that a robust Iron Python was just a gleam in Jim Hugunin’s eye 2.5 years ago and is still not ready for prime time. Further, Microsoft’s approach is to host IronPython in Visual Studio which does nothing to bypass the complexity of Visual Studio!

Nor Does an Orphan Address Yesterday’s Deficiency

Eric then said:

"…and JScript .NET, use the right tool for the right job."

To which I did a double take wondering if he were really serious! JScript .NET is such the orphan that I can’t even believe he suggested it! The JScript .NET newsgroup has less than a screen full of messages, JScript .NET hasn’t been updated since 2003, and nobody’s even written about JScript .NET in years! So could Eric really have been serious when he suggested JScript .NET? Well, assuming he was, then:

  • JScript .NET does NOT have an easy-to-use interpretive environment, and
  • JScript .NET is a complex language; NOT simple-to-use, and
  • Again, JScript .NET has NO user-base!

And a Potential isn’t a Solution

Moving on Eric said:

"The .NET framework is already amenable to the development of scripting languages."

So why do we still not have a viable scripting solution for .NET supported from Microsoft more than half a decade after the .NET Framework’s first release?

Yes, there’s Powershell, but…

Okay, that’s not quite true. Eric didn’t mention it but in the spirit of honest debate, there is Microsoft’s PowerShell. But while I will freely admit PowerShell is really nice, PowerShell:

  1. Was only just released so doesn’t address the past 2.5 years,
  2. Doesn’t have a development environment,
  3. Can’t be used for web development,
  4. Doesn’t have a compiler for creating components for use in other .NET languages.
  5. Doesn’t have transitionality allowing it to scale up for much more complex projects as the developer’s experience grows.

A Correct yet Irrelevant Point

Eric then makes a point about "scripting languages" vs. "dynamic languages" (emphasis mine):

"Third, I want to make a distinction between scripting languages (languages intended to script things) and dynamic languages (languages which admit a type system which cannot be deeply analyzed at compile time.) Scripting languages are often dynamic languages, however it is entirely possible to use dynamic languages for tasks other than scripting. "

Okay… So Eric’s points are very technically valid, but they are totally irrelevant! Frankly I wasn’t asking for a language that was "intended to script things," I was proposing a language (and IDE) that would be:

  1. Productive,
  2. Easy to start using, and
  3. Scalable as one’s skills evolve.

Call it "scripting", call it a "dynamic language", call it whatever; it’s irrelevant. What is relevant is for it to be productive, easy, and scalable. Microsoft could choose to get there however they will, bit like arguing the semantics of "Car" vs. "SUV" with someone who just needs transportation, Eric’s distinctions were simply irrelevant to the needs. Totally unrelated, I ran across this joke yesterday. What could be more ironic?

Interest Doesn’t Necessarily Change Process

Eric finishes his prior point with:

"The VS team is VERY interested in understanding how to make the platform more amenable to dynamic languages."

Great! But are they going to actually engage people who are not .NET developers in the design of said dynamic languages and their respective development environments and then incorporate their feedback? Or is the VS Team just going to plug another dynamic language into Visual Studio? If the latter they will do so ignoring that Visual Studio users already have the language(s) they need and that there are at least an order of magnitude more people for whom Visual Studio is too overwhelming.

A Solution Offered; Wrong Product, Years from Now

A couple other comments Eric made were:

"C# 3.0 will have the "one line auto-implemented properties" feature you requested for VB. Enough people asked for it, we put it in. I do not know if VB will be doing the same. You’re welcome. "

and

"Current C# 3.0 features move in the direction of dynamic languages without actually making the language dynamic (lambdas, improved generic method type inference, extension methods, implicitly typed locals, anonymous tuple types). All of these however are implemented so as to keep the language statically analyzable. We are considering features for C# 4.0 which would make the language more dynamic without losing that important statically analyzable core."

That’s well and good, but it doesn’t address VB.NET, and it also makes my own point that Microsoft’s release cycles are too far apart! There are badly needed enhancements and they need to get them to developers more often than once every three years. C# 3.0 is still a way’s out, people need something today, and I personally wonder if I’ll even care about programming by the time C# 4.0 is released. Hell, I hope to have made my fortune and be retired by then! :-) But seriously, C# is a professional developer’s language and adding features to a professional developer’s language wasn’t even close to what I was proposing.

Too Little, Too Late: Acknowledged

In the last paragraph, Eric finally gives tacit acknowledgement of the concerns I raised in yesterdays post:

"Now, maybe these features aren’t what you want, or are too little too late, or the release schedule is too long for your liking, or whatever. That’s unfortunate."

Exactly. The release cycle needs to be compressed by an order of magnitude as it has been at the competition. More on this in a bit.

Studying Users Isn’t Feeling their Pain

Eric then signs off with:

"However I take exception to the claim that we do not study what real users are doing and try to provide tools that do what they want. We do that every day."

With this Eric either misunderstood my point, or more likely I didn’t state my point in a manner that was understandable. Whichever the case, let me clarify. I know the VS Team works hard to study real user’s needs every day. But what I also know is that the people who make the decisions about what gets released and when have considerations that are far different from the needs of developers. And it is human nature for one to place solving one’s own pains ahead of solving the pains of others as people simple can’t fully comprehend pains they don’t experience.

Trade-offs that Shortchange Developers

Eric let’s be concrete; if solving a customer problem today will cause the VS team a problem tomorrow they won’t do it. For example if the VS Team plans to rearchitect something next version they won’t provide an interface that developers need in this version if doing so will make that rearchitecture difficult. Some would say this is good product engineering to which I would actually agree, but it is nonetheless a trade-off that keeps developers from getting what they need today.

Experiencing Pain Empowers Real Solutions

So, if you’ll reread my post from yesterday you’ll see that I didn’t say "Microsoft doesn’t listen to customers"; I know damn well they do. On the contrary, I said that Microsoft’s Developer Division "Don’t solve real world problems." And the reason you don’t is because you don’t experience the pain that those real world problems cause. By comparison most developers contributing to open-source projects are doing so to solve pains which they themselves have, and that is why they are addressing developer needs much faster than Microsoft’s Developer Division.

Yes it is a Paradox…

An observant person would say that I’ve present a rather intractible dichotomy for Microsoft’s Developer Division; i.e. they need to use the developer tools they build to solve real world problems yet they also need to to develop those tools ten times faster! Now I’m sure these comment will cause the blood of those in Microsoft’s Developer Division to boil thinking I believe it’s possible they do their work ten times faster and do real world projects. But I was not advocating that; I’m fully aware of the myth of the "man-month" in software development projects.

…But Solve it You Must, Or Else

What I was pointing out, however, is if Microsoft’s Developer Division maintains its status quo they will slip farther behind and the loss of developers to other platforms will accelerate. And since developers, developers, developers have always been Microsoft’s life blood it is critical they address this issue. Every developer they loose to Linux or the Mac doubly weakens Windows. Microsoft must address this issue if they are to maintain the same level of relevancy during the next twenty years that they’ve had for the past twenty years. And most of what I’m suggesting isn’t complex, and it isn’t new. They probably have most of what they need already written and used internally. They just need to rethink what they are offering.

Change, or Be Changed

So to wrap up this second long-winded essay:

Microsoft’s Developer Division needs to implement drastic changes sooner than later. If they do not, outside forces will soon impose drastic changes upon them and it’s certain they will find those imposed changes to be far more painful. Or as the mechanic on the old Fram Oil Filter commercial used to say "Pay me now, or pay me later."

What if I’m Not Wrong?

P.S. If you’re from Microsoft’s Developer Division and choose to dismiss my concerns, just ask yourself this: What’s the downside for you if I’m right?

  1. Eric Lippert’s post was in response to my post entitled A Modest Proposal: VBScript.NET, aka "Helping Mort use .NET".

 

THESE GUYS MUST DIE!!!

Blog Submitter Pro (THESE GUYS MUST DIE!)

I just noticed a Google ad out of the corner of my eye for Blog Submitter Pro (URL is http://www.marketersos.com/ but I will give them no Page Rank!) I googled it and found this review of Blog Submitter Pro by Vincent Rich! I was floored. Someone actually sells a product that is causing us bloggers so many problems with spam, and then somebody else writes a review promoting it!

THESE GUYS MUST DIE!!!

P.S. But one good thing about this is it should make it easier for services like Akismet to reverse-engineer the software to see how better to stop it.

P.P.S. Obviously, if anyone from the FBI is reading this, I’m speaking metaphorically when I say they must die. ;-) You must know that all legitimate bloggers want to see spammers rot in hell…

Can Microsoft’s Developer Division Compete Moving Forward?

I’ve been planning to blog about this for some time but just haven’t gotten to it. Well here goes…


Contents

Note: The day after I posted this I decided to add headings to make the argument easier to follow.


Is Microsoft’s Approach Failing?

I believe Microsoft legacy processes simply cannot react fast enough to the innovation happening in the open source arena on the language and web framework front. Microsoft’s developer division typically offers three-year version cycles where they first architect Visual Studio and related technologies in a vacuum. In recent years they’ve even thrown out alphas and betas to the Microsoft faithful to get feedback which, and thankfully they’ve used a lot of that feedback. But that approach just isn’t working in the market anymore. When the release cycles of
scripting languages frameworks like Ruby On Rails and Django and CMS platforms such as Drupal are sometimes as little as a few months, it’s really hard to wait around for the next version of Visual Studio.

After Ten Years; Too Little, Too Late?

It would be different if Microsoft’s developer technologies provided at least 95 percentile of what’s needed by work-a-day developers on a daily basis, but they don’t. Case in point is we still don’t have the ability to do complete URL Rewriting for ASP.NET on IIS even though Apache has had mod_rewrite for years. Looking back, how many years of massively duplicated developer effort in the field did it take befor Microsoft finally provided a login module and a method of managing site-wide templates?!? (i.e. “MasterPages”) Oh, about a decade from when they first released Active Server Pages.

Providing Solutions Frequently Just Not a Priority

It’s not just that Microsoft’s developer division takes too long to offer new solutions to recurring needs; it is that they place such low priority on providing those solutions. Three year development cycles testify to that fact, especially when you consider it takes Microsoft many releases to address fundamental needs. The guys on the product management teams at Microsoft are really smart people, but they often can’t see how much trouble they cause people in the field by their decisions. They see the world of creating Visual Studio, but they don’t see the world of using Visual Studio to develop software.

Core “Real World” Problems Not Addressed

What’s more, Microsoft architects its developer products in a vacuum; they don’t use them to solve “real world” problems. Sure, they may use them internally for developing productsbut when does the average developer’s project look like product development at Microsoft? They often create excellent software but software that either doesn’t solve real world problems or does so in a totally over-engineered manner. While running Xtras I watched many a developer launch a 3rd party component business because they had identified a need while working on a real world project. However, once they saw small success as a vendor they started developing, designing, and even envisioning new products in a vacuum. And often those products either didn’t address real world needs or did so in a really unnatural manner.

Microsoft is a much worse example of this. Their saving grace thus far has been market share and financial resources to brute force their products into the market, and many of the faithful won’t even look at other s offerings to understand why some of Microsoft’s offerings so miss the mark. I know, until recently I was one of them.

Values “Sugar”-Free Over Productivity

And Microsoft’s product managers often dismiss feature requests that would make development a LOT easier as simply being “syntactic sugar. For example, one such dismissed feature request I made years ago was for simplified property references in VB.NET. I wanted a syntax that would allow a developer to implement a single-line syntax for specifying properties you didn’t need anything special, something like:

1. Property Foo Into _Foo

Instead of nine lines of:

1. Private _Foo
2. Property Foo
3.    Get
4.       Return _Foo
5.    End Get
6.    Set(ByVal value)
7.       _Foo= value
8.    End Set
9. End Property

That would have reduced the number of lines of VB.NET code by probably half an order of magnitude. But they just weren’t interested in it because it “bloated the language and otherwise had no value” (I am paraphrasing from memory.)

Focuses on Details, NOT the Big Picture

Even more, I advocated an advanced scripting language that would be a lot like today’s “in-vogue” scripting languages. I called my proposal VBScript.NET. But then my suggestions were dismissed for esoteric reasons and I was told that Top Minds Are Working On It! (Well, evidently not, or so many developers wouldn’t be moving to PHP, Ruby, and Python.) Microsoft’s culture is to argue semantics when reality doesn’t match their world view, and they are blissfully willing to ignore the pain that continues to exist.

Revolutionary Paths Are Often Dead-Ends

What’s more, probably because of its financial resources and a hubris that comes from being the industry leader, Microsoft has a bad habit of creating huge revolutionary jumps instead of small evolutionary steps. Rather than always creating lots of little independent layers of loosely coupled components, each with it’s own independent functionality, documentation, and rationale for existence, Microsoft often builds monolithically complex solutions where the individual components are highly coupled, not documented, hidden beneath the covers, and frankly with functionality that has not been fleshed out well had it had to be developed to stand on its own. This creates bloated and fragile systems that are often extremely hard to debug and for which there is no passionate community of supporters surrounding it.

ASP.NET: Wrong Medium, Wrong Model

ASP.NET is a perfect example of many of these problems. Rather than study the web and realize it was a violently different platform than desktop apps, Microsoft chose to shoehorn an event model onto the web and use a page-oriented implementation. Not only did they get the medium wrong, they also got the model wrong. And this decision resulted in an outrageously complex pipeline processing model with tons of code that is hard to debug or even understand, and that requires lots of high end developers to figure it out and repeatedly explain to newbies what they need to do just be able to do some of the simplest things, things that are brain-dead easy in PHP for example.
But hundreds of thousands of Microsoft-centric developers just trudged along and accepted it as the next best thing because Microsoft said so. And for a short time, I was one of those true believers.

ASP.NET: Exceptional Engineering, Answers Wrong Questions

Now, however, even many Microsoft developers are starting to see ASP.NET for what it really is: An exceptionally engineering product that answers the Wrong Questions. Former ASP.NET developers are moving to the platforms I mentioned earlier (Ruby on Rails, Django, and Drupal) simply because those platforms offered developers the syntactic sugar they crave, and because the developers of those platforms focused on solving pain because the pain they were solving was their own.

Open-Source: Answering the Right Questions, Rapidly

Open-Source development by nature results in lots of little independent layers, and there are communities that sprouted or are sprouting to support each of those independent layers. Each of those layers has had an opportunity to be fleshed out, and by comparison it shows. How can something like Open-Source PHP on Apache take on mighty Microsoft’s ASP.NET and IIS, and win? Because they answer the right questions, and they did so in far less than a decade.

Is there any hope for Microsoft’s Developer Division?

Which brings me back to the original question:


Can Microsoft’s Developer Division Compete Moving Forward?

Frankly, though I really like the .NET Framework and hope I’m wrong, I’m completely skeptical.

 

Open Source Web Design Templates

The open source ethos is growing fast, and it has finally made its way to website template designs: www.oswd.org. No longer does one have to go to Template Monster or the likes and pay $40-$100 for a cool web design![1].

This guy ROCKS! His name is Francis J. Skettino and he’s from Philadelphia, Pennsylvania. Do him and the rest of the web developer world a favor and blog about him to give him lots of Google-juice (be sure to put a title in your links, something like “title=’Open Source (Free) Website Design Templates’.”)

  1. But I’ll bet the designers who upload templates get lots of consulting business enhancing those templates!

The Weborati

Just who are the “Weborati[1] you ask? And where does the term come from? Well, to answer the latter question, It’s a neologism that just made up; please don’t shoot me for it. :)

As for the former, they are people who either created – starting with Tim Berners-Lee – who have passionately shepherded the web technologies over the many years since Tim first created ENQUIRE as a side project while at CERN.
In this group I would include the original and even the active members of the W3C Technical Architecture Group (TAG) as well as the active and passionate RESTafarians which of course includes Roy T Fielding, the father of REST.

I coined the term so I could refer to them collectively. But I want to make it clear I mean no condescension; I have great respect and appreciate for these people. I just thought a catchy name would make them more memorable and easier for me to refer to them. :-)

Footnotes

  1. …as an obvious pun on the various “-oratisTechnorati, Glitterati, Cognoscenti… (are there more?)

About me and Xtras, Inc.

Logo for Xtras.Net
Logo for VBxtras
Logo for Xtras, Inc.

A little history about me. In March 1994 I launched Xtras, Inc. as VBxtras, Inc. VBxtras was a catalog/mail-order reseller of 3rd party components and tools for developers using Visual Basic versions 3.0 through 6.0. I later changed our brand’s name to "Xtras.Net" as an Internet reseller of 3rd party components and tools for .NET developers, especially VB.NET and C#. During the time I ran Xtras it was recognized in 1999 as #123 on the Inc 500 which is Inc. Magazine’s annual list of the 500 fastest-growing private companies in the USA. That is a recognition for which I am still very proud.

NOTE: I wrote this blog post because I want a URL I can reference in the future whenever I want to mention Xtras and provide some background about it but without constantly repeating myself! I may also update this post from time to time if I realize I need to add and/or clarify something about what I wrote.

Conventional Wisdom, Assumptions, and Pot Roast

Pot Roast

Conventional wisdom is filled with assumptions. One of the things that makes conventional wisdom right most of the time is that those assumptions are usually valid. But sometimes they are not. One of my favorite little anecdotes that illustrates this is the tale of the pot roast:

A newly-wed husband noticed that every time his wife cooked a pot roast she would first cut an inch off either end before putting it in the oven. When he asked why, she said “Because that’s how you are supposed to cook pot roast.” Unsatisfied with her answer he pushed until she admitted that she learned it from her mother.

Waiting until a visit with his wife’s mother, the husband asked “Your daughter tells me you taught her to cook pot roast by first cutting an inch off each end?” to which the mother replied “Well of course, that’s how pot roast is cooked.” But the husband was not to be deterred, and after pressing his mother-in-law on the subject she finally admitted that she’d learned if from *her* mother.

This meant the husband had to ask the wife’s grandmother. When he finally got his chance he asked: “Your granddaughter’s mother told me you taught her to cut an inch off each end of a pot roast before cooking. She swore it was a requirement, but I’m dying to know why? Is there any sane reason to throw away two inches of perfectly good meat in order to cook a pot roast?!?”

Laughing, the grandmother said “Oh, heaven’s no! You see in those days we were very poor and didn’t own much cookware. I cut the ends off the pot roast so it would fit in my only pan!”

And so ends the story…

To me the moral here is that whenever someone starts quoting dogma you really should try and explore its origins. You may find that those firmly-held beliefs are based on mostly unconscious and invalid assumptions.

No Purchase Required; It’s the Law!

Law Breaking Contest run by Rackspace

I normally write about programming and Internet technologies, so this post about marketing and the law is a bit out of left field. But since I’ve had to consider the issue many times while running my prior company, and many of my readers are small business entrepreneurs, I thought this topic might be helpful. If this post can keep just one entrepreneur out of hot water, I’ll be happy I wrote it. (and if it helps you, let me know!)

Yesterday I got an email about a contest that Rackspace is offering: Win 8 months free Rackspace hosting, for up to $1000/month. Pretty good deal huh? All you have to do is sign up hosting account at Rackspace, and you might be the winner![1]

Bzzzt, wrong answer! Unfortunately Rackspace’s marketing department must not have realized they were violating a Federal Trade Commission law relating to games of chance; contest rules must include No Purchase Necessary otherwise the contest becomes a lottery and thus illegal! According to Polaris Marketing Research’s article entitled Keeping Sweepstakes Legal:

Sweepstakes are generally permitted in most states as long as participants are not required to pay for the chance to win.

Let’s take a look at an excerpt of their contest rules (85Kb PDF) (emphasis mine):

 

One winner will be drawn at random… The prize is a waiver of a customer’s monthly recurring fee specified on the Service Order Form up to $1,000 per month for eight months. The odds of winning the prize depend on the total number of qualified entries received.

To qualify for entry in the drawing all of the following requirements must be met: (1) the entrant must be a new customer… (2) the Service Order form must be for a term of at least 12 months, (3) the setup fee must have been paid by the entrant…

Limitations…apply as follows: (1) up to $1,000USD…on the winning customer’s Service Order Form will be waived each month… (2) the winning customer shall pay the amount of the monthly recurring fee in excess of US$1000 per month…

 

More to the point, from LawPublish.com’s Contests and Sweepstakes section of their Advertising FAQ for Small Business states:

Sweepstakes-type promotions that require a purchase by participants are illegal in the United States.

Just how serious is this? Someone in CVS Pharmacy’s marketing department was asleep at the switch evidently and New York’s crusading attorney general Eliot Spitzer managed to tag CVS for a $152,000 settlement on a sweepstakes violation. Excerped from the press release:

CVS … offered customers a chance to win a $1,000 … Gift Card … Consumers who … purchased Nicorette, NicoDerm or Commit, … were … entered in the sweepstakes. However, CVS did not make entry forms available … for consumers who did not purchase … and did not inform shoppers how to enter … without a purchase. "State law requires that consumers, regardless of whether they make a purchase, should have equal access and opportunity to enter and win sweepstake offers," Spitzer said.

The blog Resonable Basis offers an analysis of the CVS sweepstakes violation (emphasis mine):

…having an alternative or cost-free entry method is one factor that distinguishes a sweepstakes from a lottery. A lottery typically has three elements: (1) a prize, (2) chance, and (3) consideration (some cost) to enter. If operated by a private entity, a lottery is generally illegal. … Those that want to use a promotion must structure it as a sweepstakes and not a lottery. … Thus, a company that wants to use a sweepstakes to generate interest and sales must make sure that one of the three elements of a lottery — a prize, chance, and consideration — is absent. Those companies that want to offer a prize, which most do, cannot require consideration to enter and must give consumers an alternative — cost free — method of entry.

What’s even more painful was that CVS had gotten caught in the past! From the same press release:

The settlement with CVS follows a prior settlement in June 2004 in which CVS agreed to resolve similar allegations related to its "Trip of a Lifetime" sweepstakes with the grand prize trip to Oahu, Hawaii.

And if all this semi-legal mumbo jumbo get’s you down, the FTC has a consumer protection article entitled Prize Offers: You Don’t Have to Pay to Play! that puts it in simple terms most of use humans can understand. And the relevant point here is:

Legitimate sweepstakes don’t require you to pay or buy something to enter or improve your chances of winning … If you have to pay to receive your "prize," it’s not a prize at all.

So you can bet that Rackspace doesn’t use the Lustigman Law firm as their counsel, the authors of Experience and Peace of Mind (in) Promotion / Sweepstakes Marketing. Or if by some strange chance they do, Rackspace’s marketing department certainly didn’t run this contest by them!

Bringing this topic to a close, you might wonder why this law exists? After all, I’m sure many a legitimate market department has conceived a contest to spur sales. But even if it is done with the best of intentions, if it is a game of chance and you have to pay to play it becomes gambling, and that’s just not something most governments want to allow for many great reasons. And those that do won’t allow gambling without significant regulation and, of course, taxes!

On the other hand, if it were allowed, I can just see the spam now:

Pay only $100 for your subscription to any of the following magazines, and you’ll be entered to Win ONE BILLION DOLLARS!

Your chance to win is 1 out of 1 trillion.

 

After posting this, my next step will be to contact Rackspace’s CEO and let him know he needs to quickly send out a correction. Wanna bet someone’s head is going to roll in the Rackspace marketing department?

AND FINALLY, don’t let this be you.

  1. I won’t even mention that at first glance the email implied that everyone could get eight (8) months free…

 

Quick Reference for Web Developers


LOCALHOST80.COM - Resource for Web Developers

I just noticed today in my blog logs that I’ve been getting referrals to my Well Designed URLs blog post from a website called LOCALHOST80.com.

I checked it out and it’s a pretty nice list of resources on a whole ranges of topics of interest to web developers, listed below. It appears they handpicked some of the best related sites and best articles on each of the topics I listed below to keep you from having to weed through them yourself. And I really like their navigation too; everything on one page for quick scannability, but you can also click the section title to drill down where they show the site domain for each of the links. And they use nice URLs too. :)

Highly Recommended!

  • 404 Handling
  • Creativity
  • Javascript
  • SEO
  • URLs
  • Adsense
  • CSS
  • mod_rewrite
  • Startups
  • Usability
  • AJAX
  • CSS Layouts
  • MySQL
  • Style and Design
  • Web Hosting
  • Blogging
  • Domain Names
  • PHP
  • Tech News
  • Web Icons
  • Color
  • Forums
  • Robots
  • Traffic
  • Web Writing
  •  
  • HTML
  •  
  • Tyopgraphy
  •