Doug Lane

SQL Server Entertainer

  • GitHub
  • LinkedIn
  • Twitter
  • YouTube
  • Blog
  • About Doug

Meme Monday: Working with Deadlines

February 6, 2012 by Doug Lane

In response to Tom LaRock’s Meme Monday, I’m writing about working with deadlines. I’m going to take the developer approach and talk in terms of new project deadlines.

My favorite approach to working with deadlines is to take control of the time. Deadlines are much like a line on a graph where time (the x-axis) and scope (the y-axis) intersect. Time and scope have a direct relationship — as scope increases, so does the time necessary to complete the items in the scope. Usually only one of the axes is negotiable. I’ve found the most common scenario to be, “We need a solution that can do this, this, and this. How long will that take?” Rarely have I heard the opposite, “We have this much time. What can we build in that window?” It’s up to me to answer how long the given feature set will take to build and deploy. In other words, I have control over time, not scope.

Before I go on, I must confess that even after years of software development, I am a dreadful estimator of project time. I often fail to consider adequately the interruptions and other projects that will forestall what I’m working on. It’s like the difference between the first time I played golf and the second: noticeable improvement but still horrendous.

My time estimates were totally unreliable until I picked up a book by Steve McConnell called Rapid Development: Taming Wild Software Schedules. In it, I found a truly golden section on time estimation that includes the following passage:

At the time when developers are typically asked to provide a rough estimate, there can be a factor-of-16 difference between high and low effort estimates. Even after requirements have been completed, you can only know the amount of effort needed to within about 50 percent, and by that time most organizations want their estimates to the dollar.

In other words, take your best guess of time, make 25% of that number your best-case scenario and make 400% your worst-case scenario. As you get further along in the project, you can refine your estimates down because there are fewer unknowns that can be introduced. Also, your estimates become more reliable as the project nears completion because people are reluctant to add/change features that will affect the deadline. If features are introduced later on, you can try to reject them citing the effect it would have on time. More likely, you’ll have to renegotiate the timeline (which I’ve found to be easier and more agreeable anyway). Another point mentioned in the passage above is that organizations typically expect far more precision that you are in a position to deliver at that time. If you relent and give a date certain when you yourself are not certain, you’re gambling you can come out on the low side of the estimate funnel, which if you subscribe to this process, gives you only a 50-50 chance of success.

Scotty in Star Trek IV: The Voyage Home (startrek.com)
"A deadline? How quaint."

If compelled to give a date certain, do yourself the favor of selecting the worst-case scenario at that time. In Star Trek III, Scotty confessed he did exactly that (multiplied his repair estimates by a factor of four) to keep up his reputation as a miracle worker.

The range estimate method has worked wonders for me. People understand there is uncertainty in the development process and actually appreciate that I don’t throw out a specific date haphazardly. Being honest about the variability of time required also frees me from the looming specter of a date I was never sold on in the first place. As the project progresses, I give updates with narrowing ranges, until the very end, when I can say we’re ready to go live with the project next Tuesday.

I highly recommend you give this method a try when time is negotiable. I’ve found it results in more realistic expectations and deadlines. By taking control of project time, you make uncertainty a natural and acceptable part of the process, rather than struggling futilely to eliminate it.

Filed Under: Career, Meme Monday

Meme Monday: Just One Christmas Wish

December 5, 2011 by Doug Lane

Tom LaRock (b|t) is back with another Meme Monday, and this month the meme is, “What gift do you want Microsoft to leave for you under the tree this year?” My gut reaction was to ask for a 70-448 exam that didn’t ask loads of questions about troubleshooting and features so problematic that no one actually uses them. (No, I’m not bitter I failed this exam twice. Not at all.) But such a wish would be a little too self-serving; I want Microsoft to bring me something that will benefit a much wider audience. So, for the greater good, here is my wish:

Deliver me a version of SQL 2012 with all the BI features enabled and 100% detached and independent of SharePoint.

Microsoft has made life considerably more difficult for the BI specialists of SQL Server by requiring SharePoint for features like PowerView. If we want to set up a virtual machine to try out these new features, we have to know how to implement and maintain a SharePoint instance, something that is difficult and usually done by a full-time, dedicated SharePoint resource. Furthermore, if we want to deploy these features, it means considerable expense in terms of licensing, setup, and an administrator. A SQL Server BI deployment is now a SQL Server + SharePoint deployment.

