MSDN Redesign Number Ten Million

Microsoft has updated MSDN again for what feels like the third or fourth time in a couple of years.  Microsoft is really concerned with making sure it’s easy for new developers to pick up .NET, but I don’t think this redesign does it.

I think they missed the mark for true beginners.  I’ve never met anyone that started coding by saying, “I think I’d like to learn fundamentals of a programming language, then fundamentals of a GUI, then read a few dozen HOWTO articles that don’t have a lot to do with real applications.”  Instead, we start by saying something like, “I want to make my own Minesweeper” or “I want to make a Pac-Man clone”.  This redesign falls flat for this user.

The “desktop” page does a good job right up to step 4, the introduction videos.  “Build your first desktop RIA application with Silverlight?”  Why not just say “Build a smurfing smurf smurfer using SMURF?”  I think the video titles focus too much on what tools are used and not enough on getting the developer excited about what he’ll be doing.  Better titles would be “Build a desktop Twitter client with WPF” and “Build a browser or desktop Twitter client with Silverlight”.  When I was new, I’d expect a “my first application” tutorial to be simple.  If I saw a 30 minute “build your first application with WPF” I’d assume that WPF made it really complicated to build simple things.  If instead I saw “Build a Twitter client with WPF” I’d have understood that the video probably used some advanced features that needed explanation.  (On a side note; why on Earth is the thumbnail for the Silverlight code that sets up a WNDCLASSEX?)

Step 5 falls flat by showing a disorganized bullet list of links that are randomly bolded.  Section headers would be nice, but it’d work if similar concepts were grouped together.  Why is the MS Office developer center there?  Why is there a link to the VB developer center but not the C# developer center?  I’m not really sure what Microsoft was going for with these links.

When I first started, I thought MSDN was the appropriate resource to learn about writing Windows Forms applications from scratch.  This just isn’t the case.  MSDN is written in a technical tone and many of the articles assume at least a moderate familiarity with .NET.  There’s articles that help new developers, but they’re buried very deep in the Library hierarchy.  The “Getting Started with Windows Forms” page is exactly what I needed as a newbie who needed to write a WinForms application in a month.  Getting there is simple:

  1. Go to msdn.microsoft.com
  2. Click “Library”
  3. Click “.NET Development”
  4. Click “.NET 4”
  5. Click “Windows Forms Portal”
  6. Click “Getting Started With Windows Forms” (It doesn’t show up in the sidebar like on all of the other pages!)

If I go through the chain that leads me through WindowsClient.net it’s just as bad.  I get 3 links to help with Windows Forms: blogs (which are 99% about WPF), a guided tour of WPF (WTF?), and a videos page.  The videos page leads with “How Do I: SqlAzureLOB Line of Business” (mandatory “ATM machine” or perhaps “WPF Windows Presentation Foundation GUI Graphical User Interface” joke).  Is that what Microsoft’s research has indicated helps new programmers understand how to write applications?

I understand that WinForms is supposedly on its way out.  I haven’t noticed a decrease in students using it on the forums I frequent.  I gave the WPF links a whirl, and they’re in better shape, but the video page is useless to a newbie.  The first video on the page is “Create WPF Master-Detail UI Using Data Sources Window Object DataSource”.  I’ve used WPF for nearly 2 years now and I don’t know what “Data Sources Window Object DataSource” is supposed to mean.  Why isn’t MS leading with “Creating a Standard WPF Application” and listing the videos in increasing difficulty order?  Why isn’t there a “difficulty” or “intended audience” field that can sort the videos?

What I would change

The MSDN Library is most useful for a professional developer, but I feel like newbies should be made aware of the documentation.  The “How Do I” videos look nice, but they run the gamut from beginner to advanced with no indication as to their level.  They should have a level and they should be sortable by this level.  Users should be allowed to rate them and comment on them as well so newbies can be warned when someone labels “Write a SharePoint application using AzureCloudSqlSharePointLOBPOSWCF and ham" as a beginner video.

