Tag: Database Weekly

  • Coding Magic Values

    It’s 2023. I would hope all software developers would learn that hard coding specific values in your system is more likely to cause issues than not. Across the years, we’ve learned not everything is installed on the c: drive, or that not everyone wants to put all data in a Documents folder (or in OneDrive). We’ve learned that any sort of magic number is poor practice, and we ought to know that hard-coded names are problematic as well.

    Yet, we still see it happening.

    This week I was reading about an admin issue in the Microsoft TechCommunity. This is related to Azure Managed Instance, but it’s really an In-Memory OLTP issue. That was introduced in SQL Server 2014, so I know the code for this was likely written in the 2011-2013 timeframe, but how can this type of issue get through code review and be released?

    In this case, the name of a filegroup is set specifically to XTP. It’s a logical name, and I’m sure that some developer thought that things might be faster with a known location. That doesn’t make sense, and while this might not be an issue for most customers, I’m sure there have been some databases built with a filegroup called XTP. After all, there are companies named XTP. What about if this feature evolves to allow a second filegroup, maybe because of some distributed architecture need in the future? Are there then code paths looking for XTP or XTP2?

    As much as possible, avoid coding values in your code that a user might enter as data. Names, paths, etc. Just don’t do it. Use variables, which are in every language, and let those values be read from the environment. This ensures that you don’t end up with weird support requests from customers because they chose the same value you did.

    Steve Jones

  • The Cost of Employee Turnover

    Sometime during the first 3-4 months of the pandemic, after offices all over the world closed, I thought that a lot of businesses would try to hold on to existing employees and minimize turnover. I also thought many employees would be nervous about changing jobs amid all the uncertainty.

    That wasn’t the case everywhere, and I was surprised at how much employee turnover occurred in many companies during 2020 and 2021. We had the Great Resignation, where talented employees (and some not-so-talented) found new employment with lots of remove flexibility. We typically have low turnover at Redgate, but more surprising to me was the number of people we’ve hired in the last two years.

    Our gains come from losses elsewhere. It seems a lot of companies have had a bit of turnover, more than they liked.  The costs of replacing a staffer has climbed to an average of USD$57k, according to a recent poll of hiring managers. I’m sure this is a combination of the time and money spent on recruiters and interviews as well the lost productivity of having less people around.

    For many of us working in technology, we realize that losing good people is a problem. Often we lose undocumented knowledge about our systems,  those shortcuts, checks, small tasks, not-so-obvious fixes, and more that make life easier. We can feel more stressed about additional work, or even the anticipated unknown challenges we might face. Moral, productivity, and motivation decrease, which creates a snowball effect. Everyone gets less done, which costs the organization more. Either lower revenue, more costs, or perhaps fewer services for those government or non-profit concerns.

    With large tech companies letting lots of talented people go, I wonder if we’ll see more competition in the employment market. For quite a few years there have been fewer workers than there are jobs. Perhaps that changes a bit in the future, though I still think there are not nearly enough talented workers for the positions open. Good for talented workers as they may have more choices, but also good for less talented workers when companies feel pressure to hire anyone.

    Except, what I’ve seen in a lot of companies is that they don’t want to hire anyone. Having a degree or cert isn’t enough. Companies aren’t going to hire you because you are Azure/AWS/etc. certified. They want tech skills and at least a few soft ones. That creates an even higher cost to fill positions, so maybe that USD$57k isn’t a bad number.

    To me, what this really means is that organizations ought to look at poor management, both middle and upper, and replace those people. That’s the problem in many places, one that isn’t easily fixed. Poor culture, micromanagement, lack of support, little-to-no psychological safety, and more contribute to poor retention.

    Culture is important and building it is hard. While not everyone will have a great culture, many organizations can avoid a poor one by treating people fairly and ensuring management understands how to do that. If for no other reason than to avoid the high costs of replacing staff.

    Steve Jones

  • Killing IE

    Sort of. Apparently, Microsoft will kill off IE in Feb 2023 in Windows 10. The lifecycle page notes that IE will be permanently disabled with an Edge update. For earlier OSes, it isn’t quite clear what will happen. However, extended support ends this month, Jan 2023, for Windows 7 and 8.

    Does anyone use Windows 8?

    I have used IE many times in my career, but the last decade of so I’ve shuddered every time I need to run it on a server or remote machine. It’s ancient technology that feels cumbersome, much like trying to get something done on a Palm Pilot instead of a modern smartphone.

    I know there are lots of websites and apps that use technology that works in IE, and Microsoft is adding an IE Mode to Edge for those cases.  Microsoft has a “what you need to know” article you can read, but it seems more like an advertisement for Edge than an informative article.

    I could care less about IE, and I mostly don’t think I’ve needed it in years, but I do encounter that technology in a few places. Outlook is the main one where some sort of IE-based control is still being loaded for some authentication mechanisms. I think removing IE is one thing, but getting rid of embedded controls based on IE is going to be a much harder and longer-term issue.

    I know so many developers that used various versions of the browser control in their apps, and I suspect there is no shortage of places that IE tech will continue to be a problem. I’m sure it works most of the time, but probably not always.

    Hopefully, most of you out there use a modern browser for your work, and if you need one inside an application, you use something besides an embedded IE-era control. If you need an alternative, there’s an older Stack answer that might help. Please, use anything by an IE control. It’s time we let that technology retire gracefully in a museum somewhere.

    Steve Jones

  • Improving Skills at Work

    A large part of the success I’ve had in my career has come from growing my skills, both technical and soft, throughout the years. I’ve always been driven to learn more and improve my ability to accomplish the tasks I’ve been assigned. Or those that I’ve sought out and tackled. A little initiative has been valuable in many successful reviews in the past.

    There is a shortage of skilled IT workers. There are numerous job openings that I see in many companies, at least outside of some of the large tech firms. Many of those have been laying off workers, especially in some of their divisions that haven’t been as successful as expected during the last few years.

    At the same time, a lot of companies are becoming more discriminating about who they hire. They don’t just need bodies, they need skilled bodies that can do the work they are struggling with, often in the DevOps, cloud, and data analysis areas.

    While a lot of you reading this newsletter will have data skills, are they the ones companies need? Do you understand Git, DevOps, builds, and pipelines? Are you familiar with cloud technologies and gluing systems together remotely? Can you handle python, Spark, Power BI, or business requests to do something with AI/ML?

    I’m often not surprised that many senior data people don’t have exposure to these technologies and aren’t sure how to gain skills. I am surprised that more employers aren’t upskilling existing people or reskilling them in new areas. It seems far too many companies don’t invest in their people, even in today’s world where hiring is both very expensive and time-consuming. It’s also frustrating when you can’t find qualified candidates.

    There’s a good article on upskilling and reskilling and the importance of having a plan inside your organization. This goes hand in hand with a number of presentations from companies at the various DOES conferences over the years. The successful companies that embrace a digital transformation (whatever that means), DevOps, and the Cloud have ways to bring their current employees along. They invest in their people, requiring them to grow, but assisting them on the journey.

    Not everyone wants to move to the cloud or DevOps or AI/ML. That’s fine, but my view is you have to embrace some change in your career if you want to create new opportunities for yourself and have choices in your future roles.

    If your company doesn’t do enough to help you grow into new roles with new skills, maybe send them this article. Make a business case that you can do more with some help, and you’re willing to invest some effort yourself to grow. Managers know hiring is hard, and if you’ve been a good employee, I think they often are willing to invest in you.

    If they’re not, then many you ought to think about that a bit and find out what you can do better so that they will invest in you. Not everyone makes it through corporate transformations, but many do if they are flexible and put in some effort.

    Steve Jones