Sunday, February 28, 2010

CS3216: Varsity Dynamics

(Hey, I thought I would do/learn more programming, why am I writing so much stuff sia.. =p)
(Half written)

Firstly, I would like to give some background on team dynamics. I found the principles illustrated in this book quite useful - http://en.wikipedia.org/wiki/The_Five_Dysfunctions_of_a_Team.
  • Absence of Trust,
  • Fear of Conflict,
  • Lack of Commitment,
  • Avoidance of Accountability, and
  • Inattention to Results.
I find avoidance of conflict especially relevant for Asian cultures. Small problems and miscommunications tend to remain hidden because no one wants to voice them out until it becomes too big to ignore.

Okie, so the next step would be to try to detect these symptoms. I suggest a free and simple method for startups is to create a survey using google forms and ask 10 simple questions to every team member about these 5 symptoms.

1st part:
1. What are the pros and cons of working with people you are already acquainted with for work/project?
2. List out the important traits that you would look for in a team member. Share and compare them
with your team mates. How similar or different are they?
3. The members of VC considered their team “ideal”. However, what are some of the problems
that you can foresee?
4. Is it better to work with talented people or people you like?
Thoughts
1.
Pros
You save the time getting to know them superficially. When you have disagreements, you can still work it out as you are all friends.

Cons
It might be more difficult to give feedback objectively about work without hurting any feelings.
Friends might show different sides of themselves when under work pressure.

It depends on how long you've known each other, and whether you've worked with each other before. Generally though, it's probably better to work with people you know, because there's peer pressure to not let your friends down.

2.
I try to find teammates who score highly on the Passion, Character, Intelligence test.
Passion - They need to be passionate about the project.
Character - I think it's important to work with people who have good character and who are willing to work for the good of the team. This also covers their work attitude.
Intelligence - I think it's so important to work with intelligent people. Intelligent people are different from smart people. To me, intelligent means being smart appropriately without being a smart aleck. Intelligent people are willing to say that they made a mistake or they are unsure of something.

3. Not enough balance in terms of the technical background required. (Easy in retrospect)

4. Err.. It would be good to work with the people whom you respect.

2nd part
1. VC started out with an ambitious design, aiming to make many changes to many Facebook
game conventions (i.e. combat system, story as a reward, semi-exploratory quest design).
Would you have recommended them to pick a simpler design or would you have encouraged
them to go along with it?
2. How different would the situation have been if there was another strong programmer within the
team (a 5th member)?
3. How would you decide on how much to do given the composition of your project team?
Thoughts
1. I think they made a big mistake in taking on too much work that requires a lot of effort and time. Content production is very difficult to automate. I wonder whether they could have tried to let users generate their own stories/content.
2. Depends on whether the work roles are clearly defined. The other programmer needs to have strong execution skills that's necessary. Given that they kept switching the language, I'm not sure whether the 5th programmer can keep up.
3. Make everyone do a time budget.
List down the features and cut half of them, double the time estimation, work consistently.

3rd part
1. How different was the environment for working on the project during the school term as compared
to the vacations?
2. What were the main reasons for VC’s failure during the vacation? What would you have done
differently to prevent it?
3. Discuss with your team members, some of the lessons in this case study that can be applied to
your Final Project.
Thoughts
1. No deadline pressure
2.
3.


(Once again, I think Prof Ben is extremely prescient in forcing everyone to study team dynamics. This might be the breaking factor between a superstar team and a team of "average" people willing to work for the good of the team.)

Thursday, February 25, 2010

CS3216: A different GetHelp blog post

