Author: way0utwest

  • The Complexity of Modern Systems

    I am a big advocate of version control and testing for your software. The main reason is that modern systems are incredibly complex, and capturing what has been done (and what is happening), along with looking for potential issues, is important. It might be critical for ensuring you have success in building software.

    Part of the reason is this post on software complexity. Now I don’t think the complexity is killing software developers. I do think it adds to developers’ stress, and in poorly managed environments, the complexity makes for a poor job experience for many.  While I do think most people are smart, and they find ways to overcome this, they just don’t enjoy the process.

    This is part of the reason, IMHO, that we are starting to see lots of people move to a new role, often in a new company. With remote work, there are more options, and for people with talent, they can easily leave. My recent job searches seem to show more remote job options and more demand for mid and senior level people. I think some of this is looking to get better talent in your company, and some are because experienced people are tired of poor work environments and poor code.

    Modern software is big, and I don’t think any system of consequence is built by individuals anymore. There are still good projects and applications being built by a person, but once they start to grow, a team of developers is needed. This means that we have to learn how to better work together. We need to adhere to standards. We need to communicate and collaborate both in code as developers and together as humans.

    While someone may understand how the entire system works, it’s unlikely that many of our staff does. If the system is large, it’s unlikely anyone completely understands, and then our ability to function as a team is incredibly important to be sure that we are building something that works well together.

    To me, the complexity of modern systems emphasizes the need for teamwork and collaboration, the thing that many companies adopting DevOps struggle to emphasize.

    Steve Jones

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

  • Daily Coping 22 Nov 2021

    I started to add a daily coping tip to the SQLServerCentral newsletter and to the Community Circle, which is helping me deal with the issues in the world. I’m adding my responses for each day here. All my coping tips are under this tag.

    Today’s tip is to connect with someone from a different generation.

    I used to think of a different generation as being someone older than me. However, these days, I tend to think younger. I make it a point to do this regularly as I coach, taking time to do more than interact with kids on the court, but also asking them how they think and view the wider world.

    However, I had the chance to talk to a few people recently at a technical event, and I took time to interact with someone much younger than me. Someone early in their career, who I asked questions and tried to understand the world as they see it. I got the chance to better understand what’s important to a younger person, which is vastly different than how I view the world.

    I made it a point to talk about “I think I’d do this”, rather than offer advice, counseling, or opinions on how they view things. It was quite an enjoyable conversation.

  • Tesla Bug Reports

    This is part of a series that covers my experience with a Tesla Model Y.

    I can’t remember where I learned this, but I saw someone that explained how to report bugs to Tesla in their software, or I guess, the hardware. I didn’t think a lot of it initially, but the last few weeks I’ve been using this every time something weird happens.

    The way this works is you activate the voice control by pressing the right steering wheel button. When the software responds, say “Bug report” followed by the issue.

    For example, the other day I was returning home and going down the country road that leads to my neighborhood. This road has a lot of hills, some steep, and I use cruise control sometimes to keep a steady rate. Sometimes, not always, as I go up a hill, the car will brake before cresting the hill. At times it’s light braking, going from 45 to 43. At times it’s heavy, and has slowed to 35 or slower.

    That’s not fun.

    I immediately hit the right hand button on the steering wheel and said, “Bug report phantom braking on hill”. I click the button again and it acknowledges the bug report submitted to Tesla. It also says I can schedule service if something is wrong.

    I have started to make this report as often as I get phantom braking. What I’m hoping is that every one of these reports includes the telemetry from the car. Knowing when the model is not appropriately managing car functions should help with better training.

    If it gets used.

    I’m taking a leap of faith that Tesla is looking at this feedback. Not each report, but in aggregate. Certainly test experiences with Autosteer years ago and now show an improvement. I’m hoping that giving them more data points will continue to improve things.

    There’s a quick video of my showing this.

  • Where is the Puck Going?

    During the PASS Data Community Summit last week, Brent Ozar delivered the day 3 keynote, and it was great. I really enjoyed the format and topic, and I look forward to how someone else might be creative next year with the time. I’d certainly love to do the keynote, though not sure I’d be eligible. I’m hoping a few others get interested and compete for the slot in 2022.

    One of the things Brent mentioned was about looking for skills to focus on, primarily for “builder,” or those that develop new applications. He used a quote from Wayne Gretzky: “I skate to where the puck is going to be, not where it has been.” The reference is to pick things that will be relevant in the future (where the puck will be), not where things are today.

    Lots of people ask questions and wonder about this when we look at technology. What should I learn? Where is my best investment for the next ten or twenty years? There also is plenty of fear that you might learn to be an expert in something like Notification Services (dead after 2005) or Database Mirroring (deprecated in 2012). The other day I heard a few people say “graph is dead” in SQL Server, and I might agree. The features exist, but are they really growing and improving enough to compete with a graph platform? I’d argue no.

    I don’t have a crystal ball to tell you what will be popular. I have a magic 8 ball, but that’s less helpful. Here are a few things I’d suggest to help you think about this. Please, if you have specific questions, engage in the discussion, and I or someone else can try to help.

    First, the ability to work in a team is important. The skills to communicate well, debate a point, and collaborate in how you work are important. Not critical because plenty of people can get by without these skills, but when we look to hire new people, often we want to bond. If I find 10 qualified candidates and get along well with 2 in an interview, I’m likely picking one of the two. Learn to speak in small groups, summarize your thoughts, advocate your position, and appreciate others’ views. Also learn to accept defeat gracefully when things don’t go your way.

    Second, learn more about the choices your employer has made. Brent mentioned this a bit, but honestly, if your employer is focused on SQL Server on premises or in a VM, learn to run that well. Learn more about how it works and how to solve problems or tune it. If they want to use AWS RDS or Azure SQL Database, focus on those. Spend spare time, or quiet time at work, becoming more proficient with the platform. Read about it and practice on it. It will help you enjoy your current job, increase promotion and raise chances, and give you some confidence if you do need to change jobs.

    Third, learn to learn. Always be learning, and follow the advice above, or even pick the things that pique your interest. The important thing here is that if you need to pick something up, you want to be comfortable with those skills. How do I search out info on the Internet. Can I find videos or articles to consume and can I take sample code and stat using it? Can I set up new environments? Am I comfortable poking around a cloud portal or digging into a programming API? Maybe most importantly, can I sit through and absorb information from a Pluralsight (or other) course? All good skills.

    Lastly, part of skating to where you want to go is writing a resume/CV that gets you an interview. I’ve given this advice, and Brent did as well. Include keywords on your resume. If you decided to use Snowflake, I’d find a way to mention Synapse and Redshift on my resume. If you are good at Snowflake, you are likely going to be good at Redshift and Synapse. What you aren’t going to be good at is convincing a non-technical, HR person searching for your resume that these are synonyms if they aren’t included in your resume. Maybe you only want Snowflake jobs. That’s fine, decline the interview. Maybe you need a new job, and in that case, don’t limit yourself. Get past the AI or human filters.

    Actively managing your career takes some work and effort, and it takes some knowledge. Improve your skills, but take advice from those of us that have walked the paths. Ensure you represent yourself well, both with your avatar (the resume/CV), and in person for the interview. These won’t ensure you get a job, but they to help increase your chances.

    Steve Jones

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