Author: way0utwest

  • Looking Back at Software Development Trends

    In some ways, the world of software development hasn’t changed much. The same sorts of skills and techniques I saw people using on COBOL programs hitting DB/2 and C++ over Oracle 6 are used today in React and C# against Azure SQL database. On the other hand, it does seem that we are more mature in how we work together and the flexibility with which we design systems.

    I saw the results from a survey from 2019 that Atlassian ran for software developers. This was a look at what modern trends might exist, though over a year later, perhaps the world is dramatically changed again. Let me look at each of the four trends they point out.

    I’ve been hearing about microservices for years, but have found relatively few customers using them. I don’t hear a lot about them in the RDBMS space, and I think this is because the idea of separating out each entity (or small set) in a database and having data access only through a front end component doesn’t make sense. There’s power in using an RDBMS to enforce data integrity rules and allow aggregations. I’ve also seen some companies looking for miniservices, not micro ones.

    Manual testing is still very prevalent for customers. While there are lots of unit tests, including some against a db, they don’t always extend through CI to more complex scenarios. Quite a few customers still have bottlenecks where humans look at the application in a larger sense. I think the high cost of tools that run more complex tests is a part of the problem. I’m not sure how we improve this, though I do hope to see more unit or functional tests for db code.

    Feature flags are extremely complex, though I do see them more as a defensive measure, where features are released, but then turned off if there are issues. This prevents a rollback from the app and db standpoint. I also don’t see a lot of use of dark deploys for database features, perhaps because until the app is working, we aren’t sure the data model is correct. Feature flag cleanup is certainly an issue for some clients.

    The last trend is one I rarely see implemented. Looking at customer outcomes, and not just immediate sales, is something that few people seem to do. Perhaps because developers are evaluated on the work they complete, not whether it’s in use. Managers are evaluated based on getting developers to do work, or on the sales that are produced, but it seems that few organizations try to measure the customer impact. We’ve started doing that at Redgate, and I’m interested to see how this evolves.

    Keeping developers motivated, excited about their jobs, and productive with creative solutions is tough. The trends listed from the article seem to me more aspirational for most of the organizations with which I deal. Most clients I know see developers as interchangeable parts, similar to factory workers. I think if they invested a little more in the well-being of developers, both from their mental focus and the growth of their skills, they might find a lot more benefits accruing from their software.

    Steve Jones

    Listen to the podcast at Libsyn, Stitcher or iTunes.

  • Social: Keeping Perspective

    I was lucky enough to be able to get together with some friends recently, outside, socially distanced, and relax with a few drinks. The few of us together have different types of careers, we’re different ages, we have much different perspectives on the world. We also end up dealing with people in the world in much different ways and places on a regular basis. While some of my friends are at home, some work in town and some go to an office.

    We talked a bit about the unrest in one of our local communities, Aurora, CO. It has been the site of protests, and unfortunately, violence against both members of the community and police. I support protest, I do not support violence.

    In any case, a few of my friends, who are white, noted that some police officers don’t like to go out in the community, even for things like groceries. People yell at them, or give them mean/bad/angry looks. One of my friends has a truck that looks like some of the undercover police vehicles, and he’s been yelled at by random people who think he’s a law enforcement officer.

    Their thoughts were that there are bad police, but to lump everyone together in one group isn’t fair.

    That’s a powerful statement. It’s also from a specific perspective. Someone that sympathizes with the change in the lives of the police, with their discomfort with the status quo not being the same. With police not being respected.

    My statement was, think about lumping everyone on the protester side, or the Person of Color side. How often have black people, or middle easterners, or asians, or women been lumped together? How often have you taken a stance based on your tribe, on who you identify with?

    Most of us do it often. Tribal identity is a human characteristic. We often choose to identify with others. We also allow a narrative, a story, a certain presentation to influence us. This has been shown in study after study. We often are less unbiased than we think.

    It is sad that police don’t feel welcome in their community. It’s also sad that many others feel discriminated against or oppressed. It’s distressing that we don’t all get along better, even with basic respect if there isn’t any reason to like each other.

    We all need to do better, both in our behavior and in the way we look at others.

  • Daily Coping 21 Aug 2020

    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.

    Today’s tip is to share an encouraging news story to inspire others.

    The news is full of bad stuff. I really enjoyed the SGN network, and I hope it comes back soon. In any case, I try not to check too often, mostly because there is lots of bad news.

    However, I have some good news. Or at least maybe, no news about something, which is good news.

    I coach volleyball and half our season was cancelled this spring. Sometime late in the spring, there was an opportunity for us to bring our team to the AAU national finals in Orlando, FL, USA. I had no interest in going, nor did the parents of the kids I coached, but some teams were interested. The club where I coach ended up sending 3 teams in mid July to Orlando.

    At a time when case, deaths, and more from COVID-19 were growing.

    The event ended up going fine, with no kids, coaches, or parents getting sick. Lots of precautions, lots of spacing, and things worked out well. A review of the event talked about some of the things that they did to keep everyone safe. So far, reviews from other coaches, news, etc., show that there haven’t been any outbreaks from this event.

    I wondered how things would work. We have held practice in Colorado since late May, sometimes girls masked, sometimes not, but without incident. There have been some people with fevers or other concerns, with those affected skipping events and getting tested, but so far no spread or positive cases.

    That’s good news.

  • What’s the Bus Factor?

    I was on a webinar recently and someone mentioned the bus factor, which is a phrase I’d heard before, but not in a long time. Essentially this is the number of people, or maybe a certain specific group of people, who can get hit by a bus before your organization has serious issues.

    Do you explicitly know who is important in your organization? I’m sure most executives think their personal factor is 1, meaning they can’t disappear without issues. I’m not sure I agree, though certainly we can’t lose all executives at once. In one small company I worked in, we never put more than two execs in a plane or car for a trip out of town, just in case something happened.

    This week, I wonder what your bus factor is in technology. If you think about your projects, your applications and infrastructure, do you know who the critical people are and how many are needed to keep things going? Or could everyone quit and new hires would take over. In other words:

    How many people can get hit by a bus before your org fails?

    I think that in Redgate, we don’t have many people that are irreplaceable. We have four advocates, and while we have different strengths and abilities, we can fill in for each other. Likely our advocate factor is 4. We’d struggle slightly if all four of us left, though I think our sales engineers and some developers could fill in for us.

    In development, we move people around regularly, and while they are valuable and great contributors, I think we could work around a large number of them leaving. I have no idea how many would cripple the company, but it would have to be a number much greater than 10.

    It’s worth recognizing when you have people in critical positions that are hard to replace. Do you have a single COBOL programmer still keeping something going, or maybe just one long time employee that knows how the BizTalk server runs and no one else makes changes. Think about it today, and let us know if you think there are single points of failure in your organization.

    Steve Jones

    Listen to the podcast at Libsyn, Stitcher or iTunes.