Recently, I read a book on User-Centred Design (User-centred Design Stories, Real-World UCD Case Studies, Authors: Carol Righi, Janice James. You can find some good books in the public libraries, and I'll post the title when I get the book back from my friend). I don't think many people have heard of the term before. I certainly was not one of them, but it's actually surprisingly quite important for good application design.

There are some basic but common sense principles which can be found here: http://www.usabilitynet.org/management/b_design.htm
  1. Design for the users and their tasks
  2. Be consistent
  3. Use simple and natural dialogue
  4. Reduce unnecessary mental effort by the user
  5. Provide adequate feedback
  6. Provide adequate navigation mechanisms
  7. Let the user drive
  8. Present information clearly
  9. Be helpful
  10. Reduce errors
There are some simple and cheap (almost free) practices that I want to share from the book. These are recommended practices before serious development to avoid massive re-writing/re-design.

This is where the non-programmers can really pull their weight. It just involves being human enough to understand that the general population is not as tech-savvy as people who work with computers everyday.

List of tasks - Can your app really help your users do what they want to do easily?
Create a list of tasks that you want your users to perform with the application within a timelimit and measure the completion rate. E.g. Registration, doing some work, creating a file, editing.. etc. Anything below 70% should be a huge warning sign.

Do Wire-framing - test the usability, intutiveness of the design
This just means drawing the design on paper and showing it to sample users. If the users are unable to complete the lists of tasks logically using the paper samples, something is not intuitive about your design/workflow.

Card-sorting - Improve your information flow within the app/website
If you are developing an application/website, write down the section headings/menu options on a series of cards, and let the users arrange the cards in a logical manner that makes sense to them. You'll realise that users might have a different information hierarchy from you.

Webcam
Record the users' reactions when using your application.

(I think the app is probably better than what I can do.. so sorry for making negative comments just for the sake of it).

1. Usability vs Aesthestics
Okie, the point about Reddit vs this app has been made. I think the design is graphically okie, although the top navigation menu is not easy to read. People read from left to right, so there's no need to make it slanted at an angle of 45 deg.

2. No. of options
Paralysis by analysis - User will be stymied by too many choices.
A simple way would be to reveal the following sections only when the user completes a section. E.g. After typing in the "need", the user will be shown the bottom half of the options.

Some options can be made default, such as location.
(Is it redundant to post it on twitter since you're already posting on FB? My twitter friends are not really the same group as my FB friends.. People use twitter more for semi-professional reasons and FB seems to be for keeping touch with friends.)

3. Incentives
I think it would make sense to allow custom badges to be made. E.g. CS4 Pro.. etc.
How to design user reputation systems: http://sharetheconversation.blogspot.com/2010/02/how-to-design-user-reputation-systems.html

4. Other problems
How to integrate user testing into development

The "Mum" test
Actually, I think the most useful test is the "Mum" test.

Lastly
Lastly, why did I read that textbook (totally unrelated to the case study.. picked it up during a random walk in the library)? We are using some of it to build a better application for our client and it is useful.

References/Further reading
Why I hate your web app: http://www.drawar.com/articles/why-i-hate-your-web-app/85/
Agile and UCD discussion: http://www.agilemodeling.com/essays/agileUsability.htm
Slideshare on Agile and UCD (125 slides): http://www.slideshare.net/abcd82/bringing-usercentereddesign-practices-intoagile-development-projects-presentation
Commando Usability Testing: http://www.astatespacetraveler.com/commando-usability-testing/
(Man, I finally figured out why people were posting funny blog posts with the same title. The reason: it's a assignment. Another hoop to jump through..
Sorry Prof Ben. Been busy reading other stuff as evidenced from my furious postings during the holidays. And I really sympathise with you having to read so many blog posts..
Anyway, since I'm late.. This is my take on it. I tried to make it informative and practical for you and the people who bother reading.
I understand why you set this case study.)

Monday, February 22, 2010

CS3216: Find out what makes people tick - My basic understanding of behavioural economics

Why do people sometimes behave predictably and yet they sometimes do things totally unexpectedly?

Regarding Chewy's points, I realized that besides cultural differences that appear odd, there are some underlying theories that help explain irrational human behaviour.

Monetary Value of Time
For example, the inability of people to be objective about the monetary value of time.

Prospect Theory
Another interesting concept is prospect theory (http://en.wikipedia.org/wiki/Prospect_theory) that works on potential losses and gains. I think I understood a bit more when I worked it out just now. Imagine a scenario when you buy insurance (numbers taken from Wikipedia's article). Let's say that you might lose $1000 (v=-1000) and the probability that you think you might lose, P1=0.01. Let's also say that the premium you need to pay is $15.
Therefore, you need to compare between paying a premium or losing it all if you don't pay a premium and something happens.
Utility = Probability * Value (Utility is a measure of how much enjoyment you get from making an economic choice a.k.a. "happiness" =) )
Hence, the utility associated with paying the insurance premium is
U(pay premium) = P(pay premium) * Value = 100% * (-$15) = -$15
The utility associated with not paying the insurance premium is
U(not insured) = P(perceived probability of total loss) * V(total loss) + P(perceived probability of no loss) * V(no loss)
= P1 * (-$1000) + (1 - P1) * (0) = 1% * -$1000 = -$10

Assuming that we are starting from a reference pt (0,0), hence, most people would pay the premium, because they think they will suffer less from paying the premium. This is because they over-emphasize the probability of suffering an accident (P1 = 0.01 might be too large a perceived chance).

Hence, people think to overemphasize small probabilities, hence overreacting to them, while underreacting to medium and large probabilities.

Further reading
Man, I caught myself making these errors in my thoughts everyday.. =p (http://bookoutlines.pbworks.com/Predictably-Irrational)
1. Relativity
2. The Fallacy of Supply and Demand
3. Zero cost?
4. The cost of social norms
5. Influence of arousal
6. Procrastination and Self-control (I am guilty)
7. The high price of ownership
8. The cost of having too many options
9. Expectations
10. The power of price on perceived quality

Marketing
Most people would find "service marketing" concepts useful. It's not that difficult.. much easier than the assignments =p
7Ps
Product - How to make your product wanted/needed/desirable?
Price - Pricing strategy
Place - Where people can buy your product
Promotion - What kind of promotional activities do you do? Advertising? Freebies?
People - The people servicing your customer
Process - What steps does your customer take to buy your product/service?
Physical evidence - The tangible part of your service


This provides a good basic framework for thinking through the marketing strategy. I used it before.
Common sense and budget/resource restrictions apply =)


References
http://bookoutlines.pbworks.com/Predictably-Irrational
http://www.nichegeek.com/profiting_from_human_irrationality_10_must_read_books

P.S. I'm not sure what I was supposed to blog about for the previous 2 weeks. I thought some of the things I was reading were also relevant to what the class wants to read. Furthermore, I think my classmates probably covered most of the points I wanted to raise.

Hope Jace does not mind the year 4s asking him so many questions... we just think that he could use some guidance =) His attitude is great! His presentation was not bad.

If you spot any errors, please tell me. =)

