Sunday, April 18, 2010

What I learned from CS3216

At the beginning of the semester, I wrote a post about "What i hope to get out of CS3216". As the semester is closing to an end now, it's time for me to write another post about "What I learned from CS3216".

I am not a writer. My most disliked subjects usually include language-related subjects. I can be creative in anything and everything except in writing. But I will follow Cedric's advice in this post. He told me once that "You should write a blog post for yourself. To read again in the future and think back." So here I am. This post is not for anyone, but for myself. To read again in the future.

The first important thing that I learned in CS3216 is that "execution matters". It's not about how skillful or knowledgeable a person is in a programming language or how many great ideas a person has. But it's rather about how he or she approaches a problem (a project) and solves (execute) it.

For example, my final project is on The Mood Diary. It is a very simple application but we have managed to attract more than 18K users. Many people told us that we got it right in our execution and we are happy with our progress so far. Nevertheless, I personally feel that the Mood Diary is not really a success although It cannot be considered a failure.

There are still a lot of things to do to make the Mood Diary a success.
1. Currently it still doesn't have a money making aspect (need a good biz model)
2. There is a need for cuter and more varying icons (need a good designer)
3. Monthly active users need to reach 100K (a threshold as Prof Ben has mentioned)
4. Rewrite some parts of the app to improve user experience (Use more Ajax for smooth transition and change the flow of UI in some cases)
5. Need a really good lock-in feature to make users coming back to the apps

The list will go on and on. So there is still a long way for us to go. Whether the Mood Diary will become a success or not will depend on how we execute the above list and more.

The second important thing is that UI and Design of an application really matter especially if it is an CBU (cute but useless) application like the Mood Diary. There are so many applications which are similar in functionality. As a result, users are spoilt with choices. UI and Design become deciding factors for users to choose which application to use.

Lastly, I learned that it's necessary to try random things and believe that it will somehow work out. Sometimes it will, sometimes it won't. Nevertheless, it is better than sitting at a chair and thinking what to do without doing anything.

For the first Facebook assignment, I would like to thank the whole group for the wonderful experience. I really had a great and exciting time doing the Boomz cart project. It was my best experience with group projects in NUS so far. It was very unfortunate that we didn't get to continue it for the final project.

For the Facebook seminar, I am grateful to Orry for researching the application and doing the presentation.

For the wave assignment, I would like to thank Wye Mun for single handedly writing the application. Wye Mun inspired me to learn JQuery which became very useful in my final project.

For the final project, I would like to thank Hong Jun for being always ready to help despite his busy job interview schedule. His cute crayon-themed emoticons did the magic and had managed to attract many users. And I am grateful to him for writing most of the reports and designing a wonderful poster for the poster presentation.

Overall, I would like to thank Prof Ben for my wonderful experience in CS3216. It is my most exciting and enjoyable module in NUS so far. I hope that I will be able to transfer what I learned in CS3216 to projects which I am going to undertake in the future.

Sunday, February 21, 2010

Project Case Study: GetHelp

On a glance, GetHelp's interface is simple, intuitive and aesthetic. It gives a user a good first impression. Below is my discussion about GetHelp.

Home Page
The home page is the New Project page. The idea here is to allow users to easily and quickly post their needs. It seems to consist of two main parts. The first part is to "shout out" the need and the second part is "need quick help?" to input details. Some confusion can arise from this two parts as discussed below.

Let's imagine I am a user and want to post a "need". The first question in my mind will be
Should I use 'call for help!' or 'need quick help?' ?
Let's say I want to use "need quick help?". After filling in all the information and making ticks on the options "Who do you want to ask?", what button should I press to submit the "need"?

Is it "call for help" button? Is it to submit both "I need help with" and "need quick help?" parts? Or is it that "I need help with" part is the title of the need and "need quick help?" part is the details of the need? And the "call for help" button is to be pressed to submit both parts?

If it is the case, "call for help!" button should be at the end of the page after "need quick help?" part. It will solve some confusion over how to post a need.