MSDN should really promote their forums as well.  I learned at least 80% of my WinForms knowledge from forums.  As part of promoting the forums, MSDN should also clean up the forums; my suggestions for that could easily fill another post.  The summary: you don’t need to dazzle newbies with over 100 different forums.  Make a “Basic .NET development” page with five forums: WinForms, WPF, Silverlight, Native, and ASP .NET.  Don’t make newbies have to decide if their question should go in “C# general”, “VS 2010 Development”, “WPF Development” or “.NET 4 WPF Beta Discussion”!

I think Microsoft should find a way to promote their blogs better as well.  It’d be nice if they kept an archive of the good blog articles rather than using an RSS feed of the most recent ones.  Pete Brown’s blog is chock full of great Silverlight tips ranging from beginner to advanced, but you wouldn’t know this from browsing MSDN.

A redesign won’t solve these problems.  Video in and of itself is not a solution to the problems that need to be addressed.  If Microsoft wants to help newbies, they need to buckle down and put some effort into designing an intuitive and accessible experience.  Right now the only reason I can find anything at all is my 8 years of experience with wrestling MSDN.

MSDN’s Community Features Really Suck

I really, really hate to complain about a very large piece of software because I understand the difficulties involved in developing such a thing.  I also don’t like offending people, as I know when people say “x sucks” and there is an author of x then that author can’t help but get their feelings hurt.  However, I feel like the community features are an afterthought at Microsoft’s MSDN site, and I’m really tired of trying to deal with it.  Maybe someone will read this and fix it, but I doubt it.

First, I don’t understand why MSDN is so slow.  I understand it’s a large site servicing thousands of connections per minute, but so is Amazon and somehow I don’t have 10-second delays when accessing that.  OK, fine, Amazon targets a different audience and perhaps their software can be optimized.  That doesn’t explain why if I simultaneously try to visit a blog hosted on Blogger and MSDN, the MSDN blog is still loading 10 seconds after the Blogger page is done loading.  This is true for all parts of the MSDN site: blogs, forums, newsgroups, technical documentation.  What’s the deal?

Next, some community features.  The forum software is pretty neat, but new categories are added at a glacial pace and they’re really dated.  The VS 2008 forums were clearly marked for “discussion of the Visual Studio Codename Orcas Beta” at least until VS 2008 SP1 was released.  I’m just glad there’s a couple of them devoted to WPF.  However, so far I’ve got about 4 active questions with 0 replies; at least in the WPF design time forum (which they still call by its codename for some reason) it looks like the only way you have a chance of getting a reply is to ask a simple question like, “I haven’t opened Visual Studio yet and I need to.  How do I do this?”  So far the most use I’ve gotten out of these forums is a good place to arrange my thoughts while I arrive at the solution myself.

The managed newsgroups are worse.  As part of the MSDN subscription my company purchased, we’ve got guaranteed response times to questions on the MSDN managed newsgroups.  Except it doesn’t look like they’ve updated their newsgroups in a while; there’s no newsgroups for WPF and not even a really good-looking place to pretend is associated with it.  That doesn’t matter though, because it’s impossible for me to configure my MSDN managed newsgroups account.

If you want to get the guaranteed response you paid for, there’s a process you go through to associate an alias with your MSDN account.  I presume this is so some automated tool they have can ping an appropriate person to find someone that can respond to the question.  Since June 2007, when I tried to access this page, I’d get an error message after a 2-3 minute delay; the message basically said “something unexpected happen; try again in 10 minutes”.  A couple of weeks ago, I got tired of it and used the concierge chat to see if maybe I was doing something wrong; it turns out the “Configure” link was broken for everybody and it had to be fixed.  Go figure; a crucial link on a feature they charge money for was completely broken and it went nearly 2 years unnoticed.  It got fixed in a couple of days, I configured a posting alias, then realized that I had found the answer to the question I wanted to ask through trial and error anyway.  Today, I needed to ask a question, so I double-checked that my alias was configured.  “No alias configured.’”  Huh.  Weird.  So I tried to configure it again.  “We’re sorry, this alias is already in use.”  Huh.  Real weird.  So I tried another alias: the old one with a 1 on the end.  5 minutes of waiting later, “There was a problem connecting to the registration service.  Try again in 10 minutes.”  Hey, this sounds familiar!  10 minutes later, I try again with the new 1-suffixed ID.  “We’re sorry, this alias is already in use.”  CURSES! So it seems that if I try to register an alias, it fails for an unspecified reason.  However, it does get so far as to registering the alias because after I get that unspecified error the next error tells me that my posting alias is already in use.  Shouldn’t this be a transaction that’s rolled back on failure?

