So this week I attended a preview for Visual Studio 2010. In addition to database development, I do ASP.NET development and use Visual Studio 2008 for that. So that's why I was curious about the new Visual Studio 2010 rollout.
Up to this point, I haven't done database development in Visual Studio. I have not worked in the Team Foundation Server Edition. Like a lot of shops out there that are just SQL Server shops - or are just small and don't want to deal with TFS, I do database development in SSMS and if it's for SQL Server 2000, then I use Enterprise Manager and Query Analyzer. I augment these tools (albeit with some pain) with 3rd party tools like TSQL Unit for unit tests, Redgate Data Generator to generate test data, Redgate SQL Compare to create change scripts and schema scripts for source control, Redgate SQL Doc to generate documentation, and so forth. An announcement was made that will likely change all that.
The presenter announced that many of the database developer tools that have only been available in TFS Database Deloper edition are being added to the VS Premium license - and that for VS 2010 rollout, everyone gets an upgrade. So those with a VS Pro license and MSDN Premium will upgrade to the new VS 2010 Primium with MSDN Premium and will have the database developer tools. Finally these tools (which really in my opinion Microsoft should have made widely available to everyone doing SQL Server programmability tasks from the get-go) - finally they will be freed from TFS and will be made available to a much wider audience in the community - including myself. That's good for the community. But it could be better. The tools could be added to SSMS and the reach in the community would be even wider.
So coming up, I'll be presumably doing my database development there in VS 2010 Premium with the extra tools. To be honest, I'd rather have these tools available in SSMS. Wouldn't you?
Stepping back I think it's uncomfortable that development is shifting out of SSMS and into Visual Studio per Microsoft. I understand it intellectualy. I understand the economics. Microsoft has to be paid somehow to develop the tools and afford the development teams. But the "cultural shift" if you will feels odd.
Sure you can still do your development in SSMS. But nobody will respect you for it. That's where you go if you don't plan to do things right. You get what I mean, hopefully. If I'm right, most of us have been doing development in SSMS. Now Microsoft knocks on the door and says "Well it's called 'Management Studio' because it's mainly for management - not programmability. You do your development in VS." Oh. silly me. Silly us majority of the SQL Server community for doing our development in SSMS. That was silly. We should have been doing it in VS TFS Developer Edition all along.
But not many of us have done that. So to help us make the cultural shift, Microsoft is giving everyone an upgrade - and is giving a big chunk of the community the extra tools. Those who are on VS 2008 Pro with MSDN Premium get an upgrade to VS 2010 premium with the database developer tools included- so we'll get with the program. That's an up-front cost savings. Neat. But let's not forget that there's a likely cost hit when the license renewal swings around.
In my ideal world - the same world where my beverage is stirred by unicorns before being served to me - and where waterfalls are made of grape Fanta - those extra tools would go into SSMS.
I can't help but voice the following opinion. I think a lot of best practices for database development have been slow to adoption in part because the Microsoft tools have been locked in TFS.
Looking at the SQL Server community as a whole, from a thousand-mile view, I see that there's been a big struggle to do programmability development in the safety zone - adopting test-driven development practices, agile practices and so forth. That stuff has gone by the wayside. Sure there's a minority that have been doing this stuff. But there have been two choices. One, you augment your toolset with 3rd party tools and open-source tools patch things together and do it on your own, or two, you have the TFS Developer Edition and you use those tools - which I doubt accounts for much of the community market share. Both have significant barriers to entry in cost and time. So on the ground in the real world, these practices have been neglected and not picked up by each new wave of community members. In my opinion, some of the blame has got to be laid on the fact that the tools have been locked up there in TFS.
In community sites and forums like SSC, we've been talking about how to do TDD and Agile in database development outside of TFS. I've seen articles on organizing your project in SSMS, or using third-party TDD tools like TSQL Unit. That leads me to believe that a majority of the community aren't in TFS. So now starting with VS 2010, we won't have to be in TFS, but we will have to be in VS Premium and we'll get the tools that we really should have available to us to do things and do it right - and those of us who are used to using 3rd party tools to augment our toolbox will have an extra choice. But I'd rather these tools be in SSMS.
One last oddity to note. So we get the picture from Microsoft. You SQL Server Database Developers should do your database development in VS - you say. However, just recently Microsoft has branched out the SQL Server 2008 certifications into two certs. There's a separate certification for Database Developer and a test 70-433 for Microsoft SQL Server 2008 Database Development. However, you go through the certification and note that there is NOTHING that I'm aware of that relates to using these developer tools that have been locked in TFS. Nothing. Isn't that odd? We'll have these certified database developers who may have never so much as touched the Microsoft database developer tools in question! Interesting and odd.
The 70-433 material is all related to doing development in SSMS. Maybe I'm not so crazy after all for being culturally tied to SSMS for my development. I mean - the Microsoft certification team isn't pushing me out of there. Just put the tools in there - please. That will make it even more available to the community than putting it in non-TFS VS licenses.
A colleague of mine pointed out a great podcast called This American Life - specifically an episode with John Hodgman (the PC guy in the Macintosh commercials) where Hodgman poses the question to people, what super power would you choose - flight or invisibility? In our tech careers, we are faced with similar questions.
I've been struggling lately with similar tradeoffs. There's a great role-playing game on XBox 360 called Oblivion that I play on occasion where a character can build a skill tree that includes various forms of magic. The game is part of an ongoing Elder Scrolls series - and this latest incantation has apparently bumped up against a memory barrier. There's only so much data that can fit in memory. So, the game makers obviously chose to improve the graphics - but in so doing had to dispense with a very significant magic trait from the previous version, Morrowind - the trait of levitation.
In Morrowind, one can levitate around the game world without experiencing area loads. I'll enchant a robe with constant-effect levitation - offering an excellent mode of transportation. I can levitate way up in the air to get a stunning view of the game world and levitate over a mountain rather than walk around it. It has solved a lot of problems for me. Any character that can't issue a range attack against me is toast. I'll levitate out of reach and rain down havoc until my purposes are complete.
So, in Oblivion, I've had to resort to other means for survival. I've resorted to invisibility spells. Whenever danger is lurking, I cast an invisibility spell. The problem is, I've started to feel like a coward always becoming invisible. The game levels up as the character does - and my character has become dependent upon invisibility for mere survival. I'll get killed almost every time if I try to deal with danger in other ways.
So, I'm faced with a choice. I can keep playing Oblivion and choose invisibility, or I can go back to Morrowind and use "levitation (flight)." The problem is, the Game of the Year Edition of Morrowind has become rare and hard to get. I was recently able to get a copy on eBay - but it cost a good bit of elf gold. The Xbox 360 plays games made for the Xbox original - so I'm good.
Looks like I've chosen flight (levitation) as my super power.
Software vendors try hard for things like this not to happen (like me buying a previous version of the game series). Imagine the loss of profit if people decided that an earlier version of SQL Server were preferred over the newer versions. It could be argued that it happened with Windows XP and Windows Vista to some extent. But that's not really my main point.
The direction I want to take this is in thinking of the career tradeoffs that are made in a tech career. One has a skill tree that one constantly works on - and it's much like a role playing game. One can choose to dabble in a wide variety of skills or choose to specialize in specific skills. There are tradeoffs and benefits to the various approaches.
In the world of SQL Server, and Microsoft application development - the treadmill of change has happend fast and furious lately. I've put a good deal of effort into new technologies this year. I'm starting to make plans for 2010 - and there is definitely not enough time to do all the things that I want to do. There's a lot to do in the realm of BI and reporting, there's new T-SQL extensions, new data types, some game-changers for XML approaches including indexing of sparce columns, there's a variety of new technologies like change tracking - there's web services extensions - and the list seems to go on for a mile.
But the role playing game analogy I think really fits nicely. We set up a character - ourselves. We have a skill tree that we can analyze and plan. We can take a block of time, like a year - and decide what skills to add to the tree, what skills to keep sharp, what skills to let fade - and we can pretty much tell after planning if we'd be satisfied with the result provided we can stick to our plan of action.
Many distractions will come our way. Many side quests will tempt us. Sometimes, new needs arise that takes us in a different direction than planned - and we get skills that weren't on the list. Or, maybe the distraction is entertainment or game playing - and we simply fail to acquire the real-life skills we want. That's just the name of the game when you're trying to actively plan your career and your life.
Point is, choosing which super power you'd take isn't all that far off from choosing which killer tech skillset you're going to work on next year.
Down on the docks in Seattle there's a shop of oddities and curiosities where one can find things like a chapter of the Bible written on a grain of rice, an aligator boy, a gobblet of glass eyes - you know - stuff like that. So too one can find oddities and curiosities at the 2009 PASS Conference.