Overview page
In my opinion, the Overview page should be the Home page with a button "New Project" to create a new need. The rationale behind this suggestion is that if a user needs help, he or she would not mind pressing an extra button to create a new need while the user may be lazy to go and see the needs by other people to offer helps. Thus , the Overview page should be the Home page to encourage people to offer helps more.

Statistics page
Statistics page seems okay and look good.

Overall, the general user interface looks good. However, some modifications need to be done for more straightforward and easier use of the application. Also, ajax should be used to give users more smooth and nice experience using the application.

Wednesday, February 10, 2010

Life is beautiful (External Project Pitching)

Life is beautiful! Yes! I believe so!

During the external project pitching session, Module Review left the most impression on me. Firstly, Module-review is an interesting idea although the current Module-review site is not wonderfully done. The thing that I like most about them is their enterprising spirit and their courage to really start a business although they are still students.They may not become successful. However, it is the experience that counts right now as they are still young and learning.

Another thing is that their idea is very similar to what I have in mind. My idea is not to review modules but to review textbooks related to modules. Here is a short description of my idea.

When a user starts the fb aps for the first time, he or she is required to choose his country. Then the user has to choose a school from the list of schools in the country. If the user's school is not in our database yet, we would ask him to create a new school. The school will be listed as pending until it's varified by the administrator. Then his or her school will appear in the school list. Then the student can start choosing the modules offered in the school and then the textbook associated with the modules. Reading, writing reviews, ranking of textbooks if several books are available, interaction among users, etc. will be allowed. If the modules or the textbook is not in the database yet, the user can add new modules or textbooks in a similar way to adding new schools. The administrator will occationally check the lists to make sure that there are no duplicates. The application will also allow users to sell the textbooks in the application. It will give senior students more incetive to write reviews and rate the textbooks as they can sell their old textbooks at the same time.

Also, the reviews will be rated by other users to make sure that no one will be fooling around with reviews. "Report" buttons will be included to allow user to alert the administrator if they have any complaints about reviews or other users. As an expension, the application can also include "rate your professor", "rate modules" and "review modules" functions.

I say "life is wonderful" in the beginning because I believe that life gives us so many chances. Actually too many chance to fail if we keep trying! Isn't it beautiful?

Monday, February 1, 2010

Facebook Seminar

The Facebook Seminar was yesterday. I was way off the mark in expecting that it would be a boring evening, listening to one presentation after another. Generally, all teams did a great job with a few surprises such as the excellent video about the marketplace by Joshua and his team. :)

During the first lecture of CS3216, I learned that ideas are not enough for success and that execution matters. After yesterday seminar, I realized that on top of the above point, it is also very important to protect our ideas and applications through patents, trademarks or some other means. Although it seems difficult to do so, we must find ways to prevent other people from stealing our ideas easily like the Zynga stole the Cafe World idea from the Playfish's Restaurant City. It would be great if Prof Leong would organize a workshop or a discussion on how we could protect our applications other than using patents and trademarks which are pretty expensive. :D

As for the application critique, I am assigned to write on the Cafe World application. Overall, I feel that the Cafe World is a well executed game with a lot of interaction between users such as sending gifts, visiting friend's cafe and inviting neighbours. The ability of a user to expend and customize his or her store gives a sense of possession and pride to the user and hook the user's interest. Also, time sensitive game play such as cooking time makes it necessary for the user to log on to the game frequently. Apart from occasional bugs, the Cafe Word is overall a great game with a good user interface.

During the presentation, Jonathan focused on the importance of having huge fan base and heavy marketing to the success of the application. He pointed out that although the Fishplay came out with the Restaurant City six months before the Cafe World by the Zynga and both have similar game play, the Cafe World is currently doing a lot better than the Restaurant City in terms of monetary return and number of active users (30millions and 14 millions active users respectively). The success of the Cafe World may be credited to the fact that the Zynga has a very huge fan base due to it's other popular games such as TexasHoldem Poker. Also, the Zynga has spent 50 million US dollars on marketing last year alone. This shows that good applications also need intensive marketing and proper building up of fan base to be a huge success.