What PowerView without SharePoint would feel like.

I’ve often said that Microsoft wrongly equates enterprise reporting needs with enterprise needs (with data-driven subscriptions at the heart of that argument).  Now it seems they are equating effective BI visualizations with document sharing and collaboration. Turn off the sharing aspects of PowerView while preserving users’ ability to explore data visually. Deliver it through the existing Report Manager web UI. Give me an independent version of SQL Server 2012 and you’ll be giving me the power of the new BI features without the cumbersome, expensive, and unwelcome burden of a SharePoint environment that clients neither need nor want to bear.

 

Filed Under: Meme Monday

Meme Monday: What #SQLFamily Means To Me

November 7, 2011 by Doug Lane

Contributing to Thomas LaRock’s Meme Monday, I offer my thoughts on #SQLFamily in haiku form:

Family of friends
bound by passion, vision, love.
Success is cheered on.

I know this doesn’t exactly fit the meme since I’m not explaining what #SQLFamily means, but what I wrote should at least make it evident why #SQLFamily is meaningful.

Filed Under: Meme Monday

PASS Summit 2011 Recap: Super-sized!

October 21, 2011 by Doug Lane

Set the Wayback Machine

It was a year ago, October 2010, when I first decided I wanted to go to the PASS Summit. I asked for my company to cover the costs, and I was denied. I could hardly blame them – requesting $3000 on four weeks’ notice was asking a lot. Plus, I was hitting a rough patch with my job and not doing my best. So, from my desk at work, I watched the stream as Tina Turner kicked off day one of the Summit. I was bummed out.

But I was also motivated.

I made definite plans to alter the course of my career. I decided to take my career seriously by:

  1. Becoming a better student of SQL Server by learning more and getting certified.
  2. Getting into blogging and presenting.
  3. Going to PASS Summit 2011, with or without company support.

Over the next year, I made significant progress with the first two goals – I earned one MCTS and narrowly missed a second, blogged a little, and delivered five presentations.

When the call for speakers opened up for the 2011 Summit, a lot of prominent figures in the SQL community were encouraging people who had never submitted before to do so. I submitted four regular session abstracts for the Summit.

All four were rejected.

I took it the rejection hard because I didn’t get any reason aside from there were already enough Reporting Services sessions chosen. I got over it by the time another call for speakers came, this time for lightning talks (five-minute sessions). I submitted two abstracts. One was accepted (“The Two Most Powerful Properties for Dashboards”), and I was elated. I was going from a SQL nobody to a PASS Summit speaker in just one year.

SQL Saturday and the Portland 10k

Friday, October 7

I opted for the bonus size Summit experience this year: SQL Saturday in Portland, a 10k race, two pre-conferences, and the three-day conference.

At the Portland SQL Saturday speaker dinner, I was reunited with old friends Bill Fellows (t), Jes Borland (t), Buck Woody (t), Allen White (t), Tim Ford (t), Dev Nambi (t), Yanni (t) and John Robel, and Erin Stellato (t), among others. I got to meet Arnie Rowland (t) (great guy) for the first time and received a thoughtful speaker’s gift — a Logitech presentation remote.

I slept terribly that night.

Saturday, October 8

SQL Saturday. My session, “Developers are from Mars, Report Servers are from Venus” was scheduled in the best time slot: 10:15-11:30 (late enough that more people have trickled in, early enough that brains aren’t full yet and the audience can still focus). I had the pleasure of not only presenting to a mostly full room, but also having several SQL buddies in the audience. Kendra Little (t), Bill, Allen, and Jes got to see me present for the first time. The session went very well, although Bill had to prompt me kindly (and with the subtlety of a derailing train) to give away swag.

As the day went on, it became apparent that the air conditioning in the building was programmed to not run on the weekend. However, by the time I sat in on Jes’ Reporting Services session, the auditorium had become a sauna. In the last time slot of the day, I think I saw one attendee at Bill’s session finally ignite. Another may or may not have melted into the floor. I don’t really remember; it was so hot I may have hallucinated. (Note: Bill knows his stuff when it comes to SSIS. Some of what he presented, I heard repeated in other sessions at the Summit.)

