Opinion: Some thoughts for today on professionalism

Who moved my cheese (diagram tool)?

I was part of an interesting email chain today. It started with a guy complaining that in SQL Server Management Studio 18x, the database diagram tool had been removed.

Now I was disappointed to see the tool gone. Mind you, I didn't ever think it was a great diagramming tool. I would have hoped they might have replaced it by a better one instead of just removing it.

Anyway, what caught my eye was his complaint that by removing it, Microsoft had stopped him doing his work effectively on "complex legacy databases". In particular, he told me how he would use the diagram tool to add and delete foreign key relationships in the databases that he worked on.

I have to admit to being a bit horrified by that. I cannot imagine almost ever wanting to do that, let alone routinely. 

If I want to add a relationship, at the very least script it and run the script. That would give me a record of what I did. Often I'll need to apply the same change to another copy of the database anyway. But even if there was only one database, if it had to be restored to before the change, what would I do? Make the change again and hope to do it the same way?

I mentioned that I'd really prefer this to be in a database project and in source control, and deployed from that.

Professionals vs Cowboys

And the guy mentioned that he always just made changes the simplest way, and moved on, mostly because his customers were disorganized and didn't ever have things like source control or places to keep scripts. It all sounded like pure cowboy stuff and left me thinking about a consultant's role in this.

Awesome image by Oleksii Hlembotskyi

Perhaps age will fix it?

I especially loved it when he assumed I was young and when I'd been around long enough (he thought another 20 years), I'd think the same way. I've actually been in this industry 42 years so far, 27 of them with SQL Server. I might just have to disagree with him on that. I'm far from sure I'll still be doing this in 20 years' time. I suspect that if I'm still around at all, I'll be doing something more relaxing.

Awesome image by Vlad Sargu

Simple Thought for the Day

Look, the message for today is simple: No matter how sloppy your customers are, you owe it to yourself to try to do professional quality work.

Opinion: What are six SQLs and four Jiras?

Over the years, many product names have become verbs that describe what the product does. The typical example is to google for something, or to super-glue something to something else, and so on. The first and dominant product in their markets tends to become associated with the action that they perform.

But was has me puzzled in recent years, is I keep hearing company names used as nouns for something that their applications deal with.

For example, I spent quite a while at a software developer (ISV) where every time they were talking about SQL queries, they'd call them SQLs. They'd say: "look at these four SQLs", or "we have to write a new SQL for this". I can't tell you how much that jarred on me every time I heard it, yet almost everyone in the place said it.

But lately, I've been hearing this sort of thing everywhere. I hear people saying "I'll create a Jira for that" or "we still have four Jiras to complete today". They are referring to tasks.

One of my favorites is also ServiceDesk. Whenever someone says "I'll raise a servicedesk for that", it strikes me how surreal that language has become. They mean a ticket in ServiceDesk.

Does anyone else find this odd?



Opinion: Another plea to developers – please avoid fixed size windows

Just thought I'd send another plea out to my developer friends:

Please stop making windows fixed size when they don't need to be.

Take a look at the main image above. The issue isn't just this one application, it's a plague. The window:

  • Is fairly small
  • Is way smaller than the desktop space
  • Has no resizing handles
  • Is not able to be maximized
  • Has content that doesn't fit in the current window size




FIX: Headset volume too low on Windows 10 (LX-3000)

After some recent upgrade to Windows 10, I've found that the headphone volume is way too low for me. I'm using Microsoft LX-3000 headsets, and have always really liked them.

So I was really puzzled what makes the volume so low.

The thing that's made the biggest difference for me is to enable loudness equalization in the properties of the device. For those that aren't sure how to do that, here's a quick set of screen shots:

First we open sounds from the task bar by right-clicking the speaker icon:

Then we go to the properties of the LX-3000:

Finally, on the enhancements tab, enable the loudness equalization and OK.

For me, this made a huge difference to the usability of the headphones. Hope it helps someone else too.

Opinion: A little plea to developers – no more desktop shortcuts by default

A quick piece today to talk about something that still seems to drive me crazy.

Why oh why do so many applications still default to putting a shortcut on the desktop when you're installing them? And this applies to even very current applications.

I installed Chrome on some machines yesterday, and again, no question during install, but desktop shortcuts created.

Haven't we moved on past this?

Nowadays, there really isn't a need to plaster shortcuts all over the desktop for all the applications on the machine. And it's counterproductive anyway.

And hint: The desktop also isn't a great place to store files but I understand part of the logic for this. I often drop temporary files right on the desktop, but just so they annoy me until I remove them. That wouldn't work though if my desktop was just plastered with files.

Opinion: Security is hard – the Sad Tale of the Windows Calculator

