Sunday, July 13, 2014

Facebook Is No Longer Trustworthy ...

I've been pondering the issue raised by recent disclosures that Facebook "altered" views of some test subjects Timelines. It did this by "hiding" either negative posts, or "positive" posts for certain viewers, and then measuring whether this had a negative or positive effect on the posts placed later by the viewers (if I understand the experiment correctly).

The big brouhaha has been about whether Facebook had violated some ethical rules regarding conducting psychological experiments. There's a very nice discussion here about this aspect of the issue.
ink
However, from my perspective, everyone is missing the real point. Facebook violated its social contract with its subscribers. When we sign up for Facebook, it's understood that Facebook will use our data in managing and optimizing its relationship with advertisers. That's how Facebook makes revenue for itself. We sign up knowing this, in exchange for free services to communicate our thoughts and feelings to others; friends, family, the world, depending on our security settings. However, we have an expectation, and a reasonable one, that Facebook will present that representation of ourselves faithfully. In other words, what I post is what others see. 

Facebook violated that trust. Their experiment involved un-faithfully representing people's presentation of themselves to their friends, family and the world. In other words, I can no longer trust that Facebook will present my representation of myself. 

In this case, Facebook simply "removed" some posts that other viewed. Imagine that: I go to my Facebook page, and see every post I've made. However, someone else going to my page sees a different set of posts. That's not good. I can no longer trust that my friends are viewing everything I want them to see. 

But it gets worse. Now that Facebook has shown it's willing to "hide" some posts, what's to stop them from experimenting and "adding" some posts? First, it might be posts about products. Let's say I click on a particular ad three times in a row when I visit my own page. Facebook could easily "add" a post such as, "I'm really interested in this product! I'm thinking of buying it!" with an embedded link to the product page. That might lead my friends to click on it as well. Facebook could easily "hide" this post from me when I visit my own page. And hide any responses from friends to this made-up post. Suppose I'm applying for a new job. And Facebook has "chosen" my account as one of the "subjects" to which posts will be added and viewed by others than me. I might not get that job because my potential employer saw something they didn't like, THAT I NEVER POSTED AND I NEVER SAW!

Later, it could be posts about something else; politics, religion; anything. And what's to stop them? Nothing, really. 

They've already demonstrated a willingness to mess with your page and what other people see on it. And they whole-heartedly did NOT apologize. They merely stated that they had poorly communicated what they had done.

Think of it this way. You're married. Your spouse, for unknown reasons, and unbeknownst  to you, starts telling stories about you: he's cheating on me; he hits me; he molests the children. All of a sudden you're friends start treating you differently than they have in the past. Finally, you find out. And what does your spouse do?
Doesn't apologize, just says "Well, I guess I could have communicated it to you in a better fashion..."

Would you ever trust that spouse again?

I no longer trust Facebook ...

Sunday, June 29, 2014

The Best Development Quote Ever?

My most favorite quote regarding development, particularly software development, is from Antoine de Saint-Exupry. It is, "A designer knows he has achieved perfection not when there is nothing left to add, but when there is nothing left to take away."

By the way, Antoine de Saint-Expury was not only the author of "The Little Prince", but also a renowned aviator and aviation designer. Given the state of aviation at the time he was flying, less was definitely more.

So why is this important for Software Development as well? Basically it encapsulates and summarizes multiple themes we use; DRY, Minimally Viable Product, Re-factor, etc.

I've seen many projects get in trouble and even fail because this simple maxim was ignored; building more than the customer asked for; building stuff the customer asked for, but didn't really need; not planning out code libraries in advance; not taking advantage of abstract base classes and/or generics.

It's difficult to follow this maxim. It requires some careful planning up front, and some vicious code refactoring AS YOU'RE GOING ALONG. You must be re-factoring, and following DRY principles every single day. Why is this important?

Every single line of code you write is a potential bug. The fewer lines of code, the fewer potential bugs.

The fewer lines of code, presumably, the fewer unit-tests have to be written (which are subject to having their own bugs).

The fewer lines of code, the easier it is for someone else (or you six months later) to read and understand the code.

The fewer lines of code, the easier it will be to extend the application. When you think you are done coding, ask yourself "How much more code can I remove?"

Finally, I mentioned above that this quote applies to more than just software development. Another favorite quote is one I use with #2 child when #2 has a writing project in school. The quote comes from a famous author, whose name escapes me at the moment. It's an apology for a long letter written to a friend. "I would have written a shorter letter, but I didn't have enough time." In other words, I didn't have enough time to remove all the unnecessary words.

Edit, slash, cut & burn; your code will be better for it...

Friday, June 20, 2014

Proud of Your Ignorance?

Granted, I’m a curmudgeon, and take umbrage at things that other’s might easily overlook or forgive. But making simple spelling mistakes on an email blast that represents your company to the world does not strike me as a way to make a great impression. I received this email today:

2014-06-20_1024

I’m sure whatever tool was used to create the original email had some spell check capability.

Is this company too proud to use a spell checker? If they’re not willing, or not smart enough, to use spell checking on a public document, what confidence do you have they will be careful with the work they do for you?

Thursday, June 12, 2014

When is done, done?

This is a question that comes up a lot during planning meetings for Agile projects. Each product, story, feature, etc. ought to have a definition of when it’s “done”.

Recently, we’ve seen an excellent example in our industry. The end of XP…

It’s done. No more work will be done on it. No more support efforts will be provided. It’s dead. Finito. Walked the plank. Entered the great unknown from which none ever returns.

This is actually very useful for us in planning. Ask yourself, when the issue of “done” arises: at what point will I stop working on this.

Sunday, April 6, 2014

Boycott Mozilla?

Given how the new CEO of Mozilla was hounded out of Mozilla by a bunch of intolerant employees, I've decided to never again use any Mozilla products. Firefox has been removed from every computer in my, albeit small, company.

As a Libertarian, I believe any consulting adult should be allowed to enroll into a civil union with as many other consenting adults as they choose. Sanctifying a civil union through a church, temple, or synagogue should be strictly a religious matter. And that religious organization should be free to accept or refuse to sanctify any union they choose. That's what freedom of association, and freedom of religion are about.

However, the tactics of the loud mouthed, self-righteous, intolerant employees of Mozilla, and that stupid OKCupid web-site, are too much for me.

Their behavior smacks of the tactics and goals of every modern totalitarian,  fascist regime that has existed since the beginning of the 20th century. I want nothing to do with them.

So, I am going to boycott Mozilla because of the intolerance of their company, for their punishing of someone who exercised his Constitutional rights in a manner that they deemed inappropriate, and for their absolute ignorance and hypocrisy of what free discourse means.

I hope others will join me, and eventually the company devolves into bankruptcy, and the loud-mouthed peons with their silent supporters are out on the street without a job. Nothing would be a more fitting result.