Another notable point from the presentation was on Lead Generation. It is a marketing term for the creation of potential customer interest. A brief research will show that there are two different types of leads, namely sales leads and marketing leads. If properly used, Lead Generation is a win-win situation for both buyers and sellers as it acts as a profile matching tool. However, as mentioned by Jonathan during the presentation, Lead Generation is usually abused by scammers to trick users into buying items or registering for services unknowingly. For Zynga, Lead Generation is one of its main income, bringing in millions of dollars every year. However, in my point of view, it is indeed a very unethical practice by the Zynga to let scammers use Lead Generation on their applications such as the Cafe World. In the long run, the Zynga will lose its trustworthiness among customers and will lose out to other companies which are more trustworthy.

Another point that I would like to raise here is that how we could keep our conscience clean and still succeed in life when "the world is in deep shit!" as Prof Leong claimed. Many people may become overly greedy and take unethical actions to succeed. They may argue that it's good to be greedy as it motivates oneself to succeed. But in my point of view, an alternative and better motivation will be the love for work. When people truly love what they are doing, greed takes a back seat in their journey to success. Many successful people may even attest that greed may even be a distraction in their work as greed will lead to selfishness and cause distrust among family members and colleagues. Up to now, I still believe that a person can be successful in business or life while still being morally upright. I may be wrong. I may be right. But I do hope that I am right on this issue.

In conclusion, I would like to repeat that the Facebook seminar was a joyful and valuable experience and a few points including the relation between ethical issue and the profit making kept me thinking. About the Cafe World, it is very much a complete application although some improvement can be done on the design of the individual characters. Finally, I would like to encourage everyone, including myself, to be ethical in our pursuit of success as what go around usually come around in life.

Sunday, January 31, 2010

Experience during facebook assignment

The Facebook assignment is over. It was not an easy assignment. To consider that it was only for a mere 15%, it was a lot of work. 3am, 4am was the earliest that we managed to sleep during a few days before the deadline.

However, everyone was motivated and happy. I was motivated and happy. For us, the fact that the assignment is only worth 15% doesn't seem to come into our mind. We were coding, googling (GOOGLE IS GOD!) and discussing among ourselves. Happily. We were stuck sometimes and couldn't seem to find the bugs in our codes. But we keep finding them. In the end, I must say, we have managed to do a good job, at least a very acceptable one provided the time limit of 2 weeks.

A lot of things must be credited to Justin, who is not only a great programmer, but also a good person. He doesn't seem to mind staying out late with us to discuss about the project (His wife kept calling! :P) and skipping his work for the project. He was also our mentor in programming. His programming knowledge gave us a lot of help and belief that it is possible to do it!

Other members were inspiring too! Bernard was always too eager to help and it's just amazing how many contacts he has with those people in real business! Xialin was a very good programmer! She managed to learn ajax in a matter of few hours and came out with a mechanism to upload photos in our application. It was just amazing! Biyan never seemed to be tired. She was so obsessed with flash and how to improve our application's interface. Her newfound knowledge in flash will come in handy in our applications in the final project!

In short, the first assignment was crazy, tiring and challenging! But it was a great experience. For me, the experience is worth doing it even if the assignment is given only 5% weightage!

Friday, January 22, 2010

The first Deadline is over!

YAY! The first deadline is over!! SO Happy!!

But WAIT! The second deadline Is NEXT WEEK! Woo! Even coOler! It means the first assignment is going to be over soon. XD (Must see from the positive light :P)

So far, I have done a bit of html and php coding together with mySQL. This is the first time I use them. So naturally, I had some problem. Especially with syntax. And also because I am not very sure how powerful these programming languages are.

Compared to C++, they seem a lot easier. There are functions like array_unique() and so on which make life so much better.

But I also realize that I have just touched the tip of what these languages, especially php, can do. There are definitely easier way of doing things if I know the tricks. Sometimes, I feel 'stupid' because I was writing some long codes to do something where I could have just simply used the ready-made in-built function from the library! XD

But generally, so far so good! I am improving as a programmer and I am enjoying the process!