Category: Editorial

  • Cursors Without Performance Penalties

    One of the very common ways that many developers learn to write code is through loops. Almost every language as some sort of FOR and WHILE looping structure. Many people build these in T-SQL, which often creates performance issues as the engine inefficiently deals with the RBAR (row by agonizing row) processing.

    That seems like it might change in the next version of SQL Server. There is an interesting research paper from the SQL Server team that explains how they are investigating a technique that will make decode the inner workings of any code that is inside a cursor and apply the work efficiently to any table operations. If this actually turns out to be true, then cursors in T-SQL might be like cursors in PL/SQL, where this is the preferred way to write code.

    Suddenly cursors will have no real performance penalty. If that’s the case, I suspect we’ll start to see lots of new refactored code in many organizations. Loops make sense and are easy to read. I don’t know that I’d change any existing code, but I’d consider changing new code. Do you feel the same way? I wonder how many of you would prefer writing loop based code as opposed to complex single statement SELECTs.

    I’m not sure when we’ll actually change our habits, and you probably agree if you clicked the link. Today is April 1, or April Fool’s Day, so this whole thing is completely fabricated. Hopefully you smiled and this helps you cope with the day a little better.

    Steve Jones

    Listen to the podcast at Libsyn, Stitcher or iTunes.

  • When Will Privacy Matter?

    More and more people are becoming concerned about data privacy. There’s more advocacy, and this shows in more laws being passed around the world. Those are good steps forward, but those rules and restrictions are just the lowest bar of what I’d hope for. Regulation will always lag behind best practices and technology, and I’d hope that organizations look to do better.

    I expect more competition to crop up again in the future as the world grows, and I wonder if some of these businesses will start to take privacy seriously. Not because of regulation, but because it might provide some competitive advantage. I ran across a short piece that has a few ideas on how you might be more competitive in your niche if you take privacy seriously. These are ways that taking privacy seriously might make you more competitive.

    I think the big one for me is transparency. Showing customers that you are open and up front with data will pay off. Most of us know that our data is being collected. We know it’s being used for marketing. Many of us don’t love the idea, but we also do get used to the value we do get from services. A few people might balk, but once they realize everyone is collecting and using data, they’ll appreciate those that are more transparent.

    Certifications are nice, and having employees work on security can help, but for privacy, we need to help customers understand how and why we use data. We need to respect their data, and learn to remove it when a business relationship goes away. It can be tough for many data pros and business people to get rid of data, but it’s prudent, it reduces the strain on live systems, and it helps build trust with customers. Plus, if you are treating customers well and they appreciate it, they’ll come back over and over, which usually means you won’t ever need to trim much of their data.

    Steve Jones

    Listen to the podcast at Libsyn, Stitcher or iTunes.

  • Looking Back

    Things always go wrong. Those of us that build or operate software know that we will have failures at times. These could be while applying a patch, deploying a new system, during a spike in traffic, or perhaps just a mechanical failure somewhere. Most of us fix things and move on, as there’s always plenty of other work.

    In a few organizations in which I’ve worked, whenever we had a large issue, we had a retrospective. I think we defined large issue as a VP or CTO become involved, but in any case, we sometimes had to have a retrospective meeting on why things went wrong. Usually these weren’t blameless, or psychologically safe. They didn’t end up being good meetings, nor did they serve to prevent future problems.

    In today’s software world where we want to adopt DevOps and build better software, we need retrospectives, both when problems occur, but also periodically as we finish major portions of work. We want to learn and become better at building software, so it pays to spend some time actually assessing how we work as a team. I ran across a post from Thoughtworks that talks a bit about how to make these better.

    I don’t completely agree with the post, and I certainly think that a retrospective won’t solve all the issues we’ve had. Nor should it. I really see the growth and adaptation of a software team as taking time. When we find lots of problems, the key to making the software development process better is to decide on something to change and try it.

    I’m all for an evolutionary approach for a couple reasons. The first is that change is hard and disruptive. If we can change just one or two things, then most of our work continues forward. I don’t want a new set of coding techniques and a new build process at once. The second thing is that any change we make might have other consequences. We see this constantly in the world. We try to alter one thing and other parts of our process change. If we change too much at once, we might introduce lots of other problems.

    Let’s grow and change in small ways, but do so on a regular basis. This is both for the way we work as a team and get our software to customers, as well as the techniques we use to write code. Let’s code better, refactor older code when we can, and learn to improve our skills and techniques each month. We’ll have a healthier code base over the long term and a healthier team as well.

    Steve Jones

    Listen to the podcast at Libsyn, Stitcher or iTunes.

  • Taking Stock of Your Career

    We’re almost a quarter into the new year. Think about these statements: “Imagine you lose your job tomorrow.  What would you like your next job to look like?  Start acquiring the skills for your desired next job today!”

    That’s a quote from Jan 2, when I saw someone talking about their struggles. It was a statement that resonated with me, and it’s one that I think everyone should be thinking about on a regular basis. Not worried or concerned about losing your job, though maybe that’s not so far fetched right now, but more, are you moving your career forward in some way that’s a) valuable to your company, and b) valuable to someone else.

    Both of those are important. Certainly you want to deliver value to your current employer. That’s why they pay you and keep you around. Being skilled in your position is good, and improving that skill matters. This could keep you employed, and perhaps until you retire. That’s my plan, and I continue to work on skills that will help me make this job the last full-time job I’ll have have.

    I feel confident in this plan, and I think I do a good job for Redgate. Some of the skills I work regularly on might help me with work elsewhere, but many are likely specific to this role. I don’t know that I could find this same type of job again at another company, but if I did need or decide to change jobs, I’d need other skills.

    That is one of those things that keeps me learning and moving forward. I dig into various technologies, trying to better understand how they work, and thinking about where I might use them. I might not need them in my current role, and they may not be useful at Redgate, but they do ensure that I am building some skills that someone else might find valuable.

    I see lots of people that feel stuck in their jobs, and without support to grow and learn from their company. They struggle to find time and energy to learn about the cloud or AI or containers or anything else. I get that. Life is busy and hard, and (hopefully) you have plenty outside of work to occupy yourself.

    Take a minute and read that quote above. Now imagine you need a new job. Do you want to try and update your resume tomorrow and hope you have some current, modern skills that lots of companies need? Or do you want to hope someone values your experience already? Those aren’t bad plans, but maybe having a few new tricks you can talk about, things you’ve started to learn about, is a plan worth considering.

    Steve Jones

    Listen to the podcast at Libsyn, Stitcher or iTunes.