There’s a discussion going on The Orange Site about a developer’s Computer Scientist friend who recently tried to use a programming module they found on Github . Ostensibly they were trying to do something anyone might do today, they found a package that fit their needs and tried to figure out what they’d need to do to run it.
I’ve read the comments so you don’t have to, and the discussion centers around the idea that “oh well this is just how things are and if you’re a programmer you should just shut up and deal with it”.
I can’t begin to describe how bad that outlook is for us and our profession, and even more importantly, how that outlook hurts building better software — software that people love to use. Software they find joy in. Software that has a soul.
The empathy needed to understand why your users are using your software, and what they’re trying to do with it is the empathy that makes building good software possible. Without that empathy — without that sense of “putting ourselves in the user’s shoes”, we’re never going to be able to make software that truly changes our user’s lives for the better.
But the preachy stuff aside; what can we take from this? What can we do?
Look at every bit of development tooling you use. What is a joy to use, and what is a pain? If it’s a pain to use, what would it take to make it a better experience for you? As an example, I’ve gone back to powershell, and was trying to get information about a command, and so I tried:
<command-name> help <command-name> /? <command-name> --help
And none worked.
Why not? /? and –help have both been methods for getting help for decades — why wouldn’t powershell adopt them? Instead, I have to do:
Further, why not tell me when I load a Powershell Shell how to get help for commands? Right now all I see is this:
Windows PowerShell Copyright (C) Microsoft Corporation. All rights reserved. Try the new cross-platform PowerShell https://aka.ms/pscore6 PS C:\Users\George>
Microsoft is advertising something new to me — but not telling me how to use the software that I’m looking at!
Wouldn’t a better experience for me (and a reason for me to look at PSCore6) be to give me a good experience for what I’m already using?
What would it take for this experience to be better? How about this?
Windows PowerShell Copyright (C) Microsoft Corporation. All rights reserved. To get a list of commands available, type Get-Command. To get help for commands, type Get-Help <command-name>. Something not working how you expect? Visit https://aka.ms/ps-help in your web browser to get help. PS C:\Users\George>
It doesn’t take much to improve your users’s experience with your software, and it starts with empathy.