Ever since I've done development work on Windows, I've seen two things happening:

  • People arguing that development should never be performed in an admin account
  • People using admin accounts for development because otherwise they can't get anything done

This is a long-term nasty problem, but I thought I'd share today an anecdote I was told by a Microsoft product group member about how easy it is to get security wrong during development, if you always develop as an admin.

I remembered this today when I noted that Windows Calculator was now going to be open source.

When moving to a new version of Windows, one of the existing applications that failed a security review was Windows Calculator. When I heard this, I thought they were joking.

The application does almost nothing. But it still failed security testing.

The reason was that when you changed from normal mode to scientific mode, it was storing your setting in the wrong registry key. It was storing the value in an admin-only key.

So calculator was an admin-only application at that time.

If it had been being tested as a normal user, it would not have worked.

I've always thought it was the best example of how easy it is to mess up building applications when you're always running as an administrator.


Opinion: Size is the last great legal discrimination


I was reading a story about a woman in the US who was removed from a flight because she didn't want to sit in the middle seat between two large people either side of her. When questioned by another passenger, she responded "do you want to sit between those two pigs?"

Now if you replaced weight (which is contrary to common perception a nasty medical situation, not just a result of endless self-indulgence), in that story, with race, religion, other physical disability, etc., the public outrage would be huge.

Let's get something clear here. For a long time, the medical profession and the governments claimed that eating fat was the primary culprit, and that overeating and inactivity was the secondary cause for weight gain. Unfortunately for everyone involved, that's never been true.

There's a perception that overweight people have no willpower, yet I know so many overweight people who have way above average willpower, and it's obvious in every other aspect of their lives.

When inflammation, insulin, and other hormones get involved, telling people to just eat less is like telling someone to just stop growing quite so tall.

Cold hard reality is that the medicos had it wrong for a very long time, and ignored all research to the contrary. The real reasons are now becoming quite apparent, and I'll just note that if you still think people get overweight primarily from overeating, and inactivity, you are both wrong, and you are part of the problem.

This has allowed there to still be a legal discrimination against overweight people, and worse, it allows for people to feel justified in victim shaming. The same people wouldn't be game to blame short kids for being short, tall kids for being tall, Asian kids for being Asian, or blind kids for being blind, etc.

And so we have the woman in the story above, feeling justified in calling the overweight people in her row "pigs". And somehow that's meant to be OK.

It's not.


And now we come to the real culprits of this story, even though they are rarely directly blamed. Airlines have been constantly reducing passenger space on airliners for a long time, at the same time that average passengers have been getting larger.

How is this OK?

Then when people don't fit in the seats any more, somehow it's their own fault?

And yet if you're tall, the airlines cater for you. But not if you're wider.

Note the advert from QANTAS above. Want window or aisle: OK. Want more leg-room: also OK. But want wider? Ah, that's a problem.

I love flying with Virgin Australia, but it's the same issue. Note their page on Economy X.

Again, extra legroom? No problems. Wider? Oh…

Seat Options

Now, you could argue that there are options available. If you want a 50% larger seat, you could buy a business class seat (or in the USA, 1st class seat). Really? For 50% more room, is it fair to need to pay this difference?

So a "normal" person can fly for $244 but a larger person should pay $1432 to get 50% more space? Sorry, but it's not the person that's disgusting, it's those prices.

Now to be fair, some airlines will let you buy two seats. Even that's nasty. For 50% more room, we need to pay twice the fare, because airliners aren't required to allow for wider people?

And worse, I've done this in the past, and I can tell you it isn't easy. Most airlines have no way for you to do this on their online booking sites. Why? That in itself is poor.

I have clients who want to buy airline seats for me. Is there any way for me to make them larger after they or their travel agent has bought them?

That would be No.

I've also regularly had issues after purchasing double seats. It's then almost impossible to change a flight, compared to a normal ticket. I've even had my seating allocated to two separate places in the plane. And I've had flights where they decided that the two seats could no longer be offered. If you've booked a double seat flight on frequent flyer points, and need to change anything, that's into the realm of true challenge.

Why oh why does it need to be like this? And why do airlines put people, who already feel bad about being overweight (from societal pressure), into smaller and smaller spaces within the planes. They are already almost impossible to be comfortable in, and it's not fair to other surrounding passengers either.

I suspect that one day soon, the true nature of weight issues will become clear to the community, and real action will take place on this blatant discrimination. Some compassion will replace the victim shaming.

I'd just love to see the airlines get ahead of the game on this, as they are one of the main culprits causing the issues in the first place by their shrinking of passenger space.



Happy new year to all my Chinese buddies

Just a quick post to say Happy New Year to all my Chinese buddies and family members, and welcome to the year of the pig.

