Well, here we go. The first full day of the conference is in swing, and I have four sessions to attend, along with some additional duties to handle as a PASS volunteer. This is one of the longer days, and I ended up being involved in activities for about seventeen hours. Is it worth it? Absolutely. I would not trade my experiences here for anything else related to my professional development.
The first session was on Data Modeling with SQL Server Management Studio (SSMS). The presenter was very knowledgeable on the subject, but I am not certain I got a lot from the talk. That is not to say I took nothing away from the session, I absolutely did. But the talk did not meet my expectations, and that is not because of the presenter, it is because SSMS is not a robust enough tool for data modeling.
I was hoping to learn some tips and tricks for things like reverse engineering a database. Well, to reverse engineer a database you need to do a backup/restore, and then script it out, and then create a diagram, and then…forget it. I have suddenly lost interest. Once again, SSMS continues to disappoint me. Why do I continue to expect it to do so much more than it does?
The second session was on Visual Studio Team System for Database Professionals. Our shop has struggled with an effective software development lifecycle (SDLC), so this session was vital for me today. Overall, I think the product is heading in the right direction. There is a definite need for developers to have a “sandbox” to play in, and VSTS provides the sandbox. It also provides a means to build scripts that can be used to deploy changes, and it also allows for refactoring. That is to say, it does a check to see how your changes will affect other areas of your system, but only on the database side, not in your application code.
I left the session feeling good about the product, but I had a few questions and luckily happened to engage a colleague in a discussion of VSTS. Turns out, my concerns are not minor, and there are other issues I had not considered. First, the scripts do not include the GRANT statements for permissions. That is going to be quite a headache going forward. Second, if the database has a large schema it can take some time to extract the schema to the database project (i.e., the sandbox). Third, many of our apps are spread across multiple databases. That means it would be necessary to extract all of the schemas involved in order to use all the functionality of VSTS (unit testing, refactoring, etc.). This will significantly increase the scope of these database projects, making a robust tool more of a monster than it should be. Then again, maybe it is just a true reflection of the system that has been developed.
At this point, I think the best way to have changes migrated along the chain would be as follows. Start with your baseline dump from prod to development. Use VSTS to build the sandbox. When ready, deploy the changes to a fresh copy of prod located in test. Conduct all of the unit and user testing necessary. When the time comes, do a diff on the objects between prod and test, build that script using a tool that will keep permissions intact (say, Apex Diff), and apply that script to prod when the time comes.
In other words, there is no one magic application that will solve what we need. Instead, it is a combination of tools, along with some general common sense, that needs to be done in order to have a more complete SDLC.
The third session was one for professional development, given by Andy Warren. I found the information very useful, as I am always trying to improve myself as a database professional. Not just technically, but also as a manager of people and as someone that needs to be able to communicate with a diverse group of customers.
The last session of the day was one on XML, specifically the use of XQuery. This was the most disappointing session of the day. The presenter was very knowledgeable on the topic, but he tried to put ten pounds of flour into a five pound sack. He glanced over some of the very basic concepts, which was okay since it was a 400 level session. However, the swiftness continued through what I considered to be the more advanced topics. I chose this session because my level of expertise on the subject is quite low. So, perhaps I was in over my head a little. But the materials did not use terms or syntax that was all that unfamiliar, I guess I just wanted a little bit of time to process what was being said. Instead, we kept bouncing to the next slide, or to a demo, and I never really absorbed the sentences being spoken.
Many people around me seemed to be somewhat lost. The guy immediately behind me was the only person that managed to interact with the speaker, and when he did he spoke with an accent, so I know he must be smarter than me anyway. He had to ask the presenter to scroll up to better demonstrate the difference in syntax between two statements. The presenter tried to explain the differences, at which point the gentlemen simply said “okay, now my head hurts”. Hey, if he was struggling, then I guess I shouldn’t be too concerned about my inability to keep up with everything. It just seemed as if we were always a few seconds behind, and the presenter either did not care, or was simply unaware. In the future, I hope they have him present again, but give him a full day pre-comference seminar for all ten pounds.