(Hi, this is one of my interests, although I don't know much about it yet. I used to hate economics because I did not like the overly theoretical stuff taught in JC and I thought ceteris paribus was bullshit compared to reality. However, age has caused me to understand that creating a simplified model might be the key to understanding a complex phenomenon. Also, "Freaknomics" sparked my interest in econometrics.)

Saturday, February 20, 2010

Conway's Law

http://en.wikipedia.org/wiki/Conway%27s_Law
"..organizations which design systems ... are constrained to produce designs which are copies of the communication structures of these organizations."

So, organisations will tend to produce outputs that resemble their internal communications structure.
The internal communications structure is a derivative of the internal social structure.
The internal social structure is a derivative of the characters of the people in the organization. This includes the leaders and followers in the organisation.

Hence.. if you want excellent outputs, you must have the excellent people with character. Extra emphasis on character should be placed when building a team, not just weightage on ability.

Argument flaws?

Article: Making Computer Science more interesting (Stanford)

Stanford CS curriculum adapting
Passion is evident in good teachers. Is that an iff statement?=)

Wednesday, February 17, 2010

Eric Raymond - How to become a hacker

Hi,
I know I have been reposting a lot of content, but I really hope that you guys who have been to my blog to read it, cause I find them meaningful and I hope you do too.
I don't think I have either the experience, knowledge or time to write things down again when people who are vastly more qualified and have executed on their plans have already shared what they know.
If you find that the stuff is not worth your time, please visit other blogs.. I can't stop you from going somewhere which is a more valuable use of your time.

Classic:
Eric Raymond - How to become a hacker
http://catb.org/~esr/faqs/hacker-howto.html

Interview with Paul Graham

http://mixergy.com/y-combinator-paul-graham/
Paul Graham started Y Combinator, which is a great model for Singapore's startup scene. His essays are a source of inspiration for entrepreneurs too.

Tuesday, February 16, 2010

Interview - How to Build a Business - WooThemes (Founder: Adriaan Pienaar)

This interview is important for people who want to start their own business (length: 1 hr).

Important points
1. You don't need to be based in Silicon Valley.
2. Did not need to raise VC.
3. Started organically
4. Work with talented people around the world
5. Staying grounded despite the money
6. Doing what you love

http://mixergy.com/woothemes-adriaan-pienaar/

Seek-Sync-Stream - Save fuel, make profits

Hi, my team are in a competition called Challenge Future.

The problem we are trying to solve is how to save fuel costs during transportation, while allowing businesses to stay profitable.

3 mins of your time: http://www.youtube.com/watch?v=PnPZyITcJU4

We need your votes and feedback (info(at)e3alive.org)
For more details, please visit this: http://e3alive.org/2010/02/seek-sync-stream-save-fuel-make-profits-p/

Thank you! =)

Monday, February 15, 2010

Why Engineers rock

HP - CeNSE (Central Nervous System for Earth)
IBM - "Smarter Planet"
Cisco - Massachusetts

Although the HP system is probably more for finding more oil.. zzz.

