Oct 20 2014

Database Lifecycle Management

There are lots of people who talk about Application Lifecycle Management. But, the database is a major part of every application and if you do a similar search, there aren’t very many people talking about Database Lifecycle Management at all. Why not? I’m positive you’re deploying a database with your applications. I’m also positive, because of the unique problems that databases present, primarily around data persistence, that you need to think about how to get your database(s) deployed. Unfortunately, even for strong, capable data professionals, deployment is something thought about later. Or, you’re still doing the old school method of waiting until there’s a deployment script that you’re going to review, line-by-line, before you run it against production. There’s a better way.

What you need to do is start thinking about mechanisms for automating your database deployments. This means getting your database into source control to start with. Yes, your database in source control. Right along side the application, getting versioned with the app, labelled and branched with it. This is fundamental to your automation because if you don’t know what’s getting changed when, you can’t automate anything. Then, you want to set up mechanisms to start testing your database, both the behavior and the deployment. This means taking advantage of all the work done by our dev peers on continuous integration (CI) using a CI server to automate builds and tests from your source control system. You can also use some the tools and methods around unit and behavioral test automation. Finally, once you get through these mechanisms, you can explore going for full blown continuous delivery or even continuous deployment by automating your processes using a deployment manager.

You need this, because if you want to have smooth, accurate, successful builds to production, you don’t want the production server to be the first place you run your deployment script. You want to test that thing, 5, 10, 100 times before it gets to production. And you do this through automation.

Interested? Steve Jones and I are going to be talking about this, in detail, and at length at the SQL in the City event in London coming up this Friday, October 24. We’ll also talk about query tuning and other topics. But, if you want to really explore database deployment automation and begin to get your database deployments under control and more tightly integrated with your application code deployments, then come on down so we can discuss this.

Oct 17 2014

Why Haven’t You Changed Everything?

The first in what I hope will be many regular reports on what I’m doing on the PASS board.

To answer the question that I’ve already been asked (who had 47 hours in the pool?), first, I’m not on the board yet. I was elected to it and my term starts in January. So, don’t expect a lot in the way of ongoing structural changes at the organization instigated by me. Second, I’m the lowest of the low on the board (after I’m actually on the board), so I won’t be making a whole lot of changes at all (whether I wanted to or not). Third, the board is a board, a bunch of people, who get to vote on things, so even if I were able to call a meeting (I’m not) and I had some grand idea for rearranging the Summit (I don’t), I’d still have to get a majority on the board to support what I wanted done. Fourth, on the board, different individuals are responsible for different aspects of the PASS organization. These aspects are organized into what they call portfolios. The portfolio I’ve been assigned (yes, assigned, and I so wanted the “Drink Tickets at Summit” portfolio), is Chapters. So, I won’t be tasked with rearranging SQL Saturdays or whatever your favorite issue might be. Instead, I’m going to be working with the people running your local user group, the regional mentors, and the HQ people responsible for everything around Chapters. Oh, and, a healthy chunk of the decisions for direction in 2015 for this portfolio have already been made. You can read about the portfolio direction for 2015 on the PASS web site (in fact, if you are interested in what’s going on at PASS, you should read all the portfolio plans).

So no, I haven’t, and won’t, change everything. I’m learning about what I can and can’t do as a board member (and what I can do, I still can’t do until January). If you have ideas for things you’d like to see PASS do for the Chapters, I’m open and interested. I have a couple of ideas of my own that I’m going to push for. More on that once I’m actually on the board. I’m writing this just a couple of days after the election, and I’ve already been on multiple phone calls with other board members, getting a handle on this job AND I HAVEN’T EVEN STARTED YET. In short, please, let’s set some reasonable expectations (and no, I haven’t drank any kool-aid, haven’t even been offered any yet).

Expect another blog post after the Summit.

Oct 16 2014

Query Performance Tuning in SQL Server