After a brief stay at the after-party, I headed back to the hotel to get a good night’s sleep for the big day ahead. I didn’t sleep well.

Sunday, October 9

On a cold, slightly drizzly morning, I jogged over to catch the charter bus to the 10k start. Our registration e-mail said there’d be a bag pickup. At the starting line, we were told there was not a bag pickup. Enough icy stares from the athletes prompted the race director to hastily create a bag pickup.

For this race, I had trained consistently, at altitude, for about eight weeks. I trained at a 7:00/mile pace but considered that to be wishful thinking. A 7:30/mile pace seemed more realistic.

I focused on staying close to a guy who resembled a hardcore Kenyan speedster. After the first 300 meters, I passed him and never saw him again (so much for appearances). I ran the first mile in 7:00. Fast, I thought, but I knew it was probably adrenaline-fueled and I should expect to slow down. The second mile was mostly downhill and when Runmeter told me I’d done it in 6:27, I was not really surprised. By the end of five miles, I was feeling the hurt. It helped that the final 1.2 miles tracked past a cheering crowd. I kicked with about 200 meters to go and finished in 43:34, a 7:02 split.

I ran and skied cross-country in high school. I used an old trick from my racing days to my advantage on Sunday: tangents. By anticipating curves in the course and running the tangent lines, you can shave off waste distance from the course. Based on Runmeter’s stats, I sliced sixty meters off the course by running in long, straight lines. I don’t care if I’m not young anymore as long as I’m still crafty.

With a handful of other SQL runners, I took the Amtrak line to Seattle (I highly recommend it — way less fuss and more comfort than air travel. Bottles over 3.5 ounces are not hunted like fugitives by TSA agents and legroom is not measured for reasonableness using pygmies as a standard)

Bill and I checked into the Sheraton, and promptly went to bed.

(Went to sleep in our respective beds, that is.)

Probably due to excitement about the week ahead, I slept badly.

PASS Summit Pre-Conferences

Monday, October 10

Upon waking, my first thought Monday morning was, “Holy S#!t, I’m actually at the Summit!”

I went to the pre-con, “A Day of SSIS in the Enterprise” presented by Andy Leonard (t), Matt Masson (t), and Tim Mitchell (t). Of all the presentations I have seen in the last year, this was the gold medalist for both execution and content. I got more ready-to-implement ideas and advice from this session than from all the others I attended at the summit combined. It was that good. (Once more for the Program Committee: it was that good.)

I was especially impressed by how the three presenters handled questions. One would give an answer, then another would add a thought to it, then the third presenter would wrap up the answer with their own insight. When they disagreed with each other on a design choice (e.g, file system vs. SQL Server storage for packages) they stated their respective cases. As a result, the audience was treated to multiple points of view on many issues that SSIS developers confront.

I wouldn’t ordinarily comment on lunch — conference food is remarkably unremarkable — except that lunch on this day was incomplete. Somehow, the caterer for Monday’s lunch ran out of chicken. That’s not a big deal, unless there’s no other meat alternative, which there was not. Curry tofu (think stale marshmallows hit with pepper spray from across the room) was the only other meat-like item. Lesson for the day: don’t wait until the fifty-fifth minute of a sixty-minute lunch to go get food, or just eat out.

In the evening, I went to the party at Lowell’s hosted by Steve Jones (t) and Andy Warren (t). I met a lot of new faces there and caught up with more acquaintances, including several SQL Cruisers. I got there early enough that I scored a free dinner, which was positively delicious. Later, it was off to Bush Garden for karaoke night. I sang “One Week” by Barenaked Ladies — my anchor song — and “Only the Good Die Young”, which was awful. On the way back downtown, Jason Strate (t) walked through a foot-deep fountain, to no one’s surprise.

I got back to the hotel around 2:30 a.m. and attempted to sleep. Generally speaking, I failed.

Tuesday, October 11

It started to catch up with me that I hadn’t slept a lot the last few days. It didn’t help that I was signed up for a second pre-con, Stacia Misner’s (t) session “MDX, DAX, and DMX: An Introduction to the Languages of BI.” I didn’t get as much value out of this session for a few reasons:

  1. Exhaustion was beginning to take a toll on me.
  2. The session was heavily weighted toward MDX (about six and a half hour’s time) and I was more interested in DAX (one hour’s time).
  3. I just don’t learn as well if I’m looking at code in SSMS. I do better with demos or slides.