新年快乐 (Xīnnián kuàilè)

is pretty much "Happy New Year" directly translated. It's pronounced pretty much like "shin neean kwai ler", so remember to say that to your Chinese friends.

But you'll often also hear:

恭喜发财 (Gōngxǐ fācái)

which is pretty much "wishing you happiness and prosperity". It's pronounced pretty much like "gong she far tsai".

恭喜恭喜 (Gōngxǐ gōngxǐ)

is a phrase you'll often hear just for "congratulations".

Thank you to all those who've helped me with my continued learning of the Chinese language and culture.


Learning Mandarin

I'll write more soon on the best methods for learning. If you want to get a taste for it in the meantime though, my current favorite site is iTalki, and my favorite teacher by far is Amy He. If you decide to try it, click here and it's cheaper for both you and me.

Opinion: Bad news is best delivered promptly and directly – don't BS

In the 1990's I was running a software company. We had a great sales guy who was also a great friend. One of the things that I loved about working with him, is that even if he didn't know how to solve a technical problem, he'd ask the questions that I led me to see a problem differently. I could then solve it. I wish every technical person was lucky enough to have someone like that.

Another thing that I loved about him though, is that he was awesome at delivering bad news. Mind you, I always hope that I don't need to deliver bad news. But sometimes it's inevitable, and it's a skill that we all need to learn. One lesson I clearly remember from him though, was:

Bad news doesn't get better with age.

Delaying telling someone bad news isn't going to ever make things better; and usually it makes things worse, often much worse.

Now apart from hesitating to tell people bad news, a trend that's really getting through to me lately is an even worse one.  It's where a layer of BS is added to the news, to try to obscure or soften the bad news.

Don't do this.

This makes the situation far worse. You are seen as being cagey about the bad news, and, you're also treating the customer or other party with contempt. This is never a good thing, yet I see it time and again. Where I see it most today, is from software as a service (SaaS) companies.

Let me give you an example. This week I received an email from a vendor, and it said:

"Based on feedback from customers like you, we've learned that the reporting features within the xxx Free plan weren't easy to use and lacked some of the metrics needed to prove success with social. As these features weren't being used by most customers, we will be removing analytics from your xxx plan in March 2019. … If you need feature-rich analytics, they're available in our Professional, Team, Business, and Enterprise plans."

Really? People like me complained about the reporting and analytics in your free offering so much, that you're removing it?

I call BS.

I could be wrong, but I don't think it would take Einstein to decide that what they are really saying is that they don't have a compelling enough story to get people onto paid plans, and they need to make money, and so reporting and analytics won't be in the free offering any more.

So why not just say something like: "Hey, we know that the reporting in our free plan isn't great. We want to do it better but we can't afford to do it for free, so in future, the reporting and analytics will only be in the paid plans, and we hope you'll think they're so great that you'll want to sign up for a paid plan. To give you a taste of it, we'll give you a free trial of those features for the next month".

OK. I might be disappointed by that if I was using them, but I'd accept it.

But instead, how does the vendor couch the discussion? They justify it as being based on feedback from customers like me.

Immediately my internal BS-meter goes haywire. So as well as delivering bad news, I now feel like they think I'm stupid.

Don't do this. Just apologize, deliver the bad news and move on.

I hear this sort of thing all the time, and SaaS companies (large and small) do this regularly. They want to change something they've previously offered, the new option isn't as good for the customer (or at least at the same price), so they try to justify bad news as somehow coming from "feedback from customers like you". Almost every time I hear that phrase I think it's just not true.

Unless almost every customer reading your message would agree with what you're saying the customer feedback was, don't try to pretend that that's why you're making the change.

If you have to deliver bad news, just do it directly, and do it as soon as it's decided (Don't make the customers hear it second hand).


Opinion: Developers, silently swallowing errors is not OK

I don't know if it's considered some sort of modern trend, but what is it with applications now that just swallow errors instead of dealing with them? Is there an edict within these companies that errors should get shown, so they can argue their app doesn't have errors?

I'm working with a SaaS app right now. It does editing. Sometimes when I save, it just doesn't save. No error, just nothing saved. Or every now and then, I find the order of what I've entered just gets changed. Again, no error, but the order was changed.

Worse, sometimes when I then try to correct the order, it shows it as done, but next time I go back to that screen, the order is back the way it was in the first place.

On many occasions, if I close my browser, open it again, and log in, it all works OK again for a while.

But it's not just these types of applications. I've lost count of the number of sites I've been to, where supposedly serious applications are being developed, yet the code is full of try/catch blocks but the catch blocks are empty ie: silently ignoring any errors that occur.

How did we get to the point that this is what passes for application development now? Apps that mostly work and fail silently?

Sorry, but this is not OK.