I tried the concierge chat again, and the person confirmed this is a “known issue with volume license subscribers” and is “intermittent”.  Funny, I’ve been barred from this feature for more than a year and it’s described as an “intermittent” issue.  I wonder if there’s a word for the practice of selling a service but making it so difficult to obtain the service that it’s not used?  Surely someone’s been in trouble for it.

I’m genuinely frustrated here.  The best resource for information about programming is other programmers, and MS has the framework in place to create a really great community of developers.  However, they’ve chosen to needlessly obfuscate the communication process to the extent that I’m getting better answers from programming accidents than the MS “community”.

Also protip if any MS employees decide to reply (occasionally it happens!): if you want me to contact you by email it is dreadfully important that you leave an email.  Someone responded to some WPF comments I had one time and expressed an interest in an email discussion, but didn’t leave an email.  No email on his blog either.  If you don’t leave contact information I can’t contact you.

An open letter to NBC

Austin’s NBC affiliate KXAN is having a fun time playing victim because Time Warner isn’t paying some fee for the honor of carrying an NBC affiliate.  While KXAN was whining about how unfair it is they neglected to mention what other networks are being paid by Time Warner, leading me to suspect the sum is somewhere around zero.  I have plenty of choice words to say about this, but that is not what has agitated me.

Since I can’t watch NBC on TV, I use your website to watch the shows I want to watch (take THAT, local advertisers!)  In return for this service, I have to watch online commercials as part of the viewing process.  This is generally well-done, though occasionally it seems like the ads cut in a little earlier than they should and lines of dialog are missed.  This is still just background.

What CHUCK! agitates me CHUCK! is a CHUCK! commercial for CHUCK! some lame show CHUCK! that I don’t CHUCK! even CHUCK! want to CHUCK! watch.  The CHUCK! commercial in CHUCK! question is for CHUCK! the CHUCK! CHUCK! show Chuck CHUCK!.  It involves some kind of CHUCK! music with CHUCK! occasional CHUCK! interjections CHUCK! CHUCK! of characters CHUCK! screaming the CHUCK! titular CHUCK! name CHUCK!.  I see this CHUCK! commercial CHUCK! at least 5 times CHUCK! per viewing, CHUCK! and it’s CHUCK! really aggravating that CHUCK! it CHUCK! both has an CHUCK! annoying sound and CHUCK! CHUCK! plays with a volume CHUCK! significantly louder CHUCK! than the show I’m CHUCK! watching. 

The commercial covers a few really lame jokes, and after seeing it multiple times in a row I’m pretty certain that Chuck isn’t the show for me.  I’m sure the ad’s creator is confident that it’s "attention getting", but in this case the ad only draws attention to the fact that I’ve already seen it dozens of times, the jokes were stale the first time I saw them, and I don’t like the commercial.  On the TV, I just mute during commercials and the problem’s solved, but I’m a bit more captive at my computer and it’s easier to just wait out a commercial.  It has driven me to the point where even if I accidentally started watching Chuck, the first time someone said his name I’d think of the commercial and change the channel.  Perhaps you could do some work to ensure your viewers don’t have to watch the same commercial too many times in one viewing session, and also pass along to your advertisers that some viewers are less inclined to ignore ads in the online viewer because it’s inconvenient.

Thanks.

Annoying Dialogs

Every now and then, Visual Studio’s busy doing something it feels is really important, and I end up seeing this dialog:

VS Delay Notification dialog

The dialog is trying to be helpful.  It’s telling me that VS is busy, and it gives me three choices: switch to the application that’s holding things up, wait a little longer, or cancel the operation that caused the delay.  I have never seen the “Cancel Operation” button be a valid choice.  “Switch To…” is worthless because 9 times out of 10 VS is the application that is causing the delay.  So, this dialog is little more than VS making fun of me and telling me that I’ll just have to wait for it’s oh-so-important mystery operation to complete.