Just the same, I’m eager to see another of Stacia’s sessions. This one ended up being a little light on DAX and MDX, that’s all.

Welcome Reception

I’ve heard PASS is trying to make the first-timer’s experience a more inclusive and more appreciated one. One thing they did was pretty special in that regard.
Although I didn’t participate in the networking or big brother/sister events for first-timers, I went to the conference center for the welcome reception. While standing outside the ballroom chatting with friends, I ended up getting herded into a large conference room adjacent to the ballroom. We all stood around, lined up in front of a doorway, awaiting instructions and knowing something was up. The screen at the front of our room lit up with the image of Rushabh Mehta (t) on stage. He welcomed the crowd, then spoke about how exciting it was to have so many first-timers in attendance this year. With that, doors opened in front of us and we entered the ballroom to a Super Bowl-like introduction: stage lights, fog machines, and a crowd lined up along the red carpet. I loved the entrance and the feeling of being a superstar, if only for about eight or nine seconds. Well done, PASS.

The rest of the night in short:

  • Red Gate/SQL Server Central casino and award party for Jeff Moden, Exceptional DBA for 2011.
  • More karaoke at Bush Garden – lots of locals in the bar so a lot more songs in the queue. I murdered ELO’s “Mr. Blue Sky”. Mark Vaillancourt (t) learned the hard way to never sing “White Christmas” – it repeats. And repeats. And repeats.

I finally got a passable night of sleep.

Wednesday, October 12

Finally, my first SQL Run. Bill and I got down there just as the crowd was leaving. I was pleasantly surprised at the size of the group — close to forty runners. I hope this tradition keeps up, and I hope I’m not so sacked next time around.

I was fortunate to be given a spot at the blogger’s table for Friday, and an invite to sit in the reserved section directly in front of them on Wednesday and Thursday. The Wednesday keynote was going along well enough until…Contoso Frozen Yogurt.

The Blogger's Table at the 2011 PASS Summit
Yogurt jokes at the ready.

I had held back mocking any of the BI enhancements until they stated that according to their data, “Kids love frozen yogurt.” I won’t repeat the tweets here, but the blogger section had a lot to add with tweets about Dateline’s “To Catch a Predator” and “FREE YOGURT” spray-painted on the side of a van. Lesson for Microsoft: run your demos by someone who can tell you if they’re ripe for mockery.

After the keynote, I couldn’t fight it any longer — I went back to the hotel and took a nap. If the lesson isn’t obvious by now, I’ll state it: pace yourself at the Summit.

Jessica Moss’s (t) HIPAA session was great, except when my phone rang out loud. (If you own an iPhone 3G or 3GS, the ringer toggle sticks out far enough that a shift in your pocket can switch it back on, which is how I got burned.) It wrapped up in just under an hour, so I headed over to catch the end of Jes Borland’s talk. Based on what little I saw of that session, she handled her first PASS Summit presentation with ease. Keep your eye on Jes, people. She’s a SQL superstar in the making.

The remainder of the day:

  • Bradley Ball’s (t) excellent lightning talk incorporating the show “24”
  • SQL Cruise meetup & thank yous to sponsors
  • Speaker appreciation party
  • Bush Garden – “One Week”, “Amish Paradise”

Thursday, October 13

A better opening presentation this time, followed by an outstanding Matt Masson session on what’s new for SSIS in SQL Server 2012. Before Monday, I hadn’t heard Matt Masson present. In fact, I hadn’t heard of Matt Masson at all. Matt is now on my list of must-see speakers. An illustration why: when I walked into the room, he was killing time before the session demonstrating how he could use SSIS to separate his Facebook friends from his frenemies, who were — as he put it — all plotting against him. He’s very funny and very sharp.

Later, during this session, a most incredible opportunity presented itself to me.

I was watching Twitter and posting useful tidbits from the session when, around 11:00, I saw Allen Kinsel (t) trying to fill in a last-minute cancellation for 1:30. I’ll let my Tweetdeck stream tell the rest of the story (note: tweets show MST, so subtract one hour for Seattle time).

