Patrick Cho blog

Just another Blog.nus site

3216 Reflections and Next Steps

With this post, CS3216 would have come to an end for me. I still recall the feeling I had on the first day of lessons when Colin told all of us “this semester you are only taking one module – 3216”. All of us, in one way or another, overcame all these obstacles. Was the journey worth it?

3216 does not teach you to be a proper software engineer. In the first and final project, our team only cared about building a product that users loved. That meant iterating as quickly as possible and there’s always a tradeoff that happens – code quality goes down. Little questions were asked about the scalability of our current solution because if the product isn’t something that users love – no one would be there to scale the product anyway! Perhaps the only part where code quality was emphasized was during Mods+, in which the more experienced Zhian helped to enforce some code quality. At the end of the day, 3216 is a software engineering module and I believe enforcing such coding standards isn’t difficult. Perhaps more time could be spent on linting and enforcing coding standards in future iterations.

3216 teaches us the key concept that to succeed as a startup, technology is rarely the stumbling block. Tech issues can be solved one way or another with time and money. The key is to find some form of product-market fit. That implies doing quick iterations of MVPs and doing lots of user validations. It also teaches the importance of hustling – something that I definitely can learn more of – and selling.

My biggest takeaway from 3216 is the Give For Free product and the Give For Free team. The team may not be made up of the best web programmers but the team dynamics was excellent and everyone contributed to the success of the project. Shoutouts to Larry for laying the foundations of the UI/UX in our first two iterations, and Xujie for doing so much marketing work even when the product wasn’t ready. Thanks also goes to Zhuohan for the amazing UI/UX revamp and Ten for talking to charities, driving our marketing efforts and integrating paypal payments to charities. And of course Ken, who worked with me the entire backend and provided so much support throughout.

Moving forward, Give For Free has to go beyond a simple psychology experiment. As a startup, it’ll be built on many principles on Behavioral Economics but the vision has to go beyond that. I envision Give For Free to become the world’s first social marketplace – a platform for anyone who wants to do good. It’s true that no one wakes up everyday thinking of what good deeds they can do – but when they do think of it – I want Give For Free to be the first platform that they think of. Want to throw something away, why not donate it on Give For Free instead? Want to support a cause? You can donate not only money, but also items, effort, expertise etc. Eventually, I want Give For Free to become a platform for a community of users to make use of each other’s resources – land, property, labor, money etc. to do good. And the key here is to move beyond simple monetary donations and to emphasize on efficiency.

