Friday, November 08, 2013

First Impression

These are song lyrics for an original song.  Really, it's a gag song, inspired by a conversation with two friends of mine.

First Impression
Lyrics by Robert Park
Music by:  N/A yet!
November 8, 2013, 12:09am

The first time I saw you, I just knew the song was true
I became a believer when I saw your face
Wanted you to see me, ever so desperately
Didn't even know your name, did I lose my place?

Oh girl, I was stupid, shy, weak, and vapid
Couldn't even show you the one good side I had
And there you were so fine, so gorgeous, such a real dime
Who could ever blame you for getting sour and mad?

(Chorus)
Can I have a second chance for a first impression?
I'm talking about giving love a chance for resurrection
I've had so much time for some proper reflection
So please give me a second chance... for a first impression.

Not saying I was right, you can clearly see my plight
Everyone can be ignorant and make mistakes
Asking for forgiveness, really I am such a mess
Know it's not like movies where there are second takes

Oh girl, see my brain fart, pierces like a dart
Was too astounded by you to even think straight
Can't you see I'm better, I tell folks that I met her
The girl who can make me a better soul and mate

(Background vocals)
So I'm asking again, I just want a chance...

(Chorus)
Can I have a second chance for a first impression?
I'm talking about giving love a chance for resurrection
I've had so much time for some proper reflection
So please give me a second chance... for a first impression.

(Rap Bridge)
So you and me, were in the bathroom you see
Didn't even know it was a girl's room, it was an emergency, zoom!
Not trying to excuse what my muse is discussing
Even though you found the whole situation disgusting
But you were so fine, sublime, woulda been a crime
If I didn't ask for your name, number, and dinner on my dime
And you just stared at me incredulous, atmosphere just nebulous
Swear I shrunk ten sizes that day, now in a funk that I cannot slay
But I only regret it because I can't forget your piercing gaze

(Chorus)
Can I have a second chance for a first impression?
I'm talking about giving love a chance for resurrection
I've had so much time for some proper reflection
So please give me a second chance... for a first impression.

(Background vocals)
So I'm asking again, I just want a chance...

(Chorus)
Can I have a second chance for a first impression?
I'm talking about giving love a chance for resurrection
I've had so much time for some proper reflection
So please give me a second chance... for a first impression.

Tuesday, October 08, 2013

Deep Contemplation

Got this story from my friend on weixin.  Deep questions, indeed.

那是我很小很小的时候,有一天,爸爸铿锵有力地给我念了一句名言:“知识就是力量,法国就是培根。”(Knowledge is power,France is bacon.)父亲不会知道这句话从此在我幼小的心灵里造成了多么巨大而长久的困惑。 之后的十多年中,这句话一直困扰着我,产生了无数的谜团 。这句话的后半部分到底是什么意思?为什么能够和前半部分联系到一起?知识与力量、法国与培根之间,难道冥冥之中有着某种难以言喻的联系吗!? 我,无法理解。 更让我恐惧的是,每当我向大人们提起“知识就是力量,法国就是培根。” 的时候,他们都毫无惊讶的神色,而只是默默的点头赞同,甚至有几分欣喜的目光含在眼中。 或者当有人说到“知识就是力量。”的时候,我总会紧接着强调“法国就是培根!” 可从来没有人以怪异的神色盯着我或想要纠正什么怪异的事情,有的只是微微一笑,点头赞同。 某一天,深陷困惑的我终于鼓起了勇气 ,找到一位老师请教:“‘知识就是力量,法国就是培根。’这句话到底是什么意思?”可没想到换来的却只是整整十分钟关于“知识就是力量”的解释,完全没有触及到“法国就是培根”。当老师讲解完毕,我怯生生地试探道:“法国就是培根?”老师轻描淡写地答道:“没错。”年仅12岁的我根本没有勇气和信心再继续追问下去了。 我,绝望了。 从那一刻起,我再也没有去追问过这句话的真意,我坚信自己永远不可能弄明白这句话,它就是一个解不开的谜团,我能做的只是当这句话被提及的时候假装和所有人一样明白它的意思。我彻底放弃了追寻。 直到多年以后的某一天,我不经意在书本上看到了这句话 : Knowledge is power. ----- Francis Bacon 那一瞬间,童年崩坏……

Tuesday, September 03, 2013