That’s right, I jumped in and gave a regular session with less than two hours to prepare it.

In fairness, I should mention a few facts:

  • The session I gave was one I’d given five times before, including SQL Saturday just five days earlier. I had already put about seventy hours of development and rehearsal time into it.
  • Like less experienced musicians performing an adagio piece, I rushed.
  • I got a mere one or two questions during the session, so I finished in only forty minutes. I was slotted for seventy-five minutes. I ended up answering questions for another fifteen minutes afterward.

I spent the two hours’ prep time re-styling the deck — all eighty-eight slides — to the PASS Summit template, changing white text to black, and adding zoomed-in screen shots to account for the depth of the room. I also spent that two hours trying to prevent my heart from launching out of my chest cavity.

It was a thrilling, terrifying, and euphoric experience being up on that stage. I had wanted achingly for months to give a full session at the Summit and because I recognized I was at the intersection of opportunity, preparation, and damned good luck, I did it.

My view from on stage
Terror at 36,000 x 10^-4 Feet!

That night, my body began to revolt against its perpetual tiredness. I had dinner at Elliott’s with the Denver SQL User Group. I was happy to see we had over thirty people turn out — a healthy gain over last year’s ten or so, from what I heard. I stopped by my hotel lobby and had a long and thoroughly enjoyable chat about politics with Mike Walsh (t), who was very civil and open-minded.

As I went to bed, I reflected not only on the speaking experience, but also on how supportive my SQL Server colleagues — my friends, really — were in helping me get that session not only noticed and accepted, but also filled with attendees. Take another look at the Twitter stream above. The longest I have known anyone in that stream is eight months, and yet they all were publicly pulling for me to succeed.

Truly, this is community.

Friday, October 14

Honestly, the rest of my 2011 PASS Summit was a blur. Dr. Dewitt’s keynote on the worlds of structured and unstructured data helped me, and I suspect a lot of others, understand what’s going on on the other side of the data fence, and how we shouldn’t ignore the importance and interconnectedness of our collective backyards.

The lightning talk went well, though again, I rushed. I talked about how framing matters with dashboards, using signed photos of donkeys as examples. (The photos were not signed by the donkeys themselves — that’s ridiculous.) Once my lightning talk session was over, I said my goodbyes, rolled my suitcase onto the light rail, and flew back to Denver completely wiped out.

What I Learned

For my presentations, I have a lot of useful feedback to learn from. I intend to put it to good use and improve on my performance as a speaker. I have feedback to share with you as well: some suggestions for the Summit that I learned from this year’s event.

Do:

  • Pace yourself. Get enough sleep early in the week so you aren’t dragging come Friday.
  • Bring business cards with your Twitter handle on them. If you don’t have a Twitter account, get one and get active with the SQL community.
  • Use a real portrait photo of you as your Twitter avatar. You’ll be more memorable to others.
  • Go out for lunch somewhere unique to the host city. Let’s be honest, convention food has a low ceiling for taste. In Seattle, there’s fresh seafood all around and it’s gooooood. Go get some.
  • Attend as many off-hours activities as you can handle. This is where friendships are forged. Whether it’s a morning jog, morning prayer, or (technically speaking) morning karaoke, people want to connect with you through these activities.
  • Stay in a hotel a reasonable walk from the convention center. Being able to get back to your room quickly and ditch your swag/change clothes/take a nap frees up more time for the fun stuff. Plus, a lot of people hang out in the lobby or the bar. You want that to be your lobby, your bar.
  • Bring a power strip with a long cord. Six feet is okay, twelve feet is fabulous. Outlets can be a long way from where you end up sitting. One of the recommendations for next year is to have power strips for pre-con attendees. That’s great, but how will you stay juiced during the actual conference? You’ll need a power strip with a long reach, so come prepared.
  • If you want to present a regular session but aren’t an official alternate, be an unofficial alternate. I was amazed to hear how quickly PASS burned through their alternates. As a lightning talk speaker, I had access to the PowerPoint template. I could have styled my presentation ahead of time and used the prep time that day to rehearse. Next year, if I’m a speaker I’ll have a second deck ready and styled. You should too. Even without the official template, you can still make sure your deck and demos are ready for a large room and audience with ZoomIt or zoomed-in screenshots.
  • Buy the DVDs. You can’t be everywhere and see every session. Or can you? You can, and for the bargain price of $125 + shipping and handling. ORDER NOW! (Update: the $125 price was valid until the end of the Summit. The current price for attendees is $195 — a great deal just the same.)