Why doesn’t Subversion add respect svn:ignore?

I use Subversion for source control on my personal projects, and I’ve got to say it’s so easy to set up and use there’s no excuse for not using source control.  There’s one thing that really bothers me though.

When setting up a .NET project, I have a few steps I have to follow due to the small clashes with the default project templates I have.  I have to rearrange a few files after VS creates the project, then I get to adding files.  One of the first things I do is set up svn:ignore on each directory; I want it to ignore *.suo, *.user, bin, obj, and occasionally a few other files/directories.  Every time I do this, I double-check with svn status to make sure that nothing I don’t want is showing up, then I feel like it’s safe to do svn add directory.  I mean, I told svn I’d like to ignore those files, right? so it should ignore them, right?  Wrong.

So, for every project, I have to either add every file then use "svn delete –force" to remove just the files that I told it to ignore in the first place, or I have to manually add every file and directory in my project, being careful not to add anything that I’m ignoring.  This is frustrating, to say the least.  At first, I thought it was because the directory wasn’t yet under source control or the svn:ignore setting hadn’t been committed, but I’ve tried committing all directories and property changes first to no avail.

The part of it that’s most aggravating is the fact that "svn add" has a –no-ignore argument; what on Earth is it there for if the command already disregards svn:ignore?  I hope I’m just missing something stupid; I’m going dig around the internet and see what I can find.

*update* According to a blog I found, it has to do with the OS doing wildcard expansion, not Subversion.  That actually makes a lot of sense, because the OS has no idea about svn:ignore.  Apparently the default add behavior is to act as if –noignore is specified (which seems dumb to me), so when you pass it a list of files it just adds all of them.  The solution?  Set up the ignore traits on the directory, then use "svn add –force ."  I have no idea why the –force is required.  It looks like this got added to the SVN book very recently.

More IDE Omissions

This one was enough to warrant an adventure in continuity.

I’m making an application in WPF to get a feel for how some of the technology works, since so far I’ve been using it in little sandbox applications.  I got all my data classes made and decided it was time to make the UI.  I want to make a dialog, so I figure it’s like how I’d do it in Windows Forms: "Right-click project>>Add Window", right?  Wrong.

I can add a Windows Form from the right-click menu.  If I just go to "Add>>New Item…", I can add a WPF User Control, but apparently no one thought you’d want more than one Window per project.  I believe the right-click menu issue is because I’m not using an Application Definition but a Main method to kick off my application.  It’s still aggravating.  Once again, the IDE is punishing me because my approach to application architecture isn’t what VS considers the "right" way.  Now I have to manually add a XAML file (as an XML file, then rename it and add the Window element manually) and a code-behind file, making sure that I get the x:Class attribute right and import the correct namespaces.  Tell my why we paid for an IDE again?

IDEs considered harmful?

Jeff Putz mentions a post about a person who switched from an IDE to a text editor and why it isn’t such a good idea.  I’m not sure where I stand.

On the one hand, there’s no denying the utility of features like Intellisense and integrated debugger support that he mentions.  I would argue that several "text editors" these days support such features, but I will concede that many of them fall short of a really good experience.

On the other hand, I can also agree with many of Charles Petzold‘s points.  When you use Visual Studio, it forces you to structure your programs in a specific way.  I’ll discuss the hiding of designer code and the lackluster support for WPF file types and why I believe they exemplify a case where an IDE hurts users as opposed to a text editor.

Starting with VS 2005, designer code is hidden away in partial classes.  In C#, you are more aware of this because the designer files are displayed along with a separate code file, so it’s clear you’re working on a class spread across several files.  In VB .NET, VS pretends like there’s only one file, and since the user can’t see any evidence of designer code one can assume the designer works by magic. One of the main reasons I see cited for this is so the user doesn’t accidentally edit code in a location that’s subject to be modified at the designer’s leisure.  There’s really no way to force the designer code into the main class, but it does seem like if you open a file that already has designer code in it, then the designer does the right thing and doesn’t insist you create a partial class. 