Wow, RIP Ronald Coase

The man was smart.

His writings were the centre of arguably the most mind-bending course I ever took during university (Economic Analysis of the Law, BUEC 495).  My whole way of thinking was literally transformed by that course.  Coase's stuff is in my mind when I think of a lot of things.

Rest in peace, good sir.  

I once even wrote a poem that mentioned you.  :)

Monday, August 05, 2013

Should project managers have domain expertise?

I wanted to write this post as a comment to a LinkedIn discussion, but found that I was way over the character limit.  Therefore, I'm posting it as a blog post here.  The question was whether IT project managers should have programming experience.  While my post is specifically related to software project management, I think my concepts in general apply to any project where the work needs to be carried out by people with specific and unique technical skills.  The domain of expertise could be anything from IT to construction to military missions.  Here's the post.

First of all, I should comment that it's not absolutely necessary for an IT project manager to have coding experience.  There are lots of IT projects in this world that are managed by project managers with zero coding experience.  Therefore, I'll assume that the discussion is not about whether coding experience is necessary, but rather that it is about whether coding experience is preferable.

And of course, in IT projects that have nothing to do with software (for example, datacenter projects, desktop deployment projects, etc), coding experience would add less value than for software projects.  So I'll assume that this discussion is only for software projects.

I can think of several good reasons why it's a good idea for software project managers to have coding experience.  The below points assume that a project manager's understanding of coding is better if he/she has actually experienced coding.  It is like saying someone understands how to ride a bike better if they actually have ridden a bike before.

1.  Increased communication efficiency
Software development has lots of unique terms and processes that are very important.  If understood and used properly by skilled people, you can make high quality software.  If you have a project manager who has zero coding experience, that communication becomes inefficient because the project manager is not able to keep pace with the conversation.  It is like trying to manage workers who speak a foreign language.  Yes, it is possible, but the workers must slow down their conversation speed by 50% in order to translate the conversation to the project manager.  Time is money.  In this situation, an employer is saving money by spending time.  If it's not an equal or positive tradeoff (and it usually isn't because delays can be expensive), the employer's decision may end up being very expensive.  If there are difficult problems, then the conversation speed needs to drop to 75% in order to make sure that the problems are understood properly.  And we are not talking about only meetings.  We are talking about conversations that happen in bug tracking databases, long email chains, escalations, etc.

