- Published
- Friday, 13 August 2021
- Category
- Soft Skills
- Author
- Andrew H
I've had a problem with building our primary application today. Yesterday was a day of upgrades; I installed both Visual Studio 2019 16.11 and Visual Studio 2022 Preview 3 - all the new bits. Today, an application I was working on wouldn't build. We were getting error CS1576 - 'The line number specified for #line directive is missing or invalid' in relation to the code that is auto-generated for Blazor components.
As we all do when we have a problem we're not sure how to resolved, I searched the internet for a solution. The search results took me to a new question on Stack Overflow indicating that someone else was having the same issue. He explained the problem, but there was no solution. I decided to post to see if together we, as the community, could work the problem out and get people going again. After all, it's unlikely that we were the only two people affected in the world.
I don't post on Stack Overflow very often. Generally, someone else has either already posted a question, or provided a solution. Sometimes, it's entirely the wrong solution, but that's a story for a different day. The point is, it has been long enough since I posted that I effectively don't have an account any more. The account I had when I last posted was registered with my work email address, and I left that company many years ago, so I can't really use that account any more. Therefore, it was time to register a new account, this time with my personal email address.
Registration was pretty straightforward, so within a few minutes I had posted on the thread. Whilst I didn't have a solution, I had found out more about the problem, including a bit of an imcomplete workaround that might help someone else narrow down exactly what the problem was. Even though I couldn't entirely fix it for him, I was able to tell the O/P that he was not alone, and that I was working on the problem too, pass on what I had determined to date to everyone, and give confidence that I would update with more findings when available.
I tried a few more things and within a few more minutes I was at a point where I was able to update my answer with more findings, and a second, better workaround. That I duly did. However, as I posted my update, I was advised that my answer was hidden. It had been deleted by a moderator. Ouch.
So far, I haven't been told why it was deleted. I am hoping that the moderator will reach out with their thoughts on why me trying to help a fellow human being was inappropriate - but they haven't yet. However, I can guess what they might say - I think they will feel that I hadn't entirely solved the problem; as a result, what I had posted was in violation of their definition of a solution.
This blog captures my problem with that definition, and the problem I see with Stack Overflow in general. However, it is not intended to be a rant about a single site; I think there are several things for us to learn here.
This post is of course based on my personal opinion - and is just an opinion. If your dealings with the site vary from mine then that is great; I would be very happy to be wrong in my opinion today. Even if you disagree with my thoughts, there is a moral to the story that might be worth considering and applying to your own situations.
OK, on with the show. Let's summarise my motivations, my feelings about the outcome, and then move on to consider the day's events more objectively.
My Reasons for Posting on SO
- To tell the O/P that he was not alone. If we have a problem, it's nice to know that it's not just us.
- To advance the conversation about what the problem was likely to be caused by, with the hope that as a community, we would be able to work towards a solution. I was effectively hoping for a mob programming approach, to get us all up and running again as quickly as possible.
- To highlight that the problem did have a limited workaround, even though it didn't yet solve the problem
- To give confidence that I would provide a solution if I found one
My Emotional Response To Deletion Of My Post from SO
- I feel slightly confused - why was it deleted?
- I feel slighted
- I wish I hadn't posted
- I am not very likely to post again
- I hope for another site to get popular; one that is less aggressive in its application of black and white
The Objective View - The Problems I See With Stack Overflow
I think there is a real problem with excessive moderation on Stack Overflow. I think I understand what they want the site to be - they are trying to make it a Q&A site. They want you to find a question, below which there is a single solution that allows you to quickly get back working. That's a noble goal - but it's also a little naive. I fails to appreciate any nuance to software development - and in my experience there is a lot of nuance. However, even more importantly, the way the site operates fails to take into account the human emotions that using it provokes, despite its purpose being to cater for us human users.
We humans are complex creatures. We have emotions. We have needs. When a system is put in place, it needs to take account of those things. Some systems have done this to an excess; most social media platforms are intentionally set up in a way that manipulates the human's needs and emotions to drive the success of their platform. However, other systems fail to account for the human side of the equation at all, and Stack Overflow is one that needs to redress the balance in this regard.
The problem with excessive moderation is that it's often received by the contributor as criticism - and criticism of the highest form, for that matter. It comes from what might be considered a higher authority and it is sometimes expressed publicly, and that is not going to be received well by most contributors. In my case I feel a negative response to my experience with SO because they have criticised my attempt to help. It isn't helped by the fact that this is, more or less, my first post - it's my first experience as a contributor in a long time, and it was a bad one. There was something in my contribution that didn't meet with their expectations, but rather than discuss it with me and somehow encourage me to tweak my response to be more useful, they simply deleted the information I provided. So far, I haven't even been told what they would like to have seen done differently. Hopefully, at some point, that information will come - but it hasn't yet, 9 hours after the deletion, so it's gstarting to look unlikely that it will.
The issues I see with the SO system in the way it is run at the moment are:
- It discourages questions. If a question might garner opinion, it is closed with a banner saying so. That is a effectively a public criticism of the O/P, and puts people off raising a question in the first place, for fear of provoking the wrath of the moderator and his public shaming. A lot of people will be nervous enough about putting their head above the parapet and asking a question; their fears shouldn't be realised by the very people who moderate the content!
- It doesn't value opinion. I can see that in the Q&A section of a site that people venturing an opinion might be a problem - perhaps a big problem if it is a contentious opinion. However, a better solution than closing a question with a banner of shame would be to move questions of this type to another area. Opinion has huge value, and some posters want people's opinions. Not only are they refused the opportunity to hear them, they are even shamed for asking them.
- It discourages solutions. It doesn't want anything other than a perfect solution, it seems, which results in regular criticism of people contributing to questions. It is not unusual to see indications of this in responses to questions.
- It expects people to spend a lot of time investing in answers so as to avoid moderation. There are a lot of things they don't want in answers and you have to spend time learning them all. Some of the things they do not want are the things that most sites thrive on - discussion being just one example - so there is a lot to learn to be valued as a contributor. That's an expense that is becoming difficult to justify in our busy lives.
- It is no good for helping people with newly emerging problems. The moderation in place slows down people who are trying to resolve an ongoing problem. I still don't have VS2019 working, not at all helped by people being unable to discuss the workarounds that they have found this morning.
- It stifles innovation. If people are constantly told to tow the line, nobody tries anything else. That could result in the site failing to benefit from new ideas in what is useful - the next big way to achieve a Q&A format.
Don't get me wrong, I know that moderation is important - indeed vital. I've been on the other side of the fence
- or seen over the fence, might be a better description. As a result, I know what valuable work is done. People are hard, and keeping users' emotions off the site (upsetting comments, personal slights and all sorts of other nasty human traits) is extremely difficult and almost always somewhat unrewarding for those who do it. People are really hard, and forums are people in extremis - which is why I think SO tries hard to avoid being one. However, in excess, moderation discourages people, it drives them away, towards other things.
I think that SO are trying to force shades of grey into black and white. Their definition of what the site should be risks strangling it and us. As a result, we are struggling with a site that is overly limited in its usefulness to us, its users. The technology is good, the user interface is fine, but the user experience is poor. The site is run in a way that makes it both unhelpful and unrewarding to its contributors and users.
I would like to see the company do a better job of recognising and understanding the human responses it provokes in the people who use the system, and dealing with them in a way that its users find more positive. I understand the huge problems they face - as I say I believe that people are hard - but there are better ways of channeling contributions to the site that could be implemented. By all means channel it if you feel you must, but do so in a way that people find uplifting, in order to avoid crushing their enthusiasm for providing the input your system depends upon.
The Wider Learnings From This Story
I think we can extract some learnings from this tale that apply more widely. These are things we might try to apply to our jobs and our lives in whatever role we find ourselves.
The most important reminder I take from today is that user experience extends beyond a software system and into the processes that the users encounter while interacting with it. Whilst the website I interacted with today worked perfectly well, the overall user experience was negative - and one I would not wish other people to be subjected to. As software teams when we say that we have considered the UX, we need to be sure to have applied that to more than just the front end.
Today's adventure also reenforces a belief I have held for a long time: that it is easy for our thoughts on a company to be heavily moulded by our interaction with a single representative of it. It is possible that the moderator who deleted my contribution did so by accident, or to enforce a policy that wasn't actually being violated because they failed to understand that policy, or how it applied in this case. I, for one, try not to let a single bad interaction with a company put me off doing so again. However, whilst I am prepared to turn the other cheek, there are limits. Companies who consistently fail their users are consigned to history. It is a sobering thought how seriously must all take user experience, all the way to the very edges of the organisations we represent.
Oh, by the way, one workaround for CS1576 in VS2019 16.11 is using Visual Studio 2022 preview 3. I tried to make that information more widely available today, but that didn't work out. I hope you managed to get back working quickly despite the unanswered question you'll find high up the web search results.