Category: Editorial

  • Next Person Up

    I have a friend that has had a lot of success in technology. This person was a consultant when I met them, working hourly as I was. Over the last few decades, they have found new opportunities and joined a few large corporations. Eventually this person became a vice president, managing a division. It’s an impressive job, with a big salary, lots of travel and perks, and a lot of work.

    I had dinner with this person recently and they lamented all the hours and stress that comes from a high profile job. Working lots of hours, constantly in touch with others, and pushed to do more. In some sense, this person felt their situation wasn’t that  different than some IT jobs they’d had in the past, though with less pay but similar hours.

    I thought about that for myself. I’ve certainly worked 100 hour weeks while on salary. I’ve slept with a beeper on my chest while on call because I knew it would go off multiple times at night and I’d shut it off quickly without waking my wife. I’ve had the stress and pressure of management pushing and pushing.

    I’ve learned to say “no” quite well in my career. I’ve also learned to find another job when I felt abused. It’s worked well for me, and I think it’s the better way to handle things. That being said, I have never made a huge salary, certainly not anything close to what my friend makes. At the same time, I haven’t felt trapped in a long time, and when I did feel trapped in the past, it was my fault. Usually I learned to move on fairly quickly.

    The thing to remember is that you have to ensure your work and your compensation make sense for you. The trade has to feel fair, because many organizations don’t care if you don’t. I’ve not met many companies that would let me work half as much for half pay, even if I cut some benefits. They aren’t set up to adapt there, and they usually have options.

    For every great job, or at least any well paid job, there are often plenty of other people willing to do the job. For employers that don’t value individuals, either you deal with it, or they will remove you and pick someone else. The higher you go into the org chart, the more true this is, and often this is where the sociopathic tendencies of some executives take over.

    I wouldn’t judge anyone else for choosing their situation, but I do caution you to think about what jobs you take and make the conscious decision to do them. Don’t let yourself get caught into a bad situation, which can sometimes be easy to do, especially when a larger paycheck is dangled. Pick the work that suits you and your family and that you enjoy doing each day.

    Steve Jones

    Listen to the podcast at Libsyn, Stitcher or iTunes.

  • 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.