Tag: Redgate

  • A Global Team Meeting

    The last few years at Redgate we’ve had the entire (or most) of the marketing department come to Cambridge in the UK for a week. A few weeks ago was my third time attending, and I once again had a good time and enjoyed the week.

    While a lot of marketing works in an office, there are quite a few of us that are remote, and many people in different offices don’t regularly see or work with each other. This is a chance for us to cross normal boundaries and get together to bond, brainstorm, and better understand each other.

    Not everyone came (I missed Louis Davidson Sad smile ), but there were a lot of us. Our team picture is below.

    FB_IMG_1718418774570

    A few years ago the week was packed with different activities. It was a bit much, and we’ve left more open time for business as usual (BAU) during the week so people can still have meetings with other departments or get things done. Some people do a bunch work, some socialize with others. For me, it’s a mix. While I get to Cambridge a few times a year, I never see enough people, so I do a mix of socializing and normal work, though I get relatively little done during the week.

    Monday

    We kick off the week with an opening brunch. In our new office, we don’t have a place to eat, so a few people bring in various fruits, pastries, etc. It’s a good time to chat with people in our large open space. Our CMO (Chief Marking Officer) reminded us in a short opening to meet new people and welcome the few newest people who had been here only a few months, so I chatted with someone I’d never met.

    I also had a couple other meetings, and then headed out to a group social event. We met at a local park, carpooling over there, and split into some teams for a scavenger hunt.

    20240603_144222

    One of the items was get a drink from a pub, so Grant and I did that.

    20240603_143058

    I had to race back to the office after this for a weekly standing meeting, which is normally in the am for me, but this time it was at the end of a long day.

    Tuesday

    I had to arrive early, as I had a meeting with a couple people from the Summit team. We brainstormed on a few things cooking for November, and it was a nice quiet way to start the day.

    We opened the day with some RedTalks, which were short presentations from various people on the status of some of their initiatives. It was nice to see these in person, with many of them having 2-3 people sharing the presentations. These covered some marketing process things as well as how some of our initiatives were working.

    As I listened, I browsed the snack table. We do this every year, asking people to bring snacks from their home area. Anyone can try them, and there is a donation request for a charity. As of late Wed, I was the only one who donated, so I hope that changed.

    20240604_101312

    One of the interesting ones for me was on the takeaways from a Gartner conference on how marketing succeeds or fails in a company. A good reminder on coordinating with others, as well as the note that more doesn’t necessarily mean things are better. A good takeaway was tackling a new thing should mean we let some other thing go. I do this, but I know a lot of others don’t.

    Lunch was again catered, and this time we were split into 5-6 groups in different rooms with one of our execs in our room. I didn’t get a chance to talk with our Chief Product Officer, though he and I had chatted a few weeks earlier, so I wasn’t too concerned.

    Afterwards we had our expo, where each marketing team created a small board of things they do and challenges they face. We use some whiteboards and some paper pads. I have to say I was trying to get a couple things done and chat with others, so I didn’t do any prep here. Or any explanations.

    Once the boards are done (we get an hour) the expo area is open to the whole company. Execs, other managers and some workers come by and check out what marketing does. I managed to get up there for a few minutes, but ended up chatting with a couple other managers and taking a call from my wife, so I missed most of this.

    Wednesday

    I arrived early. I had an 8a meeting, but with the trains, I got there about 730a. I took a few minutes below here to sip coffee and play guitar. We have a couple in this atrium and I try to steal 5-10 minutes at least once a day and relax.

    20240603_105815

    Another morning Summit meeting. For a crew that’s an hour behind me in Vancouver, they schedule early meetings in Cambridge. Here we reviewed the sessions selected (should be out now) to be sure we had the coverage we wanted in various areas.

    We did suggest a couple changes were we were missing something and had some overlap in others. We left notes, though I don’t know as I write this if our suggestions were taken.

    Then we had a recording sessions. Grant, Ryan, Louis, and I were asked to start a new podcast since the other Redgate ones had fallen away. There is a dedicated recording room in the office, so we spent a few hours on a couple episodes. No idea when they drop.

    20240606_081810

    The afternoon was our annual social. We all made our way over to a local bar where we had a few activities and lunch. I was late as I had a meeting about my AI chatbot (more on that in another post), with a few action items for me given.

    The social was pizza to start, then a quiz where we broke into teams and had a presentation where we were given 5-7 questions at a time in different areas. My team was semi-competitive, and I wasn’t competitive at all. Also, my back was a bit sore and I struggled to concentrate, but it was a lot of fun. It also helped that the bar wasn’t open until after the quiz to keep people focused. I learned a few interesting things, like red gate came from Italy and  one of our founders built and released a video game. I know there were other things, but as I said, I was tired, hurting and unfocused.

    I did enjoy sitting on the open rooftop and chatting with friends. Ones I’ve known, not new ones, but time is short and I try to balance time with new and current friends.

    Thursday

    The Marketing Innovation Day, which I’ve had mixed feelings about. We’ve tried this in a few incarnations, but essentially we try to improve marketing at Redgate. This year we split into some groups, or were split into groups, and tackled the day in 5 sessions. The first was the creation of what an incredible year at Redgate would look like next year. This was from the perspective of a magazine cover, and it was fun to hear others’ ideas and thoughts on what success would look like.

    Then we did sessions on:

    • challenges and opportunities
    • analysis of others’ ideas
    • a plan to tackle a new thing
    • presentations of the ideas

    This was interesting. Each group was assigned either a challenge or an opportunity and we used lots of post-it notes to jot down ideas. We were on the positive, opportunity side, which I liked. Each session was about an hour, and the first one had us write down a dozen or so notes.

    During the second, we walked around, trying to decide what we liked and what didn’t from others. That helped us decide on what we might tackle in the fourth session. Here was one I saw and one of my teammates liked.

    20240606_130435

    The fourth session had us picking something. My group picked building an AI bot to help customers, and while I wasn’t sure about the idea, I warmed up a bit. We had to debate some of what we’d propose, the costs, upsides, downsides, etc. One of my teammates built the presentation, and they picked me to deliver it. That’s fine, but they wouldn’t show it to me, so I went in blind.

    I had a nice crowd for the session, and I went last.

    20240606_152546

    My group won the online voting 26-20-5-3 in the positive ideas. Both Grant and I delivered our group’s ideas. He got 20, so I guess that means I win in two ways? Winking smile

    Afterwards we had another meetup at a bar for a few drinks, which was nice. I got to chat with our CMO, which is always good. We never get much time together, so that was good. I also hung out with some US marketers who I rarely see.

    Friday

    Another early morning for me. Some coffee guitar, and another meeting. Then we had a final Summit brainstorm looking at things we might do for the welcome reception. I’m not sure we have consensus, but it did get me a bit excited for November.

    We also had our final farewell at lunch with some early cocktails and goodbyes. Many of us won’t see each other until next June, so it’s both happy and sad.

    I forewent the prosecco for a little lemonade and some of bottle I’d left behind pre-pandemic. Can you guess which is mine?

    20240604_103420

    Years ago I realized I don’t like the regular Fri afternoon gin happy hour or the prosecco celebrations, so I bought my own bottle and left it there. This is the first time I’ve touched it since last year.

    Closing Out the Week

    It was a semi-quite close out. After drinks, I had to do a few SSC things and then walked around saying goodbye to people. My wife had flown over from the US, and I left a bit early to see her and start our holiday.

    Each year we’ve slightly changed how our Global Marketing Week works, and I think it is a neat experience. I don’t know if we are better at running the event, but it is a good chance to get our department together and think about how we do things and what we do. There are lots of random conversations about past and future, which don’t quite happen over Zoom.

    For most of the companies I know are almost all remote, with people working at home most every day, they provide some opportunities to get together at least once a year. I don’t know who is 100% remote and never meets anyone, but I think something is lost if you never meet coworkers. That being said, once a year is nice for the entire department and I’m grateful Redgate does this.

  • The Last Trip (for now)

    I’m in Cambridge, UK today, at Redgate Software. This is our annual Global Marketing Week, where the entire marketing department gets together to learn, share, connect (recognize the theme), as well as enjoy some time with colleagues that we rarely see. I think Grant, Ryan, and I see more people more often than most others, and I’m grateful we get to spend a week here.

    This is the end of my wild travel time, where I’ve spent 11 full days at home since Apr 12. In fact, I don’t get home until Jun 15, so it’s not over yet, but it’s close. I’m definitely tired and a little worn out, but I’m looking forward to a week in the office and then a week of vacation next week in Europe with my wife.

    Not much blogging for the next two weeks, though I may drop some office or fun pix here later this week.

    Then I get home and no travel for a few weeks.

     

  • Friday Flyway Tips: State-based Deployments

    Recently the Flyway Desktop (FWD) team release support for state-based deployments. These are similar to SQL Compare deployments, but with your code source control, which is where you want it. This post looks at how this works.

    I’ve been working with Flyway Desktop for work more and more as we transition from older SSMS plugins to the standalone tool. This series looks at some tips I’ve gotten along the way.

    State-based Projects

    When I create a new project, I now have a choice: migrations or schema model (state-based). You can see the choice below.

    2024-05-21 18_52_42-Flyway Desktop

    I’ll demonstrate this now by creating a new project. I give it a name, folder, type, and then I pick the Schema model deployment source.

    2024-05-21 18_52_38-Flyway Desktop

    Once that is complete, the project is set up and I need to link a development database. I’ll do that first, picking a database with a few objects. In this case, I’ve picked my FWState_1_Dev database.

    2024-05-21 18_56_06-Flyway Desktop

    Once this is linked, the FWD tool will read the database, compare to my filesystem and tell me which objects have changed. Since this is a new project, all the objects are new and show up. I’ll select them all and click “Save to project”.

    2024-05-21 18_56_42-Flyway Desktop

    This gets all the code for my objects into the file system (and a VCS). I won’t commit these now in this demo, but normally I would save this code.

    The main change in FWD is the change on the left side menu. Where we have “Generate migration scripts” and “Migration scripts” as options for a migration based project, for a state-based project, we have just a “Deploy” option. I’ll select that.

    2024-05-21 18_57_15-Flyway Desktop

    Once this happens, I have to pick a target. I haven’t configured anything (this is a new project), so I’ll select the “Manage environments” in the upper right section of FWD.

    2024-05-21 18_57_25-Flyway Desktop

    When I do this, I see the environments I’ve configured. So far, I’ve only configured a development environment, but I can click “Configure new database” to add a downstream target.

    2024-05-21 18_57_30-Flyway Desktop

    I get the standard FWD connection dialog, and I’ll enter details for my QA database. I usually also click “Test” to ensure I haven’t typo’d something. You can see I didn’t make a mistake below.

    2024-05-21 18_57_52-Flyway Desktop

    Once this is added, it is selected by default. However, I can always click the radio button in the Manage environments dialog and click “Confirm”.

    This brings me back to the FWD screen where I see the changes that exist in the project, but haven’t been deployed to the target. In this case, it’s everything (QA is empty). I’ll just click the tbl_Customers table.

    2024-05-21 18_58_17-Flyway Desktop

    When I click Deploy, the script is generated just as it would be in SQL Compare to update the target with the code from the source. I can review the script, as well as change options. I can add an explicit transaction around all changes, or let them run with the default implicit transaction for each statement. I can also copy the script to the clipboard if I want.

    2024-05-21 18_58_32-Flyway Desktop

    If I check QA, I see no tables.

    2024-05-21 18_58_45-SQLQuery3.sql - ARISTOTLE_SQL2022.FWState_1_Dev (ARISTOTLE_Steve (70))_ - Micros

    I’ll click “Deploy now” in FWD and the deployment starts. I confirm this is what I want to do.

    2024-05-21 18_58_52-Flyway Desktop

    Once this is done, FWD returns to the screen of objects. Note that tbl_Customers is no longer listed. The project and the target are in sync for this object.

    2024-05-21 18_59_08-Flyway Desktop

    If I go back and refresh QA in SSMS, I see the table exists.

    2024-05-21 18_59_29-SQLQuery3.sql - ARISTOTLE_SQL2022.FWState_1_Dev (ARISTOTLE_Steve (70))_ - Micros

    Summary

    This short post shows how FWD and the Flyway system can be used to perform state based deployments, similar to SQL Compare or SQL Source Control. If you are used to working in SQL Source Control, this is an easy transition for you to a more modern tech, which will also support Oracle, PostgreSQL, and MySQL.

    Try Flyway Enterprise out today. If you haven’t worked with Flyway Desktop, download it today. There is a free version that organizes migrations and paid versions with many more features.

    If you use Flyway Community, download Flyway Desktop and get a GUI for your migration scripts.

    Video Walkthrough

    I made a quick video showing this as well. You can watch it below, or check out all the Flyway videos I’ve added:

  • Using Flyway with Feature Flags

    There is a nice article at Harness.io on their use of feature flags and how they deployed their next generation experience. It’s worth a read if you want to improve your database deployment experience, especially if you want to control how and when you release to customers.

    Redgate Flyway logo_vertical_RGB_REDA nice bonus is that they mention Flyway as a tool to help them manage database code changes. Hint from me is that you can use Flyway to not only help manage DDL changes but also DML changes as well.

    I talk about this in my Architecting Zero Downtime Database Deployments talk. Most of the time when you have changes that might disrupt users, take a lot of time, or require coordination with different apps/systems, using feature flags and backwards compatible deployments is what makes zero downtime, or minimal downtime, possible. If your changes can’t be backwards compatible, you break the database changes into multiple steps that are backwards compatible.

    Flyway makes it easy to ensure scripts run once, they are deployed as a group or individual transactions, and they run in order, so you can test your scripts in multiple environments.

    I know I sound a little sales-y there, but Flyway is a fantastic tool and I was pro-purchase when Redgate bought the tool. I was also pushing to replace some other internally-developer deployment tech with Flyway in all our products, which we’ve done.

    The big way Flyway supports feature flags is by ensuring you can break up your changes into separate scripts and limit when they run. This is best managed with branches in your VCS and PRs, but this also will be handled by the new Deployment Rules, which are in preview.