I have a pre-con coming up at the PASS Summit. You can read about it here. I named it “Query Performance Tuning in SQL Server 2014″ because it seemed like a good idea to bring out the aspects of 2014, and we will. But, I need to tell you, this is primarily a session about query performance tuning in SQL Server, full stop. I’m going to cover information that’s applicable all the way back to SQL Server 2000 and 2005. The majority of the information will be applicable to 2008 and up. I’m going to go over the things you can do with dynamic management views to pull information about queries to tune right out of the cache. That’s applicable to more than 2014. We’re also going to go over how and why you should use extended events to more accurately, with less load, capture query metrics on your systems, 2008 on up. We’ll be covering all sorts of common query problems and mechanisms for getting around them so that you’ll be able to fix your code at home. Through it all we’re covering the optimizer, statistics, indexes, constraints, query best practices, pretty much all the things you need to tune your queries.

So, don’t get hooked on that name. Yes, we’re also going to be going over some of the changes to the cardinality estimator and we’re going to discuss in-memory tables and queries and I’ll show you information about updateable columnstore storage. But really, the 2014 stuff is icing on the cake. The majority of the work is going to be good old fundamental query tuning.

If that name has been putting you off, please don’t let it. Go here, register for this event. There are a few seats left.

Oct 15 2014

Thank You: #passvotes

The results are in and it seems that I’ve been elected to a place on the PASS Board.

Thank you.

I will strive to be worthy of the position you’ve placed in my hands. I will do my best to make a difference on the board. Watch this space for regular updates on what I’m doing as your representative. If you don’t see updates here, feel free to call for them. It’s the one promise I made during the election and I think you should hold me to it. Worth noting, I’ll be speaking for myself, as a member of the board, not as an official spokesman for the PASS organization. It might be a distinction without a difference, but it’s worth noting.

Thank you to Sri Sridharan for your service on the board. I’m sure you’re going to be missed.

Congrats to JRJ and Wendy for getting reelected. You’re making a positive difference and I’m glad it’s going to continue.

Thanks again to all who voted, whether you voted for me or not. You’ve done your part to influence how you want the PASS organization to be run. Now, please, hold the board responsible for doing what you want with your organization.

Oct 12 2014

Navel Gazing

I love negative feedback. Well, not really. I love constructive feedback. I love the feedback that gives me things to think about. Am I presenting the right material? Am I presenting it in the right way? Can I improve? But, in order to get constructive feedback, people have to tell you that something you’re doing, or not doing, isn’t working. That’s frequently taken as negative feedback, but it isn’t. Let’s explore this.

If there’s a feedback form for a session. It says that 1 is bad, 5 is great and you put a 1, or 2, you didn’t like the session. But, if you don’t leave a comment, that’s just negative feedback. If the comment is something along the lines of “You suck.” That again is negative feedback. But, if you say something like “You suck because I don’t like the way you were trying to teach/you had too much humor/your delivery was too dry/your slides were uninformative/all your demos failed” Something. A reason. Then, that’s constructive feedback. The speaker can then evaluate if there is room for improvement in their craft in order to address the needs expressed.

I recently received some feedback from someone who was quite unhappy with my teaching style. Seems I asked the audience too many questions, trying to prompt them to guide me down the path that I was going to take anyway. This person felt that was taking up too much time and assumed a level of knowledge that the audience didn’t have. That’s great feedback. It is something that I do. Instead of just telling you each step I’m going to take, especially in a pre-con, I’ll ask the audience to supply information, but, it’s based on all the things I’ve already taught, so I’m not exactly springing it on people out of the blue. However, I can see where too much of that, too often, or too early, could cause people to not like it. Also, since people will suggest solutions that might not be accurate, they could feel embarrassment from that. Got it.

Thank you anonymous individual who took the time and trouble to tell me why they didn’t like the presentation. I will try to adjust what I do and how I do it based on this good constructive feedback.

Please, take this into consideration when you fill out these eval forms. Heck, if you loved a session, tell the presenter why so they can continue doing the good things.

Oct 09 2014

Speaker of the Month: October 2014

I saw a whole bunch of great sessions last month. I was all over the place from Las Vegas to San Diego and then Antwerp and Utrecht at Connections, two different SQL Saturday events and SQL Server Days. The speakers just seem to keep getting better, making this more difficult. But, I was privileged to see someone’s very first time presenting and he did a great job. My speaker of the month is Enrico van de Laar (LinkedIn, Twitter) and his session No More Waiting – An introduction to SQL Server Wait Statistics.