As a platform, Give For Free needs to differentiate itself from other marketplaces by emphasizing on social incentives and removing monetary ones. It also needs to differentiate itself from other doing good platforms (such as by emphasizing on moving beyond monetary donations and being as efficient as possible. Hopefully, when people think of needing help or wanting to help a cause, Give For Free will become the first platform that people go to.

A Simple Idea about Timetables

NUSMods built the timetable such that time goes to the right. Google Calendar built the timetable such that times goes down. These UI decisions were made for a reason but users like you and I rarely question why. Only during the building of Mods+ did I start to ask why.

Intuitively, we read from left to right and up to down. This might provide a reason for why we might organize a timetable in this way. We are used to reading calendars from left to right before up to down. This makes the UI of NUSMods understandable. Google Calendar and Mods+ had to deal with the space constraints of mobile phones so up to down before left to right might make sense.

But if our intuition of reading left to right before up to down is the reason that we design our timetables as such, does this mean that we would design a different timetable for ancient China, when words used to be read up to down before right to left? Would we have put Monday on the left and Sunday on the right? A quick googling of anchient Chinese time systems show that their timetables are designed as a circle. That might make sense too. After all Monday comes after Sunday so days of the week should indeed be a cycle and a circular timetable may actually make sense! In fact, “Bergen and Chan Lau (2012), and de Sousa (2012) showed that Chinese speakers spatialize time in accordance to the specific exposure to these systems they have had, providing additional evidence that writing direction is an important factor in establishing space-time mappings”.

The discussion here is closely related to a field of study known as relativity. Nope, not Einstein’s relativity, but rather Whorf relativity, otherwise known as linguistic relativity. Linguistic relativity aims to answer the question of whether or not language affects thought. Noam Chomsky was a firm detractor of this idea, maintaining that language does not affect thought. Recent evidence on native tribes, however, shows that language does affect thought.

Space and time are one of the most commonly talked about attributes in language that may affect the way we think. One example is how languages tend to map time to space. The phrase “10 minutes long” shows the mapping of a period of time (10 minutes) to a length (long). Another phrase “how short will the meeting be” once again shows the mapping of time onto space. The same phenomenon can be seen in Chinese Language in phrases such as “很长的时间” or “短暂”.

Similarly, a timetable is a mapping of time onto space. Let us now try to apply linguistic relativity to explain the supposed intuitive nature of our calendars. Timetables show a movement in time. Phrases such as “moving a meeting forward by 5 minutes” or “pushing a deadline back by 10 minutes” show that time is moving towards us (imagine a vector pointing from in front of us to behind us). Hence, “moving a meeting forward by 5 minutes” implies moving a block forward (from the perspective of this vector) while “pushing a deadline back by 10 minutes” implies moving a block backwards (from the perspective of the same vector) (notice here that is why the vector of time is pointing from in front of us to behind us. If it were pointing from behind us to in front of us, we would be saying pushing a deadline forward by 10 minutes) (notice also how the past lies behind us and the future lies ahead of us). Similarly, in Chinese Language, “之后” implies that a later time goes behind while “之前” implies that an earlier time comes in front.

This thought led me to an idea. If we were to build a timetable that mimics how we normally talk about time, perhaps building a timetable such that earlier events are at the bottom of the screen and later events are at the top of the screen may make sense. In this way, by simply putting your phone flat, you would see later events lying ahead of you and prior events lying “behind” you. By scrolling up (forward), you would see future events and by scrolling down (backward), you would see previous events.

Eventually, we built Mods+ to be similar to Google Calendar for sake of simplicity but I think it would be extremely interesting to see whether such a calendar would make intuitive sense to users.

As users, we normally don’t think of why a certain UI decision is made. Intuitively, calendars flow from left to right and up to down. Screens in the past couldn’t be made lying flat (e.g. on the table) so it wasn’t possible to make calendars moving from back to front. Perhaps this is the reason why reading direction was used instead when building calendars. Are we still building calendars the same way because they were traditionally done in this manner? What would happen if we were to build a calendar or timetable such that when the screen is lay flat, time moves forward? I hope to conduct this experiment some time in the future to see the results.

Idea Generation

During one of our 3216 lessons, we had a speaker who came in to talk about idea generation. The general process was find a problem before finding a solution. This process solves one key issue, that is, the solution eventually does indeed serve a purpose. It precludes the possibility of developing a solution simply for the sake of its coolness factor or technical difficulty.

During our final project, our team came up with many ideas. The first one was Power Tag. The idea was that Tag is a game that only kids play but can adults play them as well? Inspired by Running Man’s train catching game, Power Tag wanted to bring tag to a more complex level – a little like assassins in real life. But Power Tag didn’t solve a problem. No adults would claim that they face the problem of not being able to play Tag. So we expanded the idea to an app which provides social games for groups of friends to play while they are physically together. Mobile phones have long been criticized for damaging social relationships. Friends stare at their phones rather than talking to each other when they physically meet. Rather than removing technology (e.g. Put all phones aside for one hour), our team wanted to build a suite of social games so that technology can enhance social relationships. Power Tag is one example, Charades is one very popular one that has been very successful. Here, we had an example of a problem followed by a solution, followed by a realization that the problem wasn’t really a problem but that the solution did solve another bigger problem – albeit rather indirectly. This realization does change things though – it’d change the focus of app building from tag functions to social functions.

A similar idea for Power Tag was Friends Tag. Once again, the idea was similar but the problem it was trying to solve was different. Instead of tag in the competitive sense, Friends Tag was a networking tool for you to get to know people around you. It was a tool to break down social barriers. The mechanics of the game was similar but the focus of the app building would once again be different.

Another idea that our team came up with was electronic fliers. The problem here was that fliers had to be distributed manualy (labor cost) and each flier had to be printed (printing cost). Our team wanted to make flier distribution electronic, saving labor and printing cost and transferring this money to become incentives for people to take and read fliers. Electronic fliers also had the added benefit of being interactive – it could contain hyperlinks etc. The idea was to have something similar to Pokemon Go whereby users go around ‘catching’ fliers for monetary benefit. Eventually, our team didn’t implement this idea as we were unsure whether the incentives were sufficient for users. Still, I think this is a good idea and could work with a few tweaks. Including loss aversion – whereby notifications are sent informing users that they would LOSE OUT $0.10 if they don’t catch this flier that is 20m away – might be a good idea.

One other idea that our team came up with was the NUS buses idea. Here, we had a concrete Total Addressable Market of around 50k-100k users. Adding Crowd Features and making the app much more user friendly would make it more appealing that the current app. The problem our team faced here was  in terms of business viability. The buses were owned by Comfort Delgro and we didn’t have the contacts to allow us to build our sensors and apps. This idea was therefore eventually abandoned for Give For Free.

To be honest, Give For Free didn’t arise as a solution to a problem. It arose as a curiousity. The question of whether the cool Behavioral Economics phenomena described in books such as Thinking Fast and Slow and Predictably Irrational could be converted to business ideas. This was a very different ideation approach as compared to the one introduced in class. The approach comes about by asking one simple question – what can I make by combining 2 things – whether they be ideas, objects, incentives, business models etc.

The post-it, for instance, is simply glue plus paper. Give For Free, likewise, is a combination of the power of FREE and the existence of socia incentives in the absence of monetary ones. I’d say that while the approach introduced in class provides a systematic approach to problem solving – one that ensures that we never lose sight of the problem – we lose a bit of creativity in the process. The model – like any other model – constrains us to think from a certain perspective. If we were to constrain ourselves to Rutherford’s model of an atom, we would not think of the concept of orbitals, for instance. The combination of ideas – a model by itself too – would categorically be less limiting simply because the permutatikns and combinations available would far exceed that of the former approach. Yet, we would lose the focus provided by the former approach.

What then is a good model of idea generation. Perhaps an amalgamation of models would help. By looking at idea generation from different perspectives and combining the advantages of each approach, we may eventually derive a better model – similar to how random forests usually perform better than random trees.

Payment Psychology

Give For Free started off as a psychological experiment to test out 2 main behavioral economics effects in the real world – the power of FREE and the power of social incentives in the absence of monetary ones. But as Give For Free pivoted to a platform for donations, another behavioral economics effect came into play – the pain of payment.

In an experiment performed by Dan Ariely, it was found that the pain of payment decreased whenever we moved further away from physical money. For instance, people felt less ‘pain’ in paying when they used credit cards as compared to using cash.

There are 2 main places where the pain of payment takes place – from the givers perspective and from the takers perspective. For the giver of an item, their donation is even further away from physical money than credit cards. Of course, once it becomes a physical item, many other factors come in such as people’s perceived ownership of an item, sentimental value etc. But the long distance away from physical money perhaps makes donations of items less painful for the giver. In fact, our platform received more than 250 donation of items within 2 weeks – showing that people don’t feel much ‘pain’ when paying through items.

The bottleneck now comes from the takers. (It’s interesting to see how a small tweak in an idea drastically shifts demand down by so much and supply up by so much). For instance, as stated in a previous post, we got donations for only about 5 items at STEPS; after STEPS, I gave away 2 items for free in quick succession within 5 minutes. There are many ways to tinker about how to increase demand. In a previous post, I talked about shifting the decision of donation amount from giver to taker. Today, I want to discuss how the concept of ‘pain of payment’ may be able to help increase demand on Give For Free.

The first concept that can and should be changed is the concept of micropayments. Currently, every item that a user purchases constitutes a transaction. Ignoring the disadvantges of constant Paypal fees (which is pretty significant), what this means is that takers have to constantly go through the pain of payment every single time. Shopping carts, a usual concept in ecommerce stores, solve this problem by accumulating orders and allowing buyers to make a payment at one go – reducing the pain of payment. An additional benefit of shopping carts is that users feel they are doing something on the site – unlike our case whereby users can’t really do much unless they want an item or give an item.

Implementing a shopping cart system may be challenging for Give For Free. The main drawback is that the giver eventually gets to choose to whom the item goes to. Hence, even if a user wants to get items A, B and C, they might only eventually get item A, for instance, losing out on items B and C to other users. One way would be to implement some kind of escrow where we hold the money until the giver chooses someone to give the money to.

The alternative way, which is also the second key idea in reducing pain of payment, is to use credits! Essentially, people use credits to purchase items and use money to purchase credits. Hence, a person would only have to purchase credits once on our platform (encountering the pain of payment once), before using them for all transactions. They can put in credits into items easily and get the credits back easily too once an item is given to someone else.

A credit system isn’t a new innovation. In fact, many ‘free’ marketplaces like Listia use credits to value items. It’s essentially like any other marketplace except that credits replace currency. The key innovation here is that credits are another level of abstraction away from physical money – once again reducing the pain of payment. One cool thing about this is that we would be able to give free credits to initial users so that they can freely want one or two items – but to get more items, they will need to purchase credits. Similarly, gamification can be put in place to incentivize giving by allowing givers to get some credits once they reach a certain level of giving. Finally, credits can even be given out for other purposes – e.g. By charities for reward of volunteering.

Of course, this solution also has its drawbacks. Would people really want to put in money to get credits that they may not eventually spend? How do we maintain the exchange rate between credits and currency – is it always the same or do we have some form of inflation? Lots of questions remain unanswered but this is one way to reduce the pain of payment. Tinkering with these different systems may help to boost demand to keep up with the supply of items on our platform.

User Flow

Give For Free went through a total of 4 major iterations. During each iteration, there were many UI changes to make the app better than before. The main UI change came in terms of user flow.

In our first iteration of Give For Free, all pages other than the landing page could only be seen in the logged in condition. Hence, users had to log in prior to doing any other action. The main problem with this is that logging in is an action that few users want to take without first knowing whether the log in is worth it.

Hence, in our next iteration, we made the first page that people get to (‘/’), the page with all the feeds of items to be given out. We then moved the original landing page to ‘/login’. Users could now view all items and click ‘want’ or ‘unwant’ on the main page. If users click ‘want’ or ‘unwant’ in the not logged in condition, users would be redirected back to ‘/login’ to login before continuing wanting an item. The ‘login’ button in the navigation bar would also redirect to /login for login.

During the same iteration, we realized that redirecting to /login to login would require one more unnecessary step so we made all login buttons redirect to ‘/login/facebook’ straightaway. Also in the same iteration, we realized that it was far too easy for a user to ‘want’ an item from the feed. We wanted users to look at the item details before deciding whether or not to want an item. Hence, we moved the ‘want’ and ‘unwant’ to the item page.

In our next iteration, we got feedback that it was confusing what users were supposed to do when they first reached the feed page. They merely saw lots of items and didn’t know what to do with them. Hence, we added a banner on top with specific actions – browse for items or give an item. Browse for items automatically scrolled users down to the feed of items while giving items automatically redirects logged in users to the upload page and non logged in users to login before redirecting back to the upload page.

In our last iteration, we got feedback that it was still unclear what exactly the platform was doing. What constitutes giving an item and wanting an item? The main problem was that most of the information on how the platform works was on the  landing page at ‘/login’. However, after all the iterations, users rarely ever navigated to ‘/login’ anymore. Hence, in our last iteration, we moved ‘/login’ back to ‘/’ and moved the original ‘/’ to ‘/feed’. Now all users would land on our original landing page. We also changed the original landing page to show 3 main options at the start. The first option is to give a gift, the second option is to browse for gifts and the last option is for first-time users to find out more about how to use the site. In this way, we cater to all users when they first land on our landing page.

Throughout all these iterations, we have been improving the user flow little by little. However, some problems still arise. Firstly, most new users will merely browse gifts. There is no incentive to login unless they ‘want’ an item. This meant it was hard to get registered users – one of our KPIs. Hence, during our last iteration, we worked on making the feed stop scrolling after 12 items if a user was not logged in – prompting them to login to see more items. This was implemented but not pushed to production as it was too near to STEPS.

Many thanks to Colin, Su Yuen and all other users who gave feedback during our user testing (:

Demand vs Supply in a Social Marketplace

Give For Free was born from 2 main Behavioral Economics Principles – the idea that when item prices drop to FREE, demand increases exponentially and the idea that social incentives only exist in the absence of monetary benefits.

Give For Free thus originated as a platform to give away FREE stuff. The idea was that givers would gain the social incentive of helping someone out and doing good for the environment while the taker would gain FREE items.

The problem, however, was that there wasn’t sufficient incentive for givers to give away their stuff for FREE. Hence, using advice given by Gerald during our internal pitching session, we integrated a charity component. Now, givers would be able to choose a charity that they want their FREE item to help. Takers would donate a token amount to that charity to get that item for FREE. Money is in play but because of the special nature of charity – the platform still delves in the realm of social incentives, not monetary incentives.

After implementing this solution, however, 2 problems still exist. The first is that giver incentive is still insufficient. Telling people that their preloved items would do good for charity definitely helped in increasing the number of items on our platform – in fact, we got over 200 items. But that was when we explicitly went to ask them to post the items. People don’t mind doing good. People don’t mind helping an elderly cross the road or help a stranger fix a car along the expressway. But people they don’t wake up thinking “what good should I do”. It’s just like no one wakes up one day and thinks “how much should I donate to charity today”, they wake up thinking “what should I buy for breakfast today”. The hope is that when people do spring cleaning or clear away their items, they would first think “is there a better way to deal with these items” and hopefully they think of Give For Free.

The second problem is that items were no longer “FREE”. In essence, we lost a component of the Behavioral Economics principles that underpinned our initial platform once we included charity donations. Of course, we tried to put it back in through phrasing our platform in this way:

All you have to do is donate $5 to charity and you would be able to get X for FREE from user Y.

But users aren’t stupid. They immediately see through the words. They immediately think “So I’m paying $5 for this item”. The lost of this power of “FREE” was evident during STEPS. Our team put up many donated items. All people had to do was to donate $x to get the item for FREE. But most did not. Of course, one could argue that STEPS isn’t a place to set up a flea market. People don’t go to STEPS thinking of getting a textbook. But the truth is we only managed to get roughly 8 donations within 3 hours. After STEPS, I went around giving away some items for FREE. 2 items went away within 5 minutes. Reintegrating the FREE component together with the charity component will be difficult. One way would be for the taker, rather than the giver, to decide on the donation amount for an item. In this way, the taker can get the item for FREE first before deciding how much to donate. One could argue that this could lead to a much lower amount of donation. Rationally, no one would donate if they don’t need to. But it is important to remember that our platform works on social incentives. The opposite could also happen. When takers are anchored to a certain donation amount from givers, e.g. $x for item y, they will donate $x. But if they are NOT anchored, they may potentially donate much more than $x.

Another interesting observation happened at STEPS as well. During STEPS, I was trying to get some people to donate $2 for a wall frame. They looked at the wall frame and said “I’ll donate $2 but you can keep the wall frame”. Rationally, once again, this did not make sense. Getting a wall frame is definitely better than not getting a wall frame (and it wasn’t an ugly wall frame). Perhaps the exact same psychology was happening here. As discussed earlier, when you do a good deed, you don’t want any monetary return because that monetary return erases all social incentives. Similarly, when we donate money to a charity, we don’t want a wall frame in return because that wall frame erases away the social incentives of doing good to charity. The delicate nature of the social incentives on our platform meant that it is difficult to see exactly how people would perceive our platform when using it. Concretely, when givers give on our platform, are they looking for a monetary benefit (someone to clear their stuff for them) or social benefit (doing good for charity, saving the environment) and when takers get stuff on our platform, are they looking for a monetary benefit (getting good deals) or social benefit (donating to charity, the item is just a good-to-have). It seems like, at least for the current implementation, givers give for social incentives while takers take for monetary incentives. This asymmetrical incentive alignment is an interesting psychological question in within itself and deserves more attention.

Give For Free Marketing

When I was at Stanford attending their eCorner talks (, 2 ideas kept popping up. The first is that one of the main challenges that startups face is hiring and firing. The second is a piece of advice – go out and sell.

I’ll leave the first idea to a later post and focus on the latter. Going out to sell is an intimidating task. This is especially the case for people who are more comfortable coding behind a computer screen. But selling is the key to success. After all, what is the use of an awesome product that no one uses. Hence, at Give For Free, marketing took top priority. Here are some of the things we did and some takeaways that I have learnt from doing them.

1. Prelaunch

As part of our efforts to do our marketing right, we reached out to Singapore Freecycle Facebook Group’s admin, Adwin Ang, for advice. One of the key advice he gave us was to do a prelaunch. The idea was to create a prelaunch page to get people to sign up so that users come in all at once when the site launches – rather than having the users trickle in one by one. We therefore went ahead to build a prelaunch page:


Design of Prelaunch Page

The key takeaway is that a prelaunch is great to accumulate users before launching. In this way, when we launched officially, our platform would already be filled with gifts by other users. However, I feel that our actual launch lacked impact. While users were able to see many items on our site when launched, there was little else to do and nothing much exciting after that. Perhaps linking the lucky draw to the launch would have been a better idea.

Investment: 1 hour on prelaunch page
RoI: Good – but could have been better with a more impactful launch

2. Selling Face-to-Face

Selling Face-to-Face has to be the most time-consuming marketing technique. But the idea that you have to do things that don’t scale initially drove our team on to keep talking to people face-to-face. This included approaching professors for donation items as well as approaching students for sign ups. The key in all this is the pitch. Our pitch went something like this:

We are Give For Free and we are raising money for charities. The platform we built looks something like Carousell with one key difference – the money doesn’t go to the seller; it goes to a charity. For instance, if you want this BTT Book, all you have to do is donate $4 to SPCA and this book is yours for free from this user. All items are donated by users of our platform so if you have any items that you don’t need or use anymore, simply put it up on our site, and choose a price and a charity. If someone wants your item, they will donate to your specified charity and get the item from  you.

The pitch was relatively well-received. Many feedbacked that they liked the idea. The key however, was in the action. This pitch needed to drive sign ups. Initially, all we did was give them a piece of paper so that they could go to the website in their own free time. This didn’t drive sign ups however. What I realized was that people wanted clear instructions of what to do. Once they received clear instructions – about 50% of them were willing to follow the instructions. This meant saying something like this:

We would like you to be one of our first few users of our platform. Could you navigate to this url and help us sign up? Just click on the top right hand corner to log in via Facebook and you’ll be able to see all our current items.

The key here is the word ‘navigate’. Once people went to the URL, I just had to tell them to click on the top right to log in and most of them did so. This generated a much higher RoI than simply giving a piece of paper and allowing them to do it in their own free time. The key takeaway therefore is that in Face-to-Face selling, give clear instructions of what to do so that people know exactly what you want and can do it quickly.

3. Lucky Draw

Our Lucky Draw involved a Mi Band 2 which we thought would help us onboard some users. The lucky draw didn’t work out as planned though – with only about 30 signups generated from this Lucky Draw. One reason could be that the Lucky Draw Gift wasn’t enticing enough. I feel that we should have instead linked the Lucky Draw with our platform – putting it as one of the gift items on our platform for FREE. In that way, users would have to sign up on our platform to want the item – creating the exact actions that we wanted. Furthermore, the launch might have been more exciting for users if they saw an item that was definitely a ‘good deal’.

4. Facebook Posts

Our team did several Facebook Posts and decided to promote one of them for $28 just to give it a try. The post we promoted was a post that described why you should not donate your old clothes to charity but should donate money instead. It was somewhat surprising, at least to me, that we got 96 likes for that post. More experiments need to be done to show that this is a higher number than the average promoted post but I was under the impression that most people would just zoom past the post – given that it was a long essay about donating clothes to charity. Apparently not. Perhaps content marketing does provide a good platform to garner users although more could have been done by our team to convert these Facebook likes into actual sign ups on our platform.

5. Media

Our Team got a few Media Channels to advertise for us – namely SPCA and SoC Facebook Page.


SoC’s Feature Post


SPCA’s Feature of us on their website

However, I noticed that these features gave us only limited number of sign ups. In fact, it was Prof Ben Leong’s Facebook Post which brought us numerous sign ups and even a contact from a charity – Asian Film Archive – asking whether they could be one of our partner charities. This shows that posts that don’t sound like ads, but rather more like authentic promotions from end users tend to do much better. Of course, it helps that the source is Prof Ben Leong, a well respected Professor within NUS. Our team also contacted Mr. Brown and got a thumbs up from him although we have yet to get an agreement from him to feature us.

6. Posters + SoC TV Screens

Our team also went around pasting posters around school. On hindsight, our posters could have done with much BIGGER logos and much BIGGER URLs. What we did well – however – was to be different. It was hard for posters to stand out amongst the crowd of posters on the noticeboards. Our team pasted all our posters slightly slanted, and out of the noticeboard – generating more attention on them as it was out of the ordinary. We also pasted our posters in more prominent areas such as on the door of the Business Library after approaching their staff and getting approval from them. The key achievement here, however, was the team’s ability to use existing resources around school creatively – namely the SoC Clocks on Digital Monitors – to advertise our platform. We approached Zit Seng and quickly got approval and got it all set up within a weekend. I would say that these promotions went relatively well. Some Face-to-Face selling started off with them telling me – “oh, you guys are Give For Free”, which was always a nice thing to hear.


Marketing for Give For Free has taught my team so much about how to sell. We didn’t reach our intended target of 3000 registered users but we garnered more than 1700 unique users (from Google Analytics) and nearly 600 signups. For a platform that is a little niche – in that it probably will only appeal to the more charitable of people – I think this is a laudable achievement and that my team should give themselves a pat on our backs.

Shopback Reflection

Part I: 3 important points

In evaluating Shopback, Group 1 has taken a lot of effort in evaluating the UI and UX of the application.

  1. Thumbnails

Screen Shot 2016-08-30 at 11.26.06 PM

This point resonated with me a lot. In building “Give For Free” for Assignment 1, our team experienced major difficulties in making the thumbnails of the items look pleasing. Since picture uploads were of different sizes, the thumbnails were also correspondingly in different sizes, making the layout messy. Furthermore, it was difficult to find the right spacing between thumbnails to avoid making the page look too cluttered or sparse.

Shopback did a good job in ensuring that the thumbnails were all of equal size (by resizing the pictures and adding grey borders). Furthermore, emphasis was placed correctly on the picture and the price. For further improvements, I found that on some of the thumbnails, there was an awkward white gap between the item name and the price. This awkward white gap was necessary because some titles were longer than others. A possible alternative implementation is to remove this white gap and cut off title names if it exceeded a certain length. A further possible area of improvement is to emphasize on the cashback percentage, which currently is in small font. This percentage is the main selling point of Shopback and needs to be emphasized upon.

  1. Placement of Advertisements

Screen Shot 2016-08-30 at 11.27.46 PM

Group 1 also pointed out that the advertisements at the bottom of the screen blocked 10-20% of the precious screen space. The team suggested putting the advertisements in the carousel instead.

While this suggestion definitely frees up screen space for users to look at more cashback deals, it defeats the purpose of advertisements as advertisements placed in carousels are more likely to be ignored. The current implementation of the advertisement has a floating effect that makes the advertisement stands out more as compared to placing it in the carousel. More importantly, I feel that the current implementation is acceptable because the advertisement disappears once the user starts scrolling to look at the deals. The screen blockage is therefore only temporary. Hence, the current placement of advertisements is acceptable in my opinion.

  1. Reduced Actions

Every action required on an application would result in a drop in the number of users. Therefore, when building an application, a lot of thought needs to go into reducing the friction experienced in so-called wasted clicks. Using Shopback’s Cashback Button, which is a browser extension, users can directly go to their favorite online stores and activate cashback through a simple click of a button on this browser extension. This reduction in action reduces a lot of the previous effort required in finding cashback through Shopback. One drawback, however, is that this solution might reduce the discoverability of other brands. For example, without the Cashback Button, users would have to visit Shopback’s website to find their favorite retailers. While browsing the page, they may encounter other brands that they were not initially interested in. This discoverability function is lost if users simply activate cashback through a browser extension. A further problem is that the value proposition to online retailers might decrease with the implementation of this Cashback button. With this Cashback button, users might simply shop for what they are already looking for and activate Cashback if present. This defeats the original value proposition, which is that users would see these attractive cashback and decide to shop at these retailers that they previously had not thought of shopping with. An analysis into the change in the number of new customers after the implementation of this browser extension would help in analyzing whether the value proposition to retailers deteriorates.

Part II: My Thoughts

My first instinct, when I heard about Shopback, was why implement cashback rather than a discount? If an item costs $x, does having a cashback of 5% have the same effect as having a discount of 5%? From a rational standpoint, there seems to be no difference between the two, as long as we ignore the time value of money (since money from cashback is not immediately returned to your bank account). Why then did Shopback use ‘cashback’, rather than the more conventional ‘discount’?


Discounts are much more ubiquitous than cashbacks. The percentages associated with discounts are normally quite large. Groupon often have 50% discount offers and other retail stores often have discounts ranging from 10 to 80%. If I were to be told that a certain store is offering a discount of 1%, I would probably think that this is a very small discount since my idea of discounts is anchored by the many previous discounts that I have encountered. Cashbacks, on the other hand, are less common and may even be associated with tax rebates (since money is transferred back to my bank account as well). The numbers for tax rebates are usually much lower since tax percentages are also much lower. A cashback of 1% might therefore not sound too bad as compared to a discount of 1%. Therefore, in using a different way of implementing ‘discounts’, Shopback has successfully re-anchored the amount of ‘cashbacks’ required for a deal to be attractive.

Earning Money through Shopping

Another key insight is that cashback encourages people to spend more by creating the illusion that people are “earning” money by making purchases. The thought of being able to earn money while shopping surely sounds enticing. The reality, of course, is that people often end up spending more money in order to “earn” the amount which could otherwise be saved. As a result, retailers gain more revenue. This is a win-win situation that Shopback is leveraging on.

( “Save while you shop, guilt free!”)

For instance, the above image was taken from a blog raving about how Shopback helps you to ‘earn’ cashback. While it highlighted that one could potentially ‘earn’ $232 every year, it neglected the fact that one would have already spent over four thousand dollars in order to get that amount of saving. This is essentially a 5% discount, which isn’t overly significant.   

Cashback through Store Credits

Another key point is that Cashback implements its cashback through returning cold hard cash. This is different from normal cashback methods that give back store credits. From a user point of view, cashback in terms of cash is more enticing as this cash is a much more liquid asset. However, from a retailer’s point of view, cashback in terms of store credits is much more enticing as users would be forced to return to shop at that retailer. In fact, retailers will definitely be more willing to give higher cashbacks if these cashbacks were given in store credits instead of cash. More users would be enticed with these higher cashbacks as well. I believe that Shopback should look into cashback options through store credits and possibly offer these options as well to entice more users.

First Round of Testing

I am very proud of the progress that our group has made in the past week. It was less than 2 weeks ago that our group embarked on this project. Knowing the tight deadlines, we pushed ourselves to develop a MVP to be able to test with users. In particular, we wanted to have a workable application by the time the Free Market event on 21 August came. Hence, we aimed for a fully working application by the time mid-term assignment was due.

What we have achieved so far:

  • Facebook Login
  • Home Page showing all free items up for grabs
  • Profile Page to show items that user has put up for free as well as items that user has snagged
  • Item Page showing more details on item as well as options for owners to choose who to give an item to. Chatting functionality is now currently done via a Facebook dialog.

Hence, from a purely usability point of view, the most important processes of the application have already been implemented. Users can now use our platform for end-to-end giving and getting of free goods.

From a technical point of view, I have learnt how to use AJAX and implement a simple infinite scrolling. I have also learnt how to cache information in session. Of course, having another practice at writing node back-end code was good too.

We also conducted some user testing over the weekend. My main takeaway is that the application is still not user-friendly. Comparisons are commonly made with another similar application – Carousell. In particular, the uploading experience is very confusing (the preview of the picture blocks most of the view on mobile and it is difficult to tell where to close the preview). Also, the giving experience is bad as it is difficult for a user to know who to give a product to just by seeing their names. A simple chat functionality like that used in Carousell would greatly help in allowing potential getters and givers to communicate. Furthermore, the button to navigate between tabs on the profile page is difficult to understand.

Moving forward for the next week, I think that the main goal is to achieve 2 things:

  1. A user experience similar to that of Carousell. Carousell’s posting, bidding and selling process has been finetuned over a couple of years and has been well thought through. Our user testing has also shown that posting, wanting and selling are the three experiences that we need to improve on for our application. In the next week, I hope to be able to mimic Carousell’s user experience for posting, snagging and giving.
  2. At the same time, it is important to differentiate our application from Carousell, which is a platform to sell preloved goods. As mentioned in my previous post, our application focuses on the social incentive of giving. In the next week, I want to explore the idea of maximizing this social incentive through technology. Whether it is having a thanking page, through karma points, gamification via badges etc. At the same time, it is important not to overdo this as this social incentive should not feel forced.

I believe that once we have a good posting, snagging and giving user experience, and test out a working social incentive maximizing mechanism, the application would be good to be pushed out for a further round of user testing.

Give For Free

For our first assignment, my group decided to embark on a project that is like Carousell, but for ‘free’ stuff. I have had this idea of having a ‘free’ items market for quite some time so having the chance to implement it is great.

The idea mainly comes from 2 different findings in Behavioral Economics:

  1. When things go free, demand increases exponentially. This was shown in the chocolate experiment conducted by Dan Ariely in which the demand for an inferior chocolate as compared to a superior chocolate didn’t increase by much when the prices went down from 2cents and 27cents to 1 cent and 26 cents respectively. However, once the prices went down to FREE and 25 cents, the demand for the inferior chocolate spiked as compared to the superior chocolate. The power of the word ‘FREE’ has been explored a lot in Behavioral Economics and many similar experiments have been conducted.
  2. We operate either in the financial market or the moral market and not both. Imagine a stranger who needs help fixing his car. You take 15 minutes to help him out and in return, he thanks you profusely. You feel great that you’ve done a good deed. If, besides thanking you, he decides to reward you with $1. Immediately, the judgement becomes was my 15 minutes merely worth a dollar? Once money enters, we move away from social norms and moral incentives to financial incentives. Immediately, the feel-good factor of helping someone out disappears. We are trying to tap into this space with this app by providing a platform for people to give out their items for FREE. Rationally speaking, from a classical economics point of view, the supply of products would be zero on our platform. But if we are to consider the benefits of social norms, then behavioral economics tells us that we might prefer giving out item away for FREE to a friend, as compared to selling it to them for a low price that does not entail the real monetary value of the product.

These assumptions will have to be tested out in our application and I’m very interested to see the results. Of course, a lot also depends on our implementation. Besides the normal e-commerce look of the website, a significant difference between our app and any other e-commerce app is the promoting of social incentives. While other e-commerce apps provide platforms for monetary transfer (e.g. credit card, pay pal integrations), our app needs to provide platforms for the transfer of social incentives. This is where it may get difficult. Should we build a thanking platform, a karma point system? Some donors might want to remain anonymous, like in the case of anonymous donations.

The main concerns for the app would be the accumulation of junk. Hence, it would be important, when launching this application, to clearly define the types of items we would like on our platform by providing a few items by ourselves. We also have an expiry date for items uploaded so that junk that no one wants will automatically be deleted from our platform once the item expires.

I’m excited to see whether the response of users to our app.

« Older posts

© 2019 Patrick Cho blog

Theme by Anders NorenUp ↑

Skip to toolbar