Decisions and Priorities

Developers and designers don't exactly have it easy. I'm not looking for any pity here, and I'm certainly not complaining about something that, from a certain perspective at least, is a door to endless possibilities. I do, however, think that the decisions we as developers and designers make are worth discussing, and those on the other side our servers can benefit from being informed about some of the concerns we have that are much more complicated than they might appear.

Take comments, for instance. As of the time of writing this (June 14th, 2014) I do not have or allow comments. That is something that I would like to correct, but it's not as simple as a "yes" or "no."

The first and most obvious issue is the "how" part. Enabling comments means creating a form or some other method for a user to translate their thoughts into text, send that text to the server, and for the server to save that data in an organized format in a database with some way of linking that comment to that particular article. Or, perhaps a third-party service such as Discuss service could be used. There are multiple solutions, and only one can be the best fit for the desired outcome, though it usually involves at least a little bit of compromise and sacrifice because there really is no such thing as a perfect solution in many cases.

Next comes determining the benefits and consequences of various solutions. For example, if I were to create the commenting system myself, I would have to also deal with handling spam and trolling which essentially starts the whole decision making process over again with its own set of issues to be solved. I could use a third-party service instead, but then I would no longer be in control of the data which means that I would be opening up the door for privacy concerns and everything would be at the mercy of whichever service I used (they do some updates that could cause incompatibility, or their servers could go down, etc). I would also have to be concerned with whatever they provide fitting in with everything else, accept the possibility that there will be complications from the melding of our separate code, as well as update my Content-Security-Policy to allow for whatever they require, which may not be to my liking.

Since this a DIY kind of website anyways, my obvious choice is going to be creating my own commenting system. This means that I have to decide on how to filter comments, what to allow and what to get rid of, whether or not I want to allow links and images, what to do when comments contain content that I have decided I don't want, and protect my server and its users (you) from anything malicious such as someone adding JavaScript into a comment. Ideally, this process would be automated, but there's really no way for a computer to catch everything, so personal moderation would be required as well.

I will need to come up with a set of rules based on what I am willing to allow (comment contains a section of text that begins with http://, https://, //, possible with href= before it to find links), decide whether to remove the offending part of the comment or not allow the comment all-together, whether or not I want any further action such as blocking the user or sending me an email about the incident. This set of rules would be rather complicated, require frequent modification, and still only provide a partial solution. Personal moderation would still be required, and even then I would be faced with the issue of finding the the correct balance between open discussion and censorship, and that's something that will always upset one side or the other.

And finally, we can deal with priorities. Yes, I want to allow for you to comment and discuss things. I would love the feedback and suggestions. But should I worry about that before or after I add the ability to add images to my articles? Is that more important than whichever bugs I happen to be dealing with at the time? There are always a variety of things which require my attention, and too often some of them aren't able to be dealt with immediately because there is something more important that should be solved first.

For what it's worth, giving you the opportunity to provide feedback and share with me as well is very important to me. And this topic in particular is something that I would love to be able to read the comments on.