Let me say up front, I messed up his plans when he asks right at the start “Is there anyone here who doesn’t speak Dutch?” and I was the lonely hand going up in a room of about 70 or so people. But, he bravely soldiered on and gave the presentation in English. And it was a good presentation. He had very good slides. I especially loved the triangle that showed the relationships between the generic types of waits. It really summarized the topic extremely well. His delivery was extremely clear. He used Zoomit appropriately. The demo’s were well constructed and really showed off the points he was driving home. And I was impressed with his approaches. Baselining in order to “know what’s normal” is exactly how I put it. The solution to parallel execution isn’t MAXDOP, but the Cost Threshold. It was an excellent presentation and I loved it. Even more so when you consider it was his very first time presenting.

Nothing is perfect, unfortunately. I talked to Enrico after the session and shared these critiques. First, it was short. He ended about 20 minutes early. Believe me, I know the feeling. I too ran out of material my first time presenting at the PASS Summit and had to spend 15 minutes making stuff up on the spot. We talked about it. Enrico has some great ideas for expanding the session out a bit. He also had some small fonts on a few of the slides, which made things hard to see, especially for old blind guys like me.

It was a very good session, again, doubly so because it was his first time presenting. I was quite blown away by Enrico and his presentation. Nicely done.


Oct 02 2014

The PASS Board: #passvotes

Ever been in a fight? Ever been in one that’s not completely going your way? I’ve done this and seen this in the martial arts and, unfortunately, on the street. As you start to lose the fight, you tend to fold in on yourself. It’s a natural reaction. You’re protecting the vital organs from injury. But, in a fight, it’s actually the wrong thing to do. This is referred to as the defensive crouch. Watch some videos of MMA or fights on the street, or even boxing matches. You’ll see it quick. I think the PASS Board is in a bit of a defensive crouch right now.

I am running for the board. And I have pledged myself, both to myself, and to the PASS organization, to run a positive campaign. So this post is not meant to tear anyone down. In fact, I’m hoping that it builds people up.  So please, bear with me a moment.

The Board has made a number of decisions this year that have stirred up the more vocal part of the community. I agree with some of these decisions and disagree with others, but that’s not the point of this post. We’re talking about the defensive crouch. The Board made these decisions in full good faith. If you don’t believe that, why did you vote these people into office? I believe. They’re trying to do what’s right. Sometimes, they’re dead on. Other times, they’re way off. But what seems to be happening is that the pummeling for their decisions is starting to get the better of them. They’re pulling in, shutting down, protecting the vital organs. Wrong approach.

Come one guys. You believe in the decisions you made or you wouldn’t have made them that way. You think you’re doing what’s right for PASS. Whether or not we agree, instead of protecting your organs, stand up. Counter-punch. The Way of the Intercepting Fist. Don’t look at the finger or you’ll miss all that heavenly glory. In short, be proud of the decisions you’ve made, even if people disagree with them. You are absolutely doing your best, good faith effort for this community. I believe that. You believe it. So get out of the crouch and shout it from the heavens.

Yes, there may be outright mistakes made. Fine. Own them and move on. You’re doing great work. We actually have faith in you to do the right things.  Take that and run with it. Once you’re out of the defensive crouch, things will look better. You’ll feel better. You may still get your bottom kicked, but you’ll feel awesome about your own effort.

Everyone else, keep them honest. Hammer them when you think they’re wrong. But please, acknowledge that they’re trying their damnedest.


Sep 27 2014

PASS Votes… A little bit more #passvotes

I am putting up an abnormal Saturday morning blog post in support of the actions taken by the PASS Board last night.

The story so far…

In order to eliminate all the excess ballots (I received 5 one year although I only used one) being sent to eligible members of the PASS organization, a requirement to update your profiles in such a way as to firmly establish one each was implemented. Great idea. Unfortunately, somehow, the communication just didn’t make it out to everyone. And, some people didn’t quite get their profiles updated the right way. Suffice to say, when the ballots when out on the 24th, there were a lot of very disappointed and frustrated individuals, many of them long-time and dedicated members of the PASS community.

The Board then did the right thing. They gathered the information they had at hand. They investigated the situation in order to understand the possible solutions. They implemented a very substantial fix to the problem after they understood the issues they were dealing with  and the implications of the potential solutions. It’s almost like they’re DBAs or something. I’m extremely satisfied with the approach they took and the solution they have proposed. Further, I think you should take these positive and thoughtful actions taken by the board, and it’s existing membership, into consideration when you vote. These are capable and responsible people.