This is science fiction turning into reality.. (Remembering what Dr. Erik told me about having loads of science fiction books in his university's engineering library).

Saturday, February 13, 2010

新年

家的温暖
回忆的海
红即是血也是亲

Friday, February 12, 2010

Six Lessons for Six Sons

Confidence, Fortitude, Pride, Persistence, Fearlessness and Focus.
Book for life.

Wednesday, February 10, 2010

Google Buzz and Privacy Settings

This is interesting. Google Buzz is definitely experiencing a higher adoption rate than twitter, since it's more mainstream. Almost everyone I know has a Gmail account, and Buzz automatically adds your Gchat friends to your Buzz.

Some privacy issues before people get too happy with Buzz..
1. You can restrict your posts to only certain groups of people. That is extremely useful especially for me, as I have professional and personal contacts in my gmail account. Look at the right of the "Post" button, and you can choose either the "Public"/"Private" option. You can control the "Private" option using the "Groups" feature in your Gmail Contacts settings. (I'm assuming everyone knows how to create contact Groups in Gmail. If not, http://mail.google.com/support/bin/answer.py?hl=en&answer=30970)
2. Apparently, you cannot post a Public "Post" in Buzz without allowing your profile to be public. Hmm..?
3. Look carefully at the info you are putting on your profile page. It might not be good to have all the info listed, much as you like feeding the Google machine.
4. You can block people from your updates.
5. Uncheck the Share Your Followers option.
6. Try not to use the personal profile URL. That will reveal your Gmail address to the world.

I'm still figuring out how to:
1. Group the updates according to contact group

User interface is a bit clunky, like what Dingyan commented.
It's a rather inefficient use of space, compared to twitter.

Anyway,
The Google Buzz API is here: http://code.google.com/apis/buzz/

The next titanic battle might be between Google and Facebook, not Google and Microsoft anymore. It's already happening with their executive hires.

I'm waiting for the China clone.. =)

Thursday, February 4, 2010

Dinner seminar by Prof Wong Poh Kam

Prof Wong shared some quite basic information about the angel scene in Singapore which was quite good. I guess the event drew the right people who were in the proper stage of starting up... If you are interested, you can google for Business Angels Network South East Asia (http://bansea.angelgroups.net/). It was good to meet Yiyang, Jian Hong, Jia Ji, Laurence and Tomithy there too.

I managed to talk to some of the people from NEC who were involving in managing the portfolios. Pretty interesting bunch of people, I think I'm going to bug Daphne (life science) and Laurence (clean-tech) more.

I learnt from Daphne that people who wish to start startups involving medical devices should design first with both the market in mind and FDA's/CEMARK's regulations, or a lot of resources, time and effort would be wasted.

NEC is doing a great job under the pressures of a limited budget. Hope they improve even more and become the best in Asia.

Meeting w Dr Ng Kah Loon: Experiences from research, teaching and life

I met Dr Ng Kah Loon today. Now I understand why he's such a good teacher. It's simply because he likes to teach.

I can't believe the intellectual loneliness of being the only one doing network theory focused on epidemiology in Singapore. I would hate being in that situation.

Another takeaway I got was being 知足, unfortunately, I'm still too young or too changed to be satisfied with that state of mind.

It's interesting that he shared his experience working with people from other academic disciplines. It took 1 person to play the important role of an interface (some hybrid of mathematician/computing/physician/medically trained) before the whole team could gel. He also shared the importance of being an independent researcher who is able to identify potential research areas that they can work on. It just sounds so much like entrepreneurship that I was a little taken aback. It was also crucial for him to have did research overseas before coming back to NUS as NUS is too sheltered an environment.

Still looking for someone in NUS who has did work on Ant Colony Optimisation.. hmm..

Tuesday, February 2, 2010

Inspiration: Steve Nash Athlete

http://www.fastcompany.com/magazine/142/transition-game.html
Man, I like this guy. His playing style, his character (they're linked inextricably), his passions, his intelligence, his speed..

Waterpolo

Playing polo today was kind of surreal. I did something I hadn't done in years, which was to catch a opponent's pass in mid flight. The funny thing was, it was automatic. I knew that I could get it. Immediately after I got it, I turned and swam off without pausing. It was so fluid that I only thought about it after I did it.

After that, I just took a break and watched how the year 1s were playing. I guess the break in Shanghai was good. I learnt to play with a better sense of rhythm and overall game vision. More thinking without the ball than with the ball. It all began when I became much slower and weaker. You have to learn to time your swims better than younger, fitter and faster players.

Suddenly, what was becoming mundane is growing interesting again.

FYI Presentation: Presentation Secrets of Steve Jobs

Hi everyone,
For people who are time-squeezed, this is the slideshare of the book that Yan Jie introduced.


Enjoy =)

Feedback on "Causes" presentation

It's always interesting to hear someone present something that's related to social or environmental issues. Inadvertently, people will either like your opinion on it or disagree with you sharply. I guess we are Asian, hence we keep our disagreements hidden.

Groupwork
I think the "Causes" group prepared for this presentation quite well. The slides were simple and effective. There's honestly no point in over-designing the slides as long as the message is clear. (btw, I think there's a typo in the file name you guys uploaded.)

Presenter
Jonathan was a very engaging presenter. Jonathan is surprisingly not afraid in front of an audience. I always thought he was a bit over-cowed by me and Sebastian in our FB group. I guess people just blossom on stage and are able to crack jokes.
To be harsh, Jonathan has a lot of habits that distract the audience from his message. I wish he would control his movements on stage so that he can appear more confident and commanding.
(Of course, I am not good at presenting too.. Just that I fell flat on my face too many times when talking to people that I am not really concerned about it anymore. I also tend to be very serious when I present.. can sense people falling asleep during my presentation)

General Improvements
I wonder why everyone did not use laser pointers and wireless powerpoint remote controls. Hmm.. (I lent mine to a friend)

Overall
I guess among all the presentations given, "Causes" was the most positive. Most FB apps just appeal to our shallow desires.

I am still a bit skeptical about the ability of "Causes" to raise significant amounts of money. Actually, I think given how it's performing now, it would probably be better as a social media tool for creating awareness rather than actually raising money.

I like the point the group made about "Causes" enabling ordinary people to tap into FB's network for their cause. Most people are either apathetic or lack the skills to do so. Most people are not as tech-savvy as the general level of the class =) (The "Listen to your Mum" test: http://sharetheconversation.blogspot.com/2010/01/startup-concepts.html)

Suggestions for improving "Causes"
I wonder whether "Causes" could be made into an iPhone app that works like a RSS feed. People could install it and get updates on their favourite cause.
Hmm, what about combining "Causes" with the prediction markets idea? Not sure what that hybrid child would be..
Another idea I had was that "Causes" could hook on the FB marketplace and perhaps create some kind of "stamp of approval" for socially beneficial goods.

Future developments of NGOs
Personally, I feel that NGOs should start changing the way they operate and become more like a business. Recently, I read a good book by Willie Cheng titled:"Doing Good Well" which gives a detailed analysis of social enterprises and suggestions for how NGOs could evolve. It explains the inherent difference between NGOs and business. There is a disconnect between the beneficiaries of NGOs and the people contributing the resources (donors, governments). This is different from businesses.
Since Willie is Singaporean, there are a lot of relevant insights in the book. Of course, it was published after the aftermath of the NKF scandal, hence there is some analysis of the whole episode.

Perhaps, NGOs should think about their overall social media strategy, rather than having unrealistic expectations that "Causes" will be their silver bullet to public donations. Successful examples of people using "Causes"actually mostly have a simple and compelling story coupled with projects that people can visualize easily (http://exchange.causes.com/resources/success-stories/). There is a offline and online strategy that is complementary.

In my own opinion, NGOs should try to work with companies to help them with their marketing. Companies gain a free marketing team, good PR and branding, while NGOs gain resources while learning best practices from corporations. Some people might say the NGOs risk selling out on their principles, but sometimes you have to fight within the system to change the system.

P.S. Looks like I was not the only one who was abusing Prof Ben's profile picture =)

References
Apr 9 , 2009, "To Nonprofits Seeking Cash, Facebook App Isn't So Green", Washington Post

Links to Interviews with Chen Siqi, FriendsForSale, Co-founder of Serious Business

http://highscalability.com/friends-sale-architecture-300-million-page-view-month-facebook-ror-app
Hi all,
This was the article I took a lot of ideas from for my seminar discussion. In fact, reading it will actually answer a lot of the questions behind the assignment.

Technical difficulties in scaling are important
Actually, I will disagree with Ji Wei's and Wang Chen's comments about the lack of technical difficulty involved in scaling an application. The majority of the difficult problems encountered at the start by the founders of FriendsForSale were scalability issues. I'm still not so convinced that cloud computing would be a viable solution as the costs might be prohibitive for a advertising supported application. Anyway, I think it's difficult because I don't understand most of the technical terms used for balancing the server load and demands.

Models for copying the methodology for generating hits like FriendsForSale
I actually wanted to cover this in my presentation, but I ran out of time. I would just like to emphasize the 3 criteria that Siqi described, which are Social, Engaging and Universal. If you read the article, it will describe in more detail why these 3 characteristics are important.

This article is also with Siqi, but it focuses more on the business development and talent problem.

Enjoy =)