Don’t:

  • Bring dress clothes, unless you have a specific reason. I wasted baggage mass on a nice shirt, pants, and dress shoes. You’ll be on your feet so much, you’ll want good walking or running shoes to keep your feet happy. Also, the Summit is CBC on the dress compass: casual-business-casual, close to due casual.
  • Spend any time in your hotel room unless it’s transition time or you need a nap/shower. Unless there’s a networking event going on in your room, all the action is going on somewhere else. Use your hotel room for sleep and refreshing.
  • Forget to turn your phone off before a session begins. Don’t rely on a mute switch — turn the ringer volume down to zero instead. That way if the switch flips accidentally, the ring still won’t be audible. If you leave your phone on, or worse yet — answer it, the audience will judge you. Oh, how they will judge you.
  • Feel like you have to attend a session in every time slot. Your brain will start overflowing mid-day Thursday if you’ve been pouring session after session into it. Skip one slot here or there and go talk with other people, see the vendor exhibits, or reflect on what you’ve learned so far. Buy the DVD’s if you’re afraid of missing out on something. (Remember, I told you to ORDER NOW!)

In closing, I’m grateful, truly grateful for the adventure I had at this year’s PASS Summit and to the people who helped it unfold as it did. I got to reconnect with old friends, make a lot of new ones, and scratch the year-long itch to be at the world’s largest and greatest SQL Server conference. I got the opportunity to present twice (which I have to believe is an extremely unusual occurrence for a first-timer), and enjoyed every second of it. I can’t wait for the next adventure to begin.

Filed Under: Career, PASS Summit, Presenting

T-SQL Wednesday #21 – Wait For It…Wait For It…

August 10, 2011 by Doug Lane

T-SQL WednesdaySometime in 2004, I had to revise a well-established import process that was clogging up the production SQL server with gooey slowness. The size of the data we were loading had grown dramatically since the process was last modified, and the server was overburdened.

At the time, I really only knew SQL syntax and a handful of basic commands you might see in Access: SELECT, INSERT, DELETE, and maybe PRINT. Basically, I was no more educated in T-SQL than an Office power user. Armed with what little I knew, I had to make our server responsive while this process was running. I opened the script and began to search for something, anything, to tweak.

After a lot of staring and head-scratching, I found something. A command that would ease up on the gas.

I began throwing this command everywhere I could in the hopes it would throttle back the process. I ran the process again, and it worked beautifully. No longer was the server unresponsive while importing these large data sets. Outstanding.

What command did I use, you ask?

I found a single instance of WAITFOR, sitting innocently at the end of the loop. That’s right. In a loop. Assuming this to be a magical command, I proceeded to  stripe the code with WAITFORs everywhere. Inside a loop, which was really a CURSOR. That sat inside a CURSOR. Which sat inside another CURSOR. (Are you vomiting yet? I’m nearly there myself.) Performance was abysmal — “We’ll let it run overnight, maybe it’ll be done by morning,” — but I had freed up the server.

I had traded a problem I couldn’t tolerate for one that I could.

At the time, I wasn’t really interested in learning T-SQL (or anything else about SQL Server for that matter). It’s therefore perfectly reasonable that I would be okay with exchanging one problem for another. Doing so required no development on my part. Solving the problem, however, would have meant learning about performance tuning and best practices.

I wouldn’t want to revisit that code; I know it’s awful (and hopefully no longer in use) and I wouldn’t get much satisfaction from rewriting it. I’m just happy knowing I don’t trade problems anymore. These days, I much prefer to solve them.

Filed Under: T-SQL Tuesday

  • « Previous Page
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • …
  • 8
  • Next Page »

Subscribe now!

Don't miss new posts as they publish. Enter your e-mail address to subscribe!

Your e-mail address will stay quietly between us, like that time I set the carpet on fire by accident.

Copyright © 2025 · Outreach Pro on Genesis Framework · WordPress · Log in