I care about this because no programmer should ever believe the tools she uses are magic, and forcing the designer code to be hidden enforces this belief, particularly among VB users.  I’m very active on a VB .NET programming forum, and I generally see one or two questions a month that either directly ask for information about dynamically creating controls or for which the most elegant solution is dynamically creating controls.  More often than not, the poster is completely ignorant of the fact that the VS designer generates code that they could write themselves; sometimes they literally state, "How do I programmatically invoke the designer so I can put some buttons on the form?"  Reading through one of Charles Petzold’s books on .NET is a good way to avoid this if you’re a .NET newbie: Petzold tends to start in the code and discourages you from using the designer until you understand what the designer does for you.  I wish more beginning programming texts would start this way; the designer-first approach seems to produce programmers that believe there’s a drag-and-drop solution to every problem, and anything without such a solution is not possible. 

I don’t argue that there shouldn’t be a designer, but I do argue that the designer code shouldn’t be so well-hidden from the user.  I learned how to use several controls by configuring them with the designer, then looking at the code that was generated in VS2003; it’s a shame that many people don’t even know this is possible.  What’s interesting is in WPF, you pretty much have no choice but to write code for your layout whether it’s XAML or imperative code, so it seems perhaps this evil practice will fade away.

The next thing I want to discuss is the lackluster support for WPF file types in VS 2008.  How do you think I create a loose XAML file in WPF?  The use case isn’t necessarily uncommon; suppose I want to create a window and I don’t need a code-behind file, or I want multiple themes for a custom control.  I have two choices: I can create a WPF window and delete the code-behind file and edit the XAML file to be what I want, or I can create a new XML file, name it with the XAML extension, and remove the XML document declaration.  There’s no way to add just a loose XAML file, even though it’s a fairly common need.  I feel like this can lead a new WPF developer to believing silly maxims like, "All Windows must have a XAML and code-behind file". 

So while I agree that an IDE can provide utility to a programmer, I also feel that the more code your IDE writes for you or the more templates you use then the more your architecture will be dictated by the tools you use, rather than the needs of your application.  I don’t suggest a wholesale switch to text editors, but I do feel like if you can’t use a text editor to write your code then you aren’t familiar enough with your language. 

FolderShare is Almost a Good Idea

I was taking a look at the Windows Live FolderShare beta, and it seemed to be exactly what I wanted.  I have a few forum reply templates and AutoHotkey macros that I could use both at home and work, and using a USB drive to keep them in sync just feels kind of lame in this age of internet connectivity.

I uninstalled it after using it for 10 seconds.  All I want out of the program is to share the particular folders that I tell it to share.  Instead, the program gives access to every drive on connected machines; the purpose of libraries is to specify what folders you want to keep in sync.

This makes use of the program unacceptable at work; I like to think my passwords are secure but running FolderShare means if my account is cracked then the source files on my hard drive are exposed.  Unacceptable.

Why couldn’t they resist sharing every single folder?  Why couldn’t they at least let me configure whether I want to allow this from the machine?  The only other tool I know of is DropBox, and it’s in private beta so I can’t try it out.  I wonder if there’s any other solutions, or if I could whip up something quick in .NET that does it?

VS Project Templates are Aggravating

I love Visual Studio, but some of the work I have to do to make things work the way I want is aggravating.  I just started a new WPF solution to follow along with a chapter in the book, and decided to give it a descriptive name so the directories would look all nice: "Chapter 8 – Styles".  Visual Studio assumes you want to use the solution name as the default namespace for all projects (unless you specify different project and solution names; then it uses the project name).  Of course, the namespace naming rules are more strict than file naming rules, so I end up with the lovely namespace name "Chapter_8___Styles".  Lame.

What’s worse is even if I go into project settings and change this, it only affects new files added to the project, so I have to go through the solution and change every namespace reference.  For the WPF application project template, that’s changes to 3 files before I can build and run.  It sure would be nice if I had an easy way to change this.

I have the worst luck with shipping

One of the things I like best about living in a large city is I don’t have to order things online so much anymore. It’s not that I’m worried about my identity getting stolen or that I don’t trust the internet. It’s just that I can’t remember the last time I ordered something online and received it without incident.

