Well it took me a while to get around to this one. Sorry I’ve been offline folks. I recently changed roles inside Microsoft and am now more directly focused on Visual Studio / TFS / Team Test / etc… Okay, on to the blog post!
As you, hopefully, have heard by now Visual Studio 2010 now supports achievements. For those of you who have been living in a cave the concept of achievements is a common one in video games like Skyrim and increasingly popular in online social mediums as well. One of my favorite uses is with online forums like the badges StackOverflow uses. With the proliferation of achievements it was only a matter of time until an extension was created to have them in Visual Studio. I actually thought someone external to Microsoft would be the first to create an achievements extension but it turns out that an internal team created it first.
I’ve been reading the comments from people on the actual achievements that are available (more on that later) and most people seem to like it. The biggest criticism that I have heard so far is that you can get achievements for doing things that you should NEVER do when writing actual code. At first I agreed with this sentiment but have recently changed my mind for a couple of reasons. First, this is the very early release of this extension and I think we will see much more in the way of achievements for good coding practices. Second, and more importantly, achievements are about having FUN. If you look at game achievements there is almost always a few funky achievements that are “bad” and at the same time really fun to do. One recent experience I had with this was the Master Criminal achievement in Skyrim.
So with all this said there are two fundamental questions that need to be answered:
“Where do I GET the achievements extension?” and “What achievements are available?”
Getting the Achievements Extension
You can download and install the extension by going to this link:
or you can install them directly from Visual Studio by going to Tools | Extension Manager
Below is the list of achievements that I got from the Channel9 page that talks about the extension:
Customizing Visual Studio
Extensions Junkie (5 points)
Install 5 extensions to Visual Studio. Extensibility rocks!
Extensions Junkie Deluxe (10 points)
Install 10 extensions to Visual Studio. How can you find anything on a menu?
Gotta Be Different (5 points)
Load custom Visual Studio settings. I swear, they never get the default settings right.
Don't Try This At Home
Field Master (0 points)
Have 100 fields in a single class. Gnarly! Uses FxCop
Go To Hell (0 points)
Use of the goto keyword. Um, I heard it was a best practice that you weren't supposed to do that anymore.
Job Security (0 points)
Write 20 single letter class level variables in one file. Kudos to you for being cryptic! Uses FxCop
Magic Numbers (0 points)
Write a enum with 30 fields. Who needs numbers when you've got words! Uses FxCop
Overload (5 points)
More than 10 overloads of a method. You could go with this or you could go with that. Uses FxCop
Scroll Bar Wizard (0 points)
Write a single line of 300 characters long. Who needs carriage returns? Uses FxCop
Turtles All The Way Down (0 points)
Write a class with ten levels of inheritance. Now that's a sweet inheritance! Uses FxCop
Regional Manager (7 points)
Add 10 regions to a class. Your code is so readable, if I only didn't have to keep collapsing and expanding!
Using Just What I Need (7 points)
Used 'Organize Usings' 50 times. Unused usings are evil!
Just For Fun
Install and Register For Visual Studio Achievements (5 points)
Install the add-in and register with Channel9. You are up and running!
Lonely (5 points)
Code on a Friday or Saturday night. Coding? Tonight? Ouch.
Obsessive Compulsive Disorder (OCD) (5 points)
Invoke the 'Close All But This' menu option 10 times. I mean, who invented those damn tabs anyway?
Potty Mouth (5 points)
Use 5 different curse words in a file. Wash that mouth out with soap!
Save A Tree (5 points)
Print source code. My boss told me to. I swear!
Complex (10 points)
Have 50 projects in a solution. That's kinda scary.
Equal Opportunist (10 points)
Write a class with public, private, protected and internal members. It's all about scope. Uses FxCop
Localization Guru (10 points)
Have 1000 localized values. Nice localization work!
On The Shoulders of Giants (10 points)
Reference 25 assemblies. Hey, why should you write it if someone else already did?
Suspicious (10 points)
Use 5 preprocessor directives. Compiler commands -- aren't you fancy!
Time For An Upgrade (10 points)
A solution takes 10 minutes to compile. Dag, that's one enormous solution!
Unleashing Visual Studio
Architect (5 points)
Add 10 items to a sequence diagram. You're not just a developer; you're an architect! Learn more about sequence diagrams.
Casual Observer (5 points)
Start a debug session using step over (F10) more than 10 times. I thank the debugger every day.
Cheater (5 points)
Invoke an IntelliTrace Menu 10 times. Tools rule! Learn more about Intellitrace.
Interrupting Cow (5 points)
Have 10 breakpoints in a file.Where's that bug? Could here, could be there, could be anywhere!
Performance (5 points)
Invoke performance tools 10 times. Why is this app running so slow? Now I know! Learn more about analyzing application performance using profiling tools.
Start Me Up (5 points)
Have 3 startup projects. You've got a lot on your plate!
Stubby (5 points)
Generate method stubs 9 times. You're a TDD bad ass!
The Explorer (5 points)
Start a debug session using step into (F11) more than 10 times. Ah, the power of F11. Every coder's best friend.
UML God (5 points)
Create a UML Class Diagram 10 times. Code is for sissies. Models! Models! Models! Learn more about UML in Visual Studio.
Go forth and get your achievements today. Maybe one day I can convince the Redmond folks to put in a “Most Tips Used” achievement