Category: Editorial

  • Has AI Changed Software Development?

    I saw a piece that asked the question about AI and software development, specifically ChatGPT, a year after its release. Has software development changed? It’s a question I’ve been trying to ask for myself, though I do think the way AI works for lots of code is fundamentally different than how it works for databases. Databases need a lot of context, with schema and relationships, whereas a lot of other code can be structured in a more narrow sense, focused on an algorithm rather than specifically needing to reference other objects.

    That’s not to say that a generative AI can write application code better than database code. I think in both cases it can be helpful or hurtful. As I read the article, I find myself agreeing that AI has changed software development. It’s a tool, and it can be useful. It can help structure code, point out issues, and help with building tests.

    That being said, I also agree with this sentence in the article: “…given that to write anything resembling maintainable code with AI, you’ll need some level of expertise in programming.” Everything I’ve seen from AIs still requires a review from a human that understands if the AI is on the right track in approaching the problem. I’ve written this a few times (and discussed it with others) that I think an AI produces junior level code in many cases, and it takes a subject matter expert to decide if that’s OK for the situation.

    However, I feel that AI does a few things really well. First, it’s a great search engine, able to understand multiple prompts in a row that narrow in the thing I might spend much more time searching for. It also does some nice predictive things in guessing what code is needed next. In most application languages, this is helpful. In SQL, not so much, since the SQL language lays code out in a way that makes it harder to predict things. The LINQ structure of from, where, select is much more cleaner in many ways. If only RDBMSes natively executed LINQ…

    If you’ve tried AI, what has worked, what prompts give you help? Is there anything especially time-saving you’ve found? I, and many others, are looking to understand where it can help us.

    Steve Jones

  • Projects To Showcase Your Skills

    It seems I’ve heard from a lot of people looking for jobs lately. I had a friend reach out and when I posted a note on LinkedIn I had someone looking for a job, I heard from a few dozen others that they were in the same situation. The last year has seen a lot of turnover in IT. There have been lots of big (and small) companies that have let staff go, for a variety of reasons. The why doesn’t matter to you if you’ve lost employment. You just need a new job.

    At the same time, I hear from lots of customers and friends that they are struggling to find good talent. They have openings, but none of the people interviewing have good skills.

    That’s an interesting mix of situations. There are jobs and companies want to hire people, and there are people needing jobs. However, there don’t seem to be enough good matches, and my guess is we have some skills mismatches here. In other words, candidates aren’t showing they have the skills employers need, or at least not at the depth employers need.

    A lot of success I’ve had in the past is being good at some tasks with a database, but also showing employers I can learn about other tasks easily. Some of that is from blogs or answers on forums, and some of that is showcasing those skills in interviews. I think that many managers will accept they might need to teach you or train you on certain things, but they want confidence you can learn and grow.

    Good interview soft skills help, but showcasing learning and growth helps as well. Blogging is a good way to show that, but what do you blog about? My advice to students is to explain how they solve the problems they’re given in coursework. Show what you learned, from where, and how you chose to solve a problem with the resources used.

    I would say that experienced workers can do the same thing. Take on some sample projects that build or design a database. Work on a sample dataset and produce queries to answer questions, explaining what the goal is and then how you solve the problem. Show how you can improve a project by refactoring code, and then proving things are better with execution plans and performance numbers.

    Show you have skills to get some things done, and the skills to learn how to solve complex problems. Hiring managers need to have this confidence in you.

    If you have ideas for a project, let us know in a comment. What types of projects have you worked on that you were proud of the solution? What sample datasets have you used to learn? We all can improve our skills in some way, and perhaps a few specific ideas will get some of you moving in the new year.

    Steve Jones

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

  • Fixing Poor Programming Practices

    I see a lot of poor programming practices in real-world code. I’m sure I’ve written a few myself. I’m also sure that many of you see the same thing and sometimes wonder how that code got deployed.

    One of the things I told myself over the last few years was that I had to accept the reality of situations. It’s easy to complain and say that code should be written differently or entities should be modeled in another way, but I (or you) can’t change that situation today. And it ignores the fact that we are stuck with this environment and we have to move forward from here, not try to rewind the clock and go back in time to design things better at the start.

    Today I’m wondering how you’ve adapted to poor practices and fixed them. Do you have stories to share that might help others deal with their situations? Post comments below, and to help, I’ve got a few stories from my past. Both of these deal with third-party software products that (poorly) use a SQL Server database.

    One company purchased a new accounting package with very poor security practices. The installation noted that the software needed to use the sa account. I couldn’t think of a reason why an accounting package needed sa on an instance, especially as we were installing this on a production server with another database.

    I called the support line and we discussed what was happening. They said that for the accountants to add new users, they needed to add a login and thus needed sa. This was in an older version of SQL Server, but that still didn’t make sense. It was lazy developers not understanding the security model and wanting sysadmin to make things easy. We showed them that we could add a login ourselves and a public user mapped in the database, which the software would pick up and allow finance people to assign rights. Poor practice mitigated.

    In another piece of software, we found a view being used that was querying other views and tables. As you might expect, performance was poor. We decided to “fix” the view with better code, but first, we created a new schema (with our company name) and added their view to this schema. That way we kept their code around. We rewrote their view to run more efficiently, and if we had a support call, we’d replace our better view with the original one from the previous schema. We even had a proc in our schema to do that for us. Of course, our view was kept in our VCS, as it should be.

    If you’ve got stories, let us know in the comments today.

    Steve Jones

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

  • Happy New Year 2024

    We start the New Year on vacation, at least, I hope most of you are relaxing today, spending time with family or friends, and getting a break before we go back to earning a living.

    If you didn’t read Friday’s editorial, you should, and spend part of today getting your 2024 plan together.

    For me, my 2024 plan is to work on growing more of my skills with my employer’s products. While I’ve been at Redgate for 16+ years, we’ve had a lot of rapid change in the last year with Flyway and TDM, and I need to make sure I can help customers with the best recommendations on how to implement the products. I still expect our Solutions Engineers to know the ins and outs of switches, options, and parameters better than I do. However, I need to ensure I’m not too far behind them and know all the capabilities as they’re added. And with weekly DevOps releases, they’re being added quickly.

    I also want to spend more time experimenting with and learning about AI. I don’t know I want to make that my career area, but I do think it’s a tool that will help me in my career, and so I’ll be spending my 10% time there.

    Lastly, the overall framework for my career in 2024 is balancing life with travel. 2023 was hard and I want to be sure I don’t overload myself.

    Happy New Year, and work on your 2024 plan.