Often, it’s not the company I order from. I know better than to use dodgy merchants, and tend to only use big guys like Amazon.com. The point of failure is always the shipping. To date, DHL is the only major shipping company that hasn’t screwed up the complicated task of “put this box on the doormat”. Next most successful is the US Postal Service. The worst? I can’t figure out if it’s UPS or FedEx. I do everything I can to avoid using either company, but unfortunately most major vendors choose the carrier that has the best price at the moment so you don’t get any say in the matter.

Why the rant? I placed an order for a book and two CDs on Wednesday morning. I need the book for research at work, and one of the CDs is needed for my wedding which is approaching very quickly. Since I leave Tuesday, I didn’t want to rely on free shipping or standard ground. Next-day was too costly, but 2-3 day ground seemed most reasonable, with an expected arrival date of Friday (today). I came home and asked the people in my apartment complex’s front lobby if any packages had been left for me, and they said no, nothing from FedEx today. I figured the delivery guy must have left it on the doorstep. Nope, no boxes. Did he even leave a sticker? Nope. Hmm, I suppose he just didn’t make it by today right?

No, the tracking system explains that “Resident was not present. Package not delivered.” This is not inaccurate. I was at work, because for some reason that eludes me most home delivery services only deliver during hours that the majority of the population is working. The procedure in my apartments is that when a resident is not home, the shipping people leave the package with the front desk. This has worked fine with the USPS so far; I’ve had two deliveries that went off without a hitch (so long as you don’t count “bending a package marked ‘Do not bend’ that had thick cardboard inside and took significant effort to bend” as a hitch). There are two suspicious things here.

  1. It is the policy of every major shipper to place a “Hey you weren’t here” label on your door when you weren’t there. This policy exists for people who don’t use the internet to track packages and to prove that drivers are actually following their routes instead of goofing off. You can’t claim the driver didn’t come by because the sticker is right there. I had no sticker, so I asked the lobby if anyone else got FedEx stuff today.
  2. The front lobby saw no FedEx trucks today.

So, I’m left with the notion that the driver had a tight quota, the cruddy traffic lights in this area slowed him down, and since no one is home at 11AM on a weekday anyway he played “Whose package can I safely pretend they weren’t home with today?”. Unfortunately for him, I’ve been selected for this game in the past.

I complained to FedEx and for a change I’m actually at least getting them to investigate what happened. It won’t do me any good, because they don’t ship on weekends. I paid 100% more than the cost of standard ground to receive my package before the weekend, and I did not receive services that match the premium I paid. The real shame here is there’s no one to complain to. In the past, I’ve complained to the shipping company, but I never get a refund of any sort nor do I ever get the package any faster. I can’t complain to the vendor, because once they put the label on the package it’s not their fault. I have complained to vendors in the past, but all I get is smug “Whatever just because USPS is cheaper, faster, and more reliable for your packages doesn’t mean we’re even going to consider letting you pay a premium to use them instead. You will get FedEx or UPS and you will like it.”

I understand this situation is kind of not a big issue, since honestly if the driver did visit (of which he left no evidence) then he is following one of the protocols (he might not know the front lobby holds packages for residents even though they have to open the gate for him). But I have a history of horrible service with the big shippers. If you care to be bored, continue reading and I will detail them so maybe some sympathetic employee will send me the $5 it would take to make me feel like the situation was resolved.

Incident 1 – FedEx Next-Day is not so fast

I was working at one of my first jobs about 6 years ago. We were assembling computers for this company that was contracted by the state government to get students to assemble computers for much cheaper than the cost of constructing a factory and hiring people that wanted benefits. It was a pretty good idea, and paid way better than anything else I could get at the time. Our paychecks came via FedEx from some state agency, and of course the first check had some hang-ups and they ended up a week late. To compensate, they sent the checks via FedEx next-day once they got them working. The day of delivery came, and as the end of the day approached we got more and more curious about the whereabouts of our checks. We went to the front of the building to find a “You weren’t here” sticker attached to the front door. We asked the office workers if they saw the delivery guy (they worked in plain sight of the door) and a few of them mentioned he just kind of walked up to the door and put a sticker on it. He didn’t even fill it out on the spot; he had it pre-filled so he could just stick it on the door and run.

This guy had no intent of delivering the package; for some reason he didn’t want to waste the time.

Incident 2 – UPS Strikes out too

My first Dell laptop died the third day I had it. Actually, just the display died, but still it’s not much use without a display. I was obviously still under warranty, so a technician came over and fiddled with it and decided to order some parts to try and fix it. The parts were sent UPS next-day. Since it was near the end of Summer, we were home all that day, and in fact we had the front door wide open because it was a nice day outside. Around 4:45 I started getting kind of worried that the UPS guy might not show up, so I checked the tracking status. “Resident not home – could not deliver”. At 10:45. When we were sitting on the front porch and would have noticed a UPS truck. There was no sticker, and in fact no sighting of a UPS truck at all by the 3 people that were home at the time. Once again, I got a driver who was busy doing something else.

Several Incidents – FedEx

I had several of the same problems with FedEx when I lived in Tennessee. It was kind of a small town, and the first time I was ever making decent money, so I ordered stuff online frequently. I believe FedEx handled 6 of my packages, and I believe I received 1 without incident.

The first one I didn’t mind. It was a piece of computer junk that cost too much, so they wouldn’t leave it on the doorstep without my signed consent. I signed the door-handle thing they gave me and checked the box “Please leave it on my doorstep if someone steals it it is my fault”. They replaced it with a copy of the same label. I signed it again. This time, they replaced it with “This was the final attempt now you have to come to pick it up.” Well, it wasn’t that bad since the facility was actually half a mile from where I worked, but they were open the odd hours of 2:00-4:00 only so it took an extra day to get it.

I figured after that they had my signature on file and I’d get the next thing just fine. It was a cheap book and didn’t require signature. Except they left the door handle thing. I called and complained, but I was told that it was FedEx policy that they couldn’t leave things at apartments. Fine, I won’t fault someone for following policy. At least they were leaving notices they’d been there, right? I prepared myself to have to always pick up the packages myself from the people I was paying to deliver things to my house.

I found a loophole to their policy. If you live on the second story or higher, and your package weighs at least 30 lbs., the deliveryperson can’t be bothered to bring it back down to the truck. This was the only package that I had successfully delivered to my house.

UPS gave me no troubles, but the only thing they delivered was a this stupid 50 lb. CRT monitor whose box was so big it barely fit in the door. I suspect this has something to do with why they didn’t follow policy.

DHL delivered 4 packages without incident.

Incident 4? – Don’t ever next-day USPS from Tennessee to Mississippi

From time to time, I had the need to ship something home from Tennessee in a hurry. Since I no longer trusted UPS or FedEx, I tried using USPS and paying for next-day service. Except somehow, the package would always get delivered like this: Knoxville, TN -> Mobile, AL -> Charlotte, NC (MISROUTED) -> Mobile, AL -> Jackson, MS -> Destination. Of course, the misroute from Alabama to North Carolina caused the package to take longer than the guaranteed 24 hours.

I shipped two packages next-day. This happened twice. The only reason I’m happy is when I brought the tracking printout as proof that the package took longer than 24 hours to deliver, my money was refunded. I completely forgive and still trust the USPS because I know when they screw up they are willing to eat the cost of their screwup.

I’d comment on how they ship things but nobody uses USPS for shipping for some reason. I get my mail every day without incident though so I don’t really need a sticker to show the letter carrier came by. I guess there’s something about being reliable and cheap that scares away the big vendors.

Finally I am done

So in short, the reason I am so hacked off and motivated to waste an hour documenting my anger is because I have horrible luck with shipping companies. Over the last 7 years, in three different states, I have had the same problems happen with pretty much 4/5 of the packages I have shipped to me via FedEx and UPS. I have no one to complain to, and when they screw up your delivery they don’t have any obligation to make it right. I pay a premium in instances where I consider my package high priority, and it does nothing to guarantee that my package will make it on time because if the driver decides he’s not going to visit my house I’m just out of luck. I think I should at least get the $3-$5 that I paid for the expedited shipping back if the driver didn’t leave a label. There’s no way to scam that and get your package faster; 3-5 day is the next step up, and if you pay for 2-3 day, but purposefully make sure you can’t pick up the package until the 4th day you have gained nothing.