We held an in-person SQLSaturday here in Orlando last weekend (Oct 30th). We didn’t organize one last year, there was just too much risk and too much uncertainty, so it felt good to return to something close to normal this year, even in scaled back fashion. I’ve got a lot of notes to share about how we ran the event this year!
The journey started at the end of 2020. We wrote up our plan for 2021 knowing there were a lot of unknowns, but hoping things would improve enough to resume doing the things we used to do as a local group and that included organizing a SQLSaturday. As this year has progressed attendance at our virtual meetings dropped, as did our enthusiasm for having them. Enthusiasm matters a lot when it comes to volunteer work and while I know many of you like the virtual format, it’s just not what I want to do. That narrowed the option list to having an in-person SQLSaturday or not doing one at all, not a great range of choices.
We usually start planning in May with the goal of opening up the event on June 1st for a mid October date. We know we can push that start date out to July 1st, but after that – in a normal year – it’s harder to get speakers and sponsors because of the busy fall event schedule. When I looked at the state of COVID in late May things were looking better, there were no local restrictions, and total vaccinations were still trending up nicely. Here’s a chart from the CDC for Seminole County (population is about 450k) where we have the event:
Thinking that having an in-person event in the fall seemed doable, I had lunch with our contact from the local college that has hosted all of our previous events, something we do each year to go over the plan and any changes or new ideas to either SQLSaturday or the parallel Student to IT Pro event we run. This year they had no idea what the fall would bring – they still had no official guidance as far as planning for their own classes and until that was decided it made no sense to even talk about hosting an event there. It wasn’t a no, it was an honest we-don’t-know. I decided to wait until July 1 and hope that the situation improved, having a strong preference for both sticking with a location that everyone knew and for not paying for space in an uncertain year.
By early July the situation was unchanged. We could wait and hope that eventually the college was a “yes” and then figure out what date might work, or see if we could find space elsewhere. It made sense to look at options and it didn’t take long to determine that free space was going to be difficult to book because no one wanted to deal with having a lot of people on site. I also found out that paid space was hard to find because it was rapidly being booked up, everyone thinking that by October we would be closer to normal. You can spend a lot of time talking to hotels; it’s rarely one call. Eventually I had two reasonable options, one in early October that I would grade as ok, one in late October that was really great. My goal was to stick to October, we’ve always slowed things down in November as people start to focus on the holidays.
At the time I was calling the prices were about the same as always, $500 for a room that would seat 50 to 100 people theater style (that means chairs side by side, you can also ask for classroom or round tables, but they reduce the room capacity). That’s $500 per room, plus a 23% service fee plus 7% local tax (those two combined are what the hotel trade refers to as “plus plus”). We’re tax exempt so we wouldn’t have to pay the 7% tax. AV from the hotel was $375 per room, plus plus. Wifi was not included, basically pay per user. Food was optional but you can’t bring your own food in. Coffee was $55/gallon, pastries were $30/dozen, a boxed lunch was $23-$25, and a seated lunch was $27-35 (plus plus!). My first estimate for four rooms, AV, coffee/pastries, and lunch was around $9,000. Not a good plan.
I spent at least a week wrestling with defining the scope and the options. We typically run 8 to 10 tracks at the college and plan for 250-300 attendees. At $500++ per room it wasn’t feasible for us to do 8 rooms and it seemed reasonable to guess that attendance would be somewhat less than normal (but how much?). Four rooms gave us a max capacity of 200 and also lowered the number of speakers we would need, which in turn lowers the cost. I thought that in the worst case we’d rely on local/Florida speakers and might have some do more than one session, but I also thought we would get some from out of state. Aiming for 20 instead of 50 seemed like the right direction. Paying $375 per room for AV was just too much, we could borrow or just buy projectors, with the biggest pain point having to set them up and tear them down (at the college it’s all just there, no effort). Interestingly there was no requirement to sign a contract that included hotel room nights, they treated them as two different things – be super wary of having a room commitment, it can really change your financial risk.
The real sticking point was the food cost. Normally we provide coffee and donuts and bananas at no cost and ask attendees to pay $10 for lunch. If we went with lunch on site we would have to ask for $25-30 per person for lunch. How many would pay that? We normally provide lunch for speakers, so we have to add that cost in. The hotel won’t let you wildly adjust the number either, you’re committed to x meals. One way was to just offer it as an option and see, the other was to just send everyone out for lunch. We’ve always had lunch on site, so it was hard to consider giving that up.
Going down this path is all about money. I had no idea if any sponsors would participate, so I was working on the assumption that we would have to cover all the costs. We’ve worked hard to save money for times like this, but I was also unsure what the following year would bring so I didn’t want us to be back at zero. I had in mind a maximum budget of about $5,000 and to spend less if sponsors decided to skip this year. $5k is a pretty serious constraint when the cost for the meeting space will be $2460. After a bunch of iterations and guessing about a lot of things, the proposed plan was something like this:
- 4 rooms, max attendance of 200
- 20 speakers max, no shirts
- no lunch on site
- coffee definitely, pastries if we were ok on budget
- provide our own AV
- speaker party
- limit to $5k spend
- no afternoon treat
- no big room for an event finale
- go minimalist
- learn as much as we can from the changes
- had to be done at 4 pm so they could rent the meeting space for evening events
There were a couple intangibles I was thinking about too. SQLSaturday is a lot of work and much of it is around breakfast and lunch. Having the event at a hotel greatly reduces the volunteer workload. We’ve run a student seminar as our ‘give back’ to the college for the past few years and it’s fun and absolutely worth doing, but it’s one more thing to coordinate and this year it was nice to have less to do.
As you read that you’re perhaps thinking, ok, it’s a plan, nothing to see here. For me though, it was frustrating to get there. Guesses I’m ok with, but doing less than previous years was a bitter pill, especially not providing lunch. I’m not saying that’s logical, at all, but it was tough to do less. As much as I often say that the perfect is the enemy of the good, it took some effort for me to get comfortable with the compromises. With still no word from the college, I signed the contract for the hotel with the better space and the Oct 30th date, not appreciating that some would be celebrating Halloween a day early.
Here’s what meeting area at the hotel looks like:
Decision made and die cast, the next step was to set up the SQLSaturday site. SQLSaturday the brand survived the collapse of PASS, being acquired by Redgate and then transferred to SQLSaturday Inc which is in the process of becoming a non-profit and separate from Redgate. What didn’t survive the collapse was the source code for the tools. The final discussion on whether to rebuild them in some form is still ongoing, but the present state of things is to just have a way to get a site going. It’s all hosted on Github and the configuration is all done using a yaml file, you can see the one for Orlando here. Fill in the blanks, submit a PR, and a few minutes later the updates are live. That gives you a static site, but it doesn’t give you registration, a way for speakers to submit sessions, or a way to collect sponsor funds. If you loved what the tools used to do you’ll be missing stuff. If you chafed at the restrictions that the tools imposed then things are looking up!
For registration I went with Eventbrite. I’ve used it a lot, it has a rich set of options if you want to collect money for lunch or whatever, and you can easily download the attendee list (critical for raffle tickets). You can see what I did here, basically putting all the info they needed to know in the event description. Easy to use, I’d go with this again next time unless something much better came along. The obvious alternative is Meetup, but it’s much harder to get data out for raffle tickets and the fees are higher if you are collecting money for lunch.
For the call for speakers and the schedule creation Sessionize was the easy choice. The first time you have to learn how it works, but it has more than enough features for what most of us need. Lots of flexibility arounds schedule creation (sessions can start at different times!) and a built in way to message speakers. Sessionize is free if the event is free (details here). It worked great.
For sponsor management, I didn’t see a good option. I was originally thinking to use a separate Eventbrite. It would be easy to set up sponsor levels as tickets and the event description would be the sponsor plan. The downsides are the fees, it’s about 2.5% higher than PayPal, and you don’t get the money until after the event. I went with PayPal because I thought many events would take that path and it works, but it has its own downsides – you have to create the sku’s for sponsor levels (not terrible), you have to host the sponsor plan somewhere else (I dropped ours here on the blog, but it probably should have gone into the repo), and no easy way to email the sponsors as a group, you have to track them somewhere else. I think right now I’d opt for Eventbrite next time, but I wish there was a better solution. As far as the SQLSaturday site you have to update the yaml with the sponsor name, url, and url to the logo, another small bit of friction.
Not at all a bad experience to get things ready to go, but far different than what we used to have. With all of that in place, Steve Jones broadcast the call for speakers to the list he has been building and I scraped through past years emails to build a sponsor list (plus contacts introduced to me by Steve Rezhener, thank you!), definitely missing the auto announce functionality we used to have. Now we could coast a bit and see what happened. A shout out here to Datavail, they contacted me right away to set up sponsorship. It sure felt good to get that email!
The call for speakers closed on August 6th and we had more than enough speakers to cover the 20 session slots. Building the schedule revealed that a few had not realized that it was in-person only, but we still had enough to do one session per speaker. The schedule was published around August 15th and things were on track.
We started to see some registrations, but lower than a normal year. Not unexpected that many would wait until closer to the event, to be sure of the state of the world. Worth noting here is that our out of the gate Covid policy was that we would at least comply with local restrictions and would finalize the policy a couple weeks prior to the event (not knowing how things would be). Marketing consisted of emailing to our Meetup list. We had moved to Meetup long before PASS shut down and sent out several emails to the PASS list before it went offline. As I write this we have about 1250 members of the group.
I needed an AV solution so I looked on Amazon and found this projector with a flexible screen for less than $80. Ordered one to trial. I set it up at home and it seemed decent. Not great, but ok and we could buy four for less than what the hotel was going to charge for a AV in a single room. Ordered three more. More on this later.
By the end of August the Covid numbers were trending the wrong way and I was stressing. I knew going in that we were betting the cost of the hotel meeting space and losing that money would be aggravating, but not catastrophic. Whether you like the rules or not, there was just about zero chance of Florida or the local officials initiating a lockdown. Would speakers, sponsors, and registrants change their minds? Would things get bad enough that I’d consider the risk too high to continue? Wait and see.
More sponsors joined while we waited. Tintri, Redgate, TekPartners, SQLGrease, and SQLGene signed up. With initial sponsor Datavail that was six sponsors and enough money to cover our budget. Ultimately three would have a table at the event (Tintri, SQLGrease, TekPartners). Tintri also signed up to buy boxed lunches for a sponsored lunch session, our first time trying that. I can’t say enough how much I appreciate these sponsors supporting us.
Another task to figure out was printing raffle tickets and name badges. Raffle tickets are a really important part of getting attendees to interact with sponsors and as much as they are a hassle, so far we don’t have a good alternative. PASS had SpeedPASS and while a little bit clunky, it worked. For this year I just needed a solution. I could get the list of registrants as a CSV from Eventbrite, so I needed a way to get the info formatted for the perforated paper I had on hand. I found the online Avery label printing software that included the ability to add a QR code on labels using template 5137 (2 columns of 5 labels each).
After a couple hours I had a process where I could manually download the file, then use Powershell to copy each line from the source file into the output file ten times (because I needed ten labels per user so that it would be one user per page). For the QR code it supported vCard as an embedded format and I used that, thinking it was somewhat easy to parse and easy for attendees to view using their phone so they could see what was being shared. The raffle tickets had their email address, name, job title, LinkedIn url, and company name. One name badge, six sponsor raffle tickets plus one for SQLOrlando left two spots remaining and we labeled those as “Connect With Me” so that attendees could share their information if they wanted to with another attendee. The Eventbrite download has an attendee id, so it’s easy to download the list and only filter to get only the new ones. Then you refresh the label project with the new data source and you can generate a PDF. Not the most elegant, but it worked and allowed me to print most of these early in the final week.
For the speaker dinner I chose a sports bar immediately next door to the hotel. Literally a one minute walk. They have a covered patio and could reserve seating for 20. Because the location was so convenient we also planned to use it for the after party.
Lunch. There were five restaurants within easy walking distance and a bunch more you could get to in five minutes by car, so I posted that list and marked that task as done.
By early October the Covid numbers had dropped substantially, so much so that Orange County next door ended their state of emergency. We were back in the same place or better than we had been in early July. Speakers were still onboard, no local restrictions, so we were ready to go. Here’s the final Covid policy we published:
We are requesting that all attendees wear a mask. Speakers presenting a session and sponsors at their tables will be exempt. We know wearing a mask isn’t fun, we’re just trying to do what we can to keep everyone safe.
I didn’t get any complaints about that one way or another. It does of course reflect my view of what was good enough for our event at the time it was held. My position was that everyone would assess the risk according to their own views and decide if they felt safe attending or not.
Thursday before the event we held an evening call to go over logistics. Far simpler than usual this year:
- Andy: bring the lanyards, badges, raffle tickets, raffle boxes projectors, and assorted office supplies, set up check-in
- Kendal: bring and set up the signs, handle unexpected issues
- Doug: set up the projectors and screens
Here’s a graph (via Kendal) of the registrations for this year. We did see the usual uptick at the end, but this is a lot lower than in a normal year for us.
Friday night we had the speaker party with 14 attending. A really nice evening, everyone seemed excited to be back at an event and to just sit and talk with peers. I was home by 11 pm, printed a few more raffle tickets and checked my list, called it a day.
Saturday morning I was at the hotel at 6:45, time enough to unload the boxes and drink some coffee waiting for the doors to open at 7. Here’s how we set things up, we were in rooms F, G, H, and Orchid (and we ended up getting some extra space in Orchid to use as a speaker room).
Pretty standard morning set up for check-in, badges and lanyards and raffle tickets. Doug arrived at 7:30 to set up the four projectors and not long after that we hit the first snag. Neither gaffer tape or Gorilla duct tape would hold the fabric screens to the carpeted air walls. Called our event contact for help and after seeing what we wanted to do he came back in a few minutes with a handful of magnets. Turns out the walls are steel with carpet on top for soundproofing. Worked great! Doug handled all that and the tear down at the end of the day, I’ll be buying him lunch soon. Kendal had the signs out by 8 am and for what I think is the first time ever we had no complaints about signs. Should we attribute that to a different location, or Kendal having a stellar sign plan? Both?
Check-in started at 8 am and by 8:15 I could see attendance was going to be down even more than expected. Nothing to be done about it, but it was disappointing. The upside was that those that did attend were as happy and as good natured as ever and soon we had a small crowd around the sponsors and the coffee and things were going ok. Sessions started at 9 and we were doing it, our fourteenth SQLSaturday in Orlando.
The rooms were ok. These are your usual hotel meeting rooms and they were dark, more so as we had to turn the lights down for the projectors. I tested the projectors way back in August, but I didn’t test them with SSMS – was usable, but barely. Just not enough lumens. We’ll keep these as backups, but we’ll need to do more testing to see how much we need especially if it was a longer room. We had to prop them up on stuff to get the right height and it was all on a tiny round table with barely enough room for the projector and a laptop. It worked, but it was definitely the big miss of the day.
Since we weren’t providing lunch for speakers we gave them each a $25 gift card. With the $3.95 fee for the card it was about the same as buying a boxed lunch and I thought they would enjoy going out more (and I wanted to see what they thought about going out). All the feedback I got on that was positive. As far as I could tell the fees are about the same everywhere, so I just ordered them from Amazon and had them the next day.
Our lunch challenge was making sure that the boxed lunches for the Tintri presentation went to those with a golden lunch ticket. Initially they put the food in a separate room, but we ended up moving it into Orchid and leaving it up to Tintri to manage it. It ended up working out well. The reviews on the food was that it was good, just not $25 good (how good can a boxed lunch be?).
With that in hand, we left for lunch. One sponsor was having food delivered and volunteered to watch stuff while we went for a pleasant lunch at the restaurant next door. It was nice to relax, not have to collect lunch tickets or worry about not having enough food. I checked the rooms after lunch and there seemed to be almost no drop in attendance.
After lunch I counted up the check-in tickets; the final count was 60 attendees. About a 66% drop from the total who registered and the registration total was about a 50% drop from a normal year. A long way from the usual 250 attendees and far below the 150-200 I had hoped would attend.
About 3 pm I dug out our scanner and started scanning raffle tickets for the sponsors. Basically you plug into a USB port, open up Notepad or similar, and scan. It’s far faster and less finicky than a phone, I think scanning 50 tickets was 2 minutes or so. You wind up with all the vcards in a file for later parsing (don’t forget to save!). Of course rather than being a hurdle a file that needed parsing had everyone scheming about how they would do it. The scanner is about $35, cheap enough to buy more than one, or for sponsors to invest in their own. If we can standardize on QR + some embedded format I think we wind up with a simple system that works. Attendees can use their phone to see exactly what is being shared, sponsors get the data the same day – no waiting on us, no extra work for us.
I asked a lot of attendees about the location and going out to lunch and all the comments were good. The most interesting one was that the college had a different feel, less corporate, more community. I can see that. Not so much better or worse, just different.
At 4 pm we did the raffle with Steve Jones giving away the prizes. Lots of good stuff, including a chrome book from SQLGene/Eugene Meidinger. At 4:22 pm we were done, all packed up, and back to the same sports bar from the night before. Probably 20-25 attended and it ran for hours, I finally went home around 10 pm. Many interesting conversations, especially about when and where other events might resume. A really nice evening.
Thank you to the 20 speakers who contributed their time to SQLSaturday Orlando this year; Aaron Cutshall, Armando Lacerda, Eddy Djaja, Eugene Meidinger, Hiram Fleitas, James Sera, Jamey Johnston, Jean Joseph, Jeff Duncan, Jeff Taylor, Kendal Van Dyke, Kevin Feasel, Matt Gordon, Mike Antonovich, Priscilla Camp, Rob Volk, Shawn Meyers, Steve Jones, Taiob Ali, and Thomas LeBlanc.
On Sunday I emailed out the rest of the scanned data and unloaded the boxes, started writing these notes and a week later I’m finally finishing those up.
Lessons learned for Orlando:
- Should have tested the projectors more and on site in the actual room. Should also have asked for people to loan us projectors/screens. Need better projectors if we are providing our own AV.
- Lunch off site worked, but might be harder with 250 people seeking lunch. The hotel location lends itself to that approach far more than the college.
- Going minimalist worked out fine. It’s a LOT of fun to do the extras and we don’t have to stop, but they aren’t required. As always, it’s about setting expectations.
The big question is when will attendance go back to normal, or will it? Clearly we had fewer registrations, which I think is primarily due to Covid but probably also includes some that had Halloween plans and might also be related to the loss of the PASS list. Of the no-show registrations I think the higher than usual drop off rate was probably due to people thinking it was a virtual event (I had a registration come in at 5:30 am on Saturday followed by an email asking if it was virtual followed by a cancellation when they received my reply). I’d recommend putting “No Streaming” in messages rather than “in-person”, or some other phrase that is less likely to be missed or misunderstood.
If you’re thinking about a SQLSaturday in Q1/Q2 next year, based on my sample of one event, I have these thoughts:
- Do the event if it feels safe in your area to do so. Set whatever Covid policy you think is fair while respecting local policies.
- Assume attendance will be down. I think it’s wise to plan on 25-50% of normal until we see better numbers. There are worse problems than being at max capacity!
- Lowering your own expectations and goals is a tough decision. Is it worth some compromises to serve some people now vs all of them at some point in the future? You have to judge that.
- If you’re going forward I’d say reduce the work and the cost as much as you can.
- Not having the PASS tools and the PASS automatic emails makes things harder. Not undoable, but not as effortless as it used to be. You have to be willing to figure out a mashup of whatever sites and tools that will get you to the finish line.
- Be candid with the sponsors. There is a lot of uncertainty and I don’t know if the results in Orlando will encourage or discourage sponsors (or you!). I think sponsors will be slowly trying out events. I know that all the sponsors for Orlando were excited to participate and incredibly gracious about the really low attendance. They still got to see a lot of people, have some good conversations, and that was valuable to them.
We’ll have SQLSaturday in Orlando again next year and hope for much higher attendance by then. The decision about where to host will be up to whoever is leading next year (probably Kendal Van Dyke and Mike Antonovich). Both the college and the hotel locations work for us. I think we’ll probably continue to lean towards the college, but it’s nice to have options.
If you made it this far, thanks for reading it all! I hope you found some of it useful.