Category: Editorial

  • The Dangers of Not Upgrading

    About ten years ago my sister-in-law broke the screen on her mobile phone. She’d had an older iPhone and when she went to upgrade, none of the upgrade processes worked because her OS was so far behind that they couldn’t transfer her information smoothly. She had been avoiding OS updates because they interrupted her life, but that was now a problem because the world had marched so far beyond her version that there weren’t tools, or at least, no one was interested in trying to perform an upgrade across multiple OS versions (I think it was 3 or 5 versions).

    I ran into this recently with someone else I knew, but not for a mobile phone. For TFS 2015. This customer had been working along with this older system and is finally ready to upgrade to Azure DevOps in the cloud. They wanted to know if they could somehow upgrade the TFS database and move all that data easily into the cloud. I said this wasn’t likely easy as this isn’t an upgrade, but an export and import of a lot of data. Microsoft offered a path, but it was multiple upgrades before an export/import, which was deemed too expensive. Right now, I’m not sure what they’re doing to do.

    I know that many people keep old versions of SQL Server out there. Brent’s population report still shows some 2014 and older databases, and I’m sure there are plenty of 2008-era (or older) instances in use. Many of you continue to run older software because it works. That might especially be true on desktops, where we often install specific software for a task that might not change for years. I think there is plenty of value in older software that works well, though there might be security concerns.

    However, for platforms or software where there is a regular upgrade path that you will need at some point, it pays to keep up, at least a bit. Maybe you don’t upgrade with every version, but you likely shouldn’t fall more than two versions behind. Vendors don’t want to maintain compatibility for too long and certainly don’t want to keep providing updates for new features. Even security updates get expensive to produce for old versions with complex test matrices needed to ensure the patches work and don’t break the application.

    Software is a bit of a crazy business. In the analog world, if we own a product and it breaks or has an issue, often there are third parties who can repair it, or even create the necessary parts for the DIY market. Software is different, and the pace of change can be a bit overwhelming, expensive, and annoying. We can’t fix old software, heck, we’re not even allowed to fix old software. We can get into legal trouble if we try.

    I don’t know if there is any good solution, but I certainly do know that if you manage software, you ought to be careful to keep abreast of how often the software upgrades and when support for previous versions is waning. Even if you don’t care about customer support calls, you likely care about upgrading to a newer version at some point, so make sure you know when they might drop support for upgrading from your version. Stepped upgrades work, but they can be expensive and time-consuming, and if there are issues, often vendors aren’t interested in why the upgrade didn’t work from your extremely-old version to a slightly-less-old version.

    I still expect a database version to run for 10 years, but I know that support is tricky, and I also know that I better be ready to upgrade at that time.

    Steve Jones

    Listen to the podcast at Libsyn, Spotify, or iTunes.

  • Free SQL Server

    No, I don’t have a way to license a SQL Server instance for your application for free. Microsoft still charges for production workloads. However, there are several ways that you can do development or testing for free, or at a greatly reduced cost. Bob Ward spent a bit of time researching options and he’s written a post that outlines a number of your options. It’s very comprehensive and I know a lot of us are grateful to Bob for summarizing our options.

    As I work with developers in organizations, there are often questions about the licensing for dev editions. This comes up more with Oracle than other platforms, but SQL Server does get asked about. We made a decision to support SQL Server Developer Edition in Redgate Clone, which is in line with what Bob’s post above says: this edition is for developers (and it’s free). There is one caveat here, which I never knew. The licensing guide says you cannot build test data and move that into production. I’m assuming this doesn’t mean you can’t create a list of US states, countries in the world, or statuses. I think this means something more substantial, but if anyone knows, let me know.

    One question I get asked a lot is about how do you develop locally if your production target is Azure SQL Database? The best option is a container, as outlined in this MS Learn article. It’s not completely the same, or necessarily as up-to-date, but it’s close and likely good enough for most of us. If you really want an Azure SQL DB instance for dev/test, it’s not going to be free. Unless you can live within the monthly Azure credits, which are pretty low for this purpose. If you are a Visual Studio subscriber, you can get some discounts, however, and I didn’t know this, you can’t use Azure credits with the VS benefit.

    There is also a “free offer” for Azure SQL database. This is fairly limited, but you do get free compute and 32GB of data for the lifetime of your subscription. If you work with small development databases, and you aren’t querying like crazy, that might work well for you. It’s also a great way for students or job-seekers to get some experience with the platform at a low (or no) cost. You can even try Managed Instance for free for 12 months.

    The cloud isn’t for everyone, every organization, or even every application, but it does work well in some situations. Whether that fits you or not can be tricky to determine, but you certainly should be working in the cloud in a dev/test manner to help inform the decision. I would hope that most of you have dev/test databases in place for on-premises/IaaS systems as well. I don’t run into too many people developing on a production instance, but I do see some, and I certainly see some that work in heavily shared environments.

    Cost shouldn’t be a factor here, at least not for SQL Server, and there are options to help you ensure you have all the dev and test instances you need. Read Bob’s post and see if you can help make your developer’s lives easier with some of the resources. And learn to follow good software development practices for your SQL code, just like the C# developers do.

    Steve Jones

    Listen to the podcast at Libsyn, Spotify, or iTunes.

  • Visual Design for Safety

    I drive a Tesla Model Y and love it. They’re not for everyone and not for every situation, but I think it’s the best car I’ve owned. My wife feels the same way, and if we had a need for two cars, we’d likely get another one. The car is fun, and I look forward to getting in and moving around town. If you have questions about owning an EV or a Model Y, please feel free to ask.

    The car isn’t perfect, and there are things I wish I could change. There have also been a few recalls on the car, which is interesting for a Tesla. A few of these recalls meant that I got a software update a few days or weeks later and something changed. There was another recall recently, which affects most Tesla vehicles in the US. I’m sure that by the time you read this, I’ll have a software update applied and the issue will be resolved.

    This particular recall was because a font was too small. That might seem like a minor thing, but as someone who needs reading glasses all the time, I do think this is an issue. In fact, I appreciated that Tesla sent an update in 2023 that let me set all font sizes larger on all screens. I wish they were slightly larger, and I wish they’d check the UI for a few things as the text is cut off in minor places, but I can usually squint while driving and make out what’s there.

    I also keep reading glasses permanently in the car in case I really need to grab them and see something.

    Many of us work with data, and we may build reports (or edit them) to help our customers consume data and make decisions. Hopefully, some of you have learned how important good visual design is to creating an impact with your reports. Even if you report on something as simple as uptime, the way you showcase the data makes an impression on those who consume it. In case you’re sending your boss a message, I hope you want to ensure he or she receives the same impression you want to send. Remember, communication is what is heard, not said.

    There are lots of resources out there about visual design, and lots of places where you can ask questions about what you’ve done and see if someone has hints or ideas to create a better presentation for your data. Even if you aren’t designing for safety, you’re often designing for impact and you want to do that well.

    We’re lucky in the digital world in that we can adjust the way things appear easily, and relatively cheaply. Imagine if Tesla had created a dedicated sensor or physical light to let us know about a brake issue. If that were too small, the recall wouldn’t be a software update. It would likely be hundreds of thousands of hours lost by them and customers on a simple design correction.

    Update: A couple of days after I wrote this, I got an over-the-air update, which fixed this.

    Steve Jones

    Listen to the podcast at Libsyn, Spotify, or iTunes.

  • A Working Break on President’s Day

    Today is President’s Day in the US, and it’s a holiday for me. At least from Redgate. I’m actually working my other job, perhaps with some overtime.

    This is the end of a three-day weekend tournament up in Greeley, CO, where I’ve been coaching a 13-year old competitive volleyball team with my wife. We enjoy working with kids and we’ve been coaching in the spring for the last five years together. The RMR Showdown is a fun event, and it’s nice to get out of town. Hopefully we’ve had some success, but even if we haven’t been winning, it’s a good experience for the kids to grow, learn, and stress themselves across multiple days. Most of the time we do one-day local tournaments, so this is a chance for them to learn the eating well, hydrating, and sleeping are important.

    We’ve also had a pregnant coach in the 18s division, and it’s entirely possible she can’t coach this weekend. She was due around this time, so as I write this, my wife volunteered us to take over her team if she’s giving birth. That means we’ll be working a morning wave with our team, from around 7a-2p, and an afternoon wave from 3p-9p. There might be some long days for us, but they’ll be fun.

    Despite the work, it’s a recharging event for me in that I’m not doing anything with technology, and the time spent on this hobby is completely different than anything else in my life. It can be stressful during games, but it is very rewarding. I enjoy working with kids, and when it’s over, it’s over. The results of the competition are quickly forgotten, at least by me, but I see the lessons learned by players growing through the year.

    However, work starts again tonight. As soon as we’re done, I’m heading to the airport for the DevOps Airways tour. No, I’m not flying a plane, but I am getting in one for our first stop tomorrow in San Jose. There are quite a few more, and I hope to see some of you at one of our events.

    Steve Jones