As for myself, as one of the people running for a position on the board, I could easily whine and complain about changing the rules right in the middle of the process. In fact, you do realize that making these changes actually has to be done, not in some arbitrary fashion, but following the laws of corporations as defined by the state of Illinois? Yeah. They can’t just do what they want. PASS is a legally incorporated entity that is required to obey the law in terms of its governance, which radically reduces the choices open to them. They must follow the law. I think a lot of the sturm and drang of the last few days didn’t take that into account in any way, shape, or form. I’ll tell you what I told members of the board:

I recognize that you are in a no-win situation. I will absolutely support any action you decide to take. Regardless of the outcome of the election, I will post no protest or complaint.

Go. Fill out your profile. Vote for the PASS Board.

Sep 26 2014

Development, Leadership, Age

While I was at the VMWare HQ getting some amazing training a few weeks ago, we had the opportunity to meet a large number of “C” level people from that organization and Pure Storage. In addition, they had multiple development and project management leads come and talk to us. All the attention was nice (but it was the information we were receiving that was truly awesome). But part way through the second day I realized something. I was sitting in Silicon Valley. I was talking to, effectively, the captains of industry and their chief lieutenants. And many, most, of them were at or near my age. Wait a second. I thought the Valley was run by teenagers?

I’m constantly told that older people are getting squeezed out of technology by magazine articles. Yet, most of my friends are well past 30 and none of them is hurting for work. I get it, the plural of anecdote is not data. Yet, the accumulation of anecdotes eventually leads to data. And the indications are, senior positions are held by senior people, and yeah, by senior, I mean “old.” Why is that?

Learning a development language is fairly hard work and requires quite a lot of time, way past your average work day. Most of the time, youngsters are doing this, not older people. So, when you’re looking to hire a hot new developer for the hot new language, are you likely to get the lady who is running kids to the ball park after work, or the lady who doesn’t have kids yet and is living, eating and breathing, SooprC00LanguageX? The latter. But, in a few years, you’re not looking at the newest coolest languages any more. You just want your stuff to work. And maybe the older languages are more stable. Now… who gets hired? That’s right, the lady with the kids and the grey hair. Not only is she GREAT at the language, but she’s not at all flighty, brings a lot of maturity and experience to the table, and can help your project move forward in a major way.

Say what you want about older people not learning computers well (and gods above, you should meet my mother-in-law), there are still plenty out there with agile, flexible minds who also bring steadiness and maturity to the table. Yeah, their middle might be slightly expanded, but they’re pretty clearly up to the job. And, anecdote or not, it seemed clear to me that Silicon Valley companies recognized that.

Sep 24 2014

Thoughts on PASS Board Nomination Process: #passvotes

Having very recently gone through the nomination process for the PASS Board, I thought I would share a few things about it. Overall, it was a great experience. I feel that I really had to stretch to meet everything required of me. It was quite difficult to put together all the campaign material. Deciding on who to ask to give you recommendations was also very difficult. All, very much, as it should be. We’re talking about stepping up to run for the board of, essentially, a multi-million dollar corporation. It should be hard to do that. The interview process with the Nomination Committee was also no picnic. Most of these people had already served on the board, so they knew exactly what you, the nominee, was going to get into, so they asked about it. Heck, at the end of the interview process I was seriously questioning whether or not I should have run at all. Again, I think, as it should be. In all, I’m extremely impressed with the entire process, how the communications were done, the documentation, the nomination committee, all of it.

Well done PASS. And, special thank you to the Nomination Committee for all your hard work.

Now, i have a question, why didn’t more people do it?

It’s just me and three current members of the board running for reelection who have applied for the slate. Four people for three slots. Why not more? Are people just not aware of this? Or, are people intimidated by this process (not necessarily a bad thing)? Or, do people just not care? Maybe people think things are running swimmingly so don’t feel a need to rock the boat? I’m actually curious. Win or lose, I thought it was a great experience from which I think I learned a few things about myself. But I expected even more competition from a wider variety of people. I think there are a lot more of you that should be considering this. Next time, you need to run. Yes, you.


Check your email for your ballot which will be emailed at 20:00 GMT.

For more information about me, why I’m running, etc., please check here. For more information about the PASS election, please go here.