2.  Increased decision quality
The project manager is in charge of the day-to-day management of the project: tactical direction and execution.  As such, there are times when the project manager must make decisions about what to do and what must be priority (though in some project management styles, project team members can receive a lot of freedom).  The point is that the project manager must make decisions.  If the project manager has no coding experience, he/she will have a more difficult time understanding the issues and status updates provided by team members (see point #1 about communication efficiency).  Therefore, a project manager with zero coding experience would be in a position where he/she has great power and great responsibility, but lack wisdom about how to use it.  This is because real-world wisdom is gained mostly through experience, not the classroom.

It is true that the project manager can rely on the feedback of the team to make decisions.  But why do that if it is more inefficient (needs more time), more costly (needs more people), and still prone to error and poor decisions (poor understanding in leadership positions)?  Besides that, the risk from having a project manager with poor understanding is infinite.  Would you want the project manager of a building construction site to have zero construction experience?  People's lives would be at risk.  People's lives may not be at risk for most software, but there are other types of risks.  As Yishan Wong notes, "A skilled non-technical manager can get a pretty good idea, but all other things being equal, they will be outperformed by a similarly-skilled manager who has a technical background."

3.  Respect and Teamwork
If the project manager has coding experience, the project manager is more capable of understanding and communicating with the project team.  This is important because then the project manager will find it easier to get the respect of the team.  Technical people are usually very smart.  Nobody likes to work under someone they think is stupid and not qualified for being in a supervisory or management role for their particular line of work.  If the project manager is able to gain respect from the team because of being able to understand the team (again, we assume that coding experience makes it easier for the project manager to understand and appreciate the team's real issues), the team will naturally be more motivated and able to work together better.  Such natural motivation and teamwork is always more preferred than not.

One final point I'd like to make is that people often say a business (or non-technical) person is necessary to talk with the customer and understand the customer.  Yes, this is normally the role of the project manager.  I am not saying that communication skills, customer service skills, scope management skills, budget management skills, big picture vision, etc are not necessary.  These skills are very necessary.  What I am saying is that if the project manager has these skills AND coding experience, the project will have a much higher chance of success, no matter how you define project success.  I find that people often say if it's not necessary, then there's no point in having it.  The question shouldn't be whether it's necessary.  The question should be if it's preferred, and if the customer can live with the risks that would exist if you do not make the preferred decision.

Sunday, June 09, 2013

On the Absurdity of Internet Trolls

Every now and then, I run across Internet trolls.  I always see a lot of justification for why troll behaviour is OK, and it always breaks down to either:
1.  They're jerks and will never change, so stop being such a victim.
2.  Everyone has an online version and offline version of their personality, so they're not "really" like that in real life.

I've thought long and hard about this logic and have concluded that it is not sound. I posit three reasons why these lines of thinking make no sense.

Reason #1: Separation of Personalities Is Not Tenable

The online personality and offline personality are both housed in the same mind from the same person. Whatever decisions and statements are made online or offline, those decisions and statements are made consciously. It is not like the person has a split personality that switches on and off when going online and offline. If such split personalities existed in such people, then those people would have major psychological problems that do indeed need help, and their behaviour can be at least excused, though probably not found acceptable. Most people would find it offensive to be labeled as having such psychological problems, so we can likely conclude that they are making their decisions and statements consciously.

Other possible defenses like constant drunkenness are also possible, but not probable. People who are drunk 18 hours a day have major problems that also need fixing, and most of these people would again find it offensive to be labeled as such social misfits. Yet another possible excuse is that the online persona is simply a fake persona made for entertainment's sake, like Borat, Stephen Colbert, etc. This excuse is also not probable because I have never seen anyone make such online attacks for the entertainment of a widespread audience; their purposes are almost always much more self-serving, and certainly not a career in the entertainment industry. Therefore, it's much more tenable to conclude that they are making their decisions and statements consciously as an expression of themselves wholly, and the argument that one is doing it "for the lulz" or for one's own entertainment is the epitome of selfish behaviour that offers no benefit to others (and can rather actually cause unnecessary pain).

If those decisions and statements are made consciously, the person is then responsible for those decisions and statements. The best test here would be what a a court of law would think. And a court of law would say that if one is in possession of sound mind and judgement, that person is indeed responsible for whatever decisions and statements they make. This is why it is tenable to sue for libel for what is said online, even if a statement was made only in jest. Therefore these people cannot then say they made those decisions and statements unknowingly. And if they cannot say they made those decisions and statements unknowingly, they also then cannot say, "No, this isn't me in the real world, actually, I'm really nice." The inevitable logical end is that these people must own their statements as being part of themselves wholly and are a reflection of their character. If I have malice in me, I have malice in me, I cannot pretend that it only exists online. Whether that malice reflects all of me is not the subject of discussion. Whether that malice exists at all is the subject at hand. And we have plentiful extreme examples that demonstrate why we cannot and should not separate interactions in the online world and offline world.


In the above cited examples, there are three things to consider. Firstly, real people are attacked by trolls. Particularly vicious attacks can be done from behind a screen of anonymity, but non-anonymous attacks can also be vicious. The consequences are that real people get hurt, resulting in at best a loss of quality of life, and at worst, death. For school children, it can be particularly hurtful because the people who bully them online also often bully them at school (in a study on cyberbulling, cyberbulling was found to be a possible contributor to suicide, but certainly could not be labeled as the sole or main cause; it is unfortunately a complicated issue). Secondly, the attackers could not fathom the extent of damage their actions would have; in many cyberbullying cases, attackers would note that they didn't truly mean for someone to go die, and yet they contributed to a suicide. Thirdly, the fallout extends beyond simply the victims, and can even hurt the attackers and their family and friends, especially if their identities are revealed publicly.

As such, despite the appearance of separation between the online and offline world (many of these people looked like normal happy people offline), the fact is that decisions and statements are still made by the same person and the consequences can be very real. It is true that online, it may seem less real because you're not face to face with someone, but real-life consequences we have seen in the above cited examples and others demonstrate that life is not actually any less real online. The consequences force the two worlds to merge, no matter what the online world thinks is true.

Reason #2: Apparent Incapability of Discussion

A very enlightening article was written by Paul Graham, who runs one of the more civil and intelligent online forums I've ever seen. Quoting from his article:

The third cause of trolling is incompetence. If you disagree with something, it's easier to say "you suck" than to figure out and explain exactly what you disagree with. You're also safe that way from refutation. In this respect trolling is a lot like graffiti. Graffiti happens at the intersection of ambition and incompetence: people want to make their mark on the world, but have no other way to do it than literally making a mark on the world. 

The final contributing factor is the culture of the forum. Trolls are like children (many are children) in that they're capable of a wide range of behavior depending on what they think will be tolerated. In a place where rudeness isn't tolerated, most can be polite. But vice versa as well. 

There's a sort of Gresham's Law of trolls: trolls are willing to use a forum with a lot of thoughtful people in it, but thoughtful people aren't willing to use a forum with a lot of trolls in it. Which means that once trolling takes hold, it tends to become the dominant culture. That had already happened to Slashdot and Digg by the time I paid attention to comment threads there, but I watched it happen to Reddit.

I have also noticed that most online trolls, bullies, and attackers in general are not capable of or not interested in carrying a high level of discussion. Rather, they will resort to insults instead of breaking down another person's points, understanding what is being said, and then responding to those points. This may be partly due to lack of interest or attention for the subject at hand (i.e. they are more interested in making people angry than in actual discussion) or in fact due to lack of intelligence. I think Paul Graham is correct on all counts. In fact, the very last paragraph I quote above seems to be exactly what happens at many online forums I have observed. People interested in having intelligent discussions get run off the website if they're not willing to accept the reality of the website.

If Paul Graham is right (and again, he seems to have solved the issue in his own online forum), then the issue has nothing to do with having online and offline personalities. Rather, the issue is that some people are malicious and some people are not, and the malicious people tend to group together and bully the non-malicious, especially if weakness is sensed. So it's not a separation of online and offline personality that is the issue, but rather the identification and grouping of certain types of people. And it is easier for me to think this way because of what I have explained in Reason #1: Separation of Personalities Is Not Tenable. The fact that many counterexample personalities exist who are not different online and offline seems to indicate that the idea of separation of online and offline personalities cannot be a universal rule, or even an overly common rule.

Reason #3: The Question of Justification

I have alluded to this in my discussion of Reason #1, but I will expand on this here. Two questions must be answered.
1. Can such behaviour be justified online even if it cannot be justified offline? That seems to be the implication of the logic to separate the online and offline personalities.
2. If the answer to the above is no, and the behaviour cannot be justified online, then why is it considered acceptable (or at least inevitable)?

Question 1 is obviously the more important question, because if the answer is yes, then there is no point to discuss Question 2. And I honestly cannot think of any way to justify rude behaviour, especially trolling, cyberbullying, and the like. Let's be clear: being rude is not the same as being honest. If bad news needs to be broken, you can do it gently, or you can do it bluntly, but you can do it still honestly without any use of insults. So I'm talking about pure rudeness, and worse, pure malicious attacks. If defendants of trolls have a way to justify such online behaviour, they can explain that justification. If they cannot justify it, then my point on Reason #3 as to why I can't agree with traditional troll defenses is hopefully self-explanatory; one would be trying to justify something that is not justifiable.

If the answer to Question 1 is no, one might give the excuse that it's at least acceptable or inevitable. Again, there are counterexamples in this world that demonstrate that this type of behaviour is not inevitable (most major forums where I stick around can be presented as counterexamples, though not all). So there can be no debating the point of inevitability, as one would not be able to claim that my counterexamples are not real. Then continuing with this logic, if this type of behaviour is not inevitable and also not justifiable, then I cannot think of any reason why it's acceptable. Troll defendants are welcome to try to explain this to me. If they cannot, then hopefully my exposition on Reason #3 as to why I cannot agree with troll defendants is complete. If this could be explained to me, it would literally be changing the way I see everything about the Internet. I would find that very enlightening, but do not have any reason to believe that would come to pass.

In conclusion, troll defendants seem to make cheap excuses to explain the Internet in a way that doesn't seem to hold up under scrutiny, and I think people in general would benefit if they didn't make cheap excuses for other people. If other people are malicious for whatever reason, either accept it and move on (eg. leave that online community or find ways to ignore the trolls), or don't accept it and fight them. But don't try to make excuses for them and say that it's OK. Myself, I've chosen to accept it and move on.