Team Dynamics

Posted: November 29, 2013 in CS3216, Shubham's Posts

I feel sorry to hear about what happened to Jim’s team last year. I actually know Hieu really well and I know that he is an exceptionally talented student and a really good programmer. I can empathise with him (life can get really lonely when you are the only coder). I can also empathise with Peggy and Uncle Jim (life can get really lonely also if you know that your team lacks programming talent). But, hats off to them, for managing to do a good job at the end! All is well that ends well and more importantly

“What doesn’t kill you makes you stronger” – Legendary Prof Ben

Q1: How much control and authority would you have given to this fourth voice in our choice of platforms (HTML5/native iOS)?

A1: I cannot give a flat yes/no answer because I believe it really depends on the situation.

If there is only one coder in the team and he is really good at some platform and the app can be done on that platform (anticipated performance issues aside), I will not change the platform unless the teaching staff or the fourth person logically proves why we really cannot and should not do the app on that platform. If the only coder in the team has never worked on iOS before but he has good knowledge of HTML 5, I will go ahead with HTML 5.

The situation changes slightly if the team member is not at expert at either but has a little experience in one of the two. Even in this case, if the team member tells me that he wouldn’t have enough time to learn the new platform and he wants to work on the platform he has a little experience with before, I would still back the team member’s ability and not switch platforms. However, if the team member is okay with anything and the fourth voice is of someone from the teaching team, I will listen to it.

Personally, being a project manager and irrespective of whether I know how to code or not, I will try to understand the logical reasons being given in support of either platform. I would make a pros/cons list (I made this list in the CS3216 projects this year too). I would try to see if their is a clear winner after talking to the fourth voice as well as the lone coder team member. If the fourth voice has a very strong point, then I would talk to my team member and try to convince him. But then too, I would not force the team member to use something he is not comfortable with. I would reason with him logically but since he is the person who is going to ultimately do the work, I cannot and will not go against him if he is really not comfortable using some platform.

If the fourth voice is of someone from the teaching staff and they feel very strongly that we should choose one of the platforms, I would be very tempted to do as they advise. This is because the teaching staff is much more experienced than either of us. Moreover, I am sure the teaching staff will also provide logical reasons for their advise. But again, even though I would talk to the team member, I wouldn’t blindly follow the teaching staff if the team member thinks he cannot pull it off and learn the new technology in time.

For me, the fourth voice will never have the veto power. This is because the fourth voice will not be as directly impacted as the team members will be if the project doesn’t go well. So, I will first try to understand the arguments for and against by talking to both the parties and then try to convince the team member if his arguments are not that strong (by convince, I mean reason with him and seeing if he understands why the fourth voice is saying what it is). But ultimately, I will not force the team member to do something he doesn’t have faith in. If he tells me that he can make the app work well on the platform he is comfortable with, I will back his decision and ability. After all, I chose for him to be in my team in the first place because I believed he would help make my project successful.

There is one last case where the team member is being unreasonable and the app simply can’t work on his platform of choice. In this case, I will tell the team member to listen to me if I am the project manager. If he doesn’t, I will tell Prof Colin about the situation and ask him for his decision. If his reply is that we must resolve it by ourselves and I am the project manager, I would put my foot down and expect the team member to listen to me (for this to work, there must be a clear democractic election of the team leader beforehand, if this is not done, you can’t expect your voice to be heard as a project manager).

Q2: With the deadline just 2 weeks away, how would you as project manager resolved this problem (iOS vs HTML5) if it were to occur within the team?

A2: In Jim’s case, they had already made the decision to try out both the platforms and so their decision was a bit easier because they must have had results and would have known the platform on which more progress was being made. I would have chosen the platform on which more progress has been made because given the team resources, the progress was the best answer as to which platform is better. Of course, the features which were left to be implemented would also have to be taken into account. However, it might very well be that there is no conclusive answer. In that case, with 2 weeks left, I would go ahead with what my team members are most comfortable with. 2 weeks is a very short span of time and if no conclusive answer has been found till now, I can’t take the risk of more experimentation. Unless the fourth voice is willing to help us by actually helping in the implementation (read, coding), I would go with what my team mate feels he is most comfortable with.

Q3: What are some of the issues that we presented that could have happened to any team? List down 3, and talk about how you would have resolved these issues.

A3: The three issues off the top of my head are:

  1. Conflict of opinion – This is a very common issue. Actually, you should be worried if this doesn’t happen in your team. This is because no two humans think the same. Put a team of 4 and you would have 4 opinions. And opinions are good, opinions show that the people involved care. I absolutely love when people argue in my team, it means that they care about my project. In the most cases, I have observed that it is not very difficult to resolve the conflicts if the team members don’t lose their heads and become too agitated. The best solution is to make a pros-cons list and see which argument has more weight. The other solution I have used is to consult the teaching staff. The last solution if all else fails is to let the project manager decide. According to me, for real world projects, the project manager should be the person who has the most stake in the success or failure of the project. For example, during our final project, Leon Qiao was the project manager since it was his startup BigSpoon. When I had the opportunity to do project management during the assignments, I let the decision be handled by a vote and then take the opinion of the majority. However, that is just my style of project management.
  2. Lack of resources in the team – In Jim’s case, it was the lack of programming talent. But more generally, you could be short of artists, game designers, etc.. This is a nasty situation. The first way to resolve this would be to pre-empt and prevent. For example, if you know you are going to make an iOS application, try to rope in iOS developers. If you can’t find any, see if your idea can be modified to work well on any other platform. If not, then see if you can learn the technology within the time constraints. Estimating the time required to learn is a difficult task and this is where the teaching staff can help you. Ask them if it is possible. Ask prospective team mates if they could learn the technology in the short amount of time. If nothing works or you get negative replies, then change the idea, as the last report. If you employ these strategies, you should never be in a situation where you lack talent. However, it might be that you didn’t estimate that you need 3d artists and suddenly you realise that you need a 3d artist for the success of your project. Well, that is a tough situation to be and it should not have happened. If it does, then you didn’t plan your resource requirement well enough. In this case, your best bet is to ask for help. Ask your friends, ask other teams, etc.. Ask the teaching staff. However, if all else fails, you can either decide to shelve the feature or learn the skill yourself, time permitting. But, again, this situation will not happen if you plan the project meticulously. So, a few hours spent thinking about the product might save you many hours cursing why you did not.
  3. Over-the-top expectations from team member or unrealistic ideas – One problem that might might happen is that a team member isn’t able to deliver as much or as well as you had expected. This is a bad situation to be because this means that your project will have to suffer. Many a time, the solution is simply to push the team member and egg him on. Maybe meet more often? Talk to the team member? Ask him for progress updates more often? Many a times, I myself, have the tendency to start slacking. I believe my FYP professor handles me really well. He simply puts more pressure on me, reminds me more often, etc.. As a team leader it is your responsibility to get the best out of your team mates. Its okay to be the “annoying guy” if it helps your project. You don’t have to impress your team mates to marry them later on in life, you have to get the best out of them. Alternatively, it might not be the team mate who is the source of the problem. His task might be too difficult or he might not have the required expertise. In the first case, the project manager should do more homework. He should analyse the tasks again and maybe break them down into smaller components and then try to estimate the man hours of effort needed. In the second case, if the team member doesn’t have the required expertise, he really can’t do enough about it. All you can do is to help him learn faster. This involves motivating him, reminding him about the task, trying to share some of the workload, etc..

Final Project – BigSpoon

Posted: November 29, 2013 in CS3216, Shubham's Posts

Unlike many of my class mates, I did not have an idea in mind already. I went into the pitching session with an open mind. I initially thought it would be very cool to do something Google Glass related. However, there was only one Google Glass available for all the Google Glass based projects and that really put me off. What is more difficult than doing a project on a completely new technology? Doing a project on the completely new technology when you wouldn’t have the technology all the time with you for debugging. I also had problems with using the Google Glass. I am short sighted and it wasn’t comfortable using my regular glasses under the Google Glass.

Instead of searching for team mates for a particular idea, I decided to search for ideas after finding team mates. I requested ZX, Gaoxiang and Yos, thankfully, they all agreed to join me in yet another project 😀 Working with them in the assignments had been so much fun and so easy that I feel I am lucky to have found such team mates. Goaxiang initially suggested doing a project related to automated essay scoring (my FYP) and even though it would have been awesome to apply my FYP to a real project, I was not overtly keen since I my AES software lags behind the state of the art (I hope to change that by the next semester).

After finding the team mates, I messaged almost every external presenter to ask them more about their ideas. I had already been really impressed with BigSpoon during the presentation. Add to that the fact that the team was made up of CS3216 alumni. What could be more awesome? 😉

Oh yes, there could one one thing more awesome – the people you want to work with want to work with you 😀 So, it was decided, we were doing BigSpoon. And BigSpoon team did really make it easy for us. They had already thought about their design to the minutest detail. In fact, they had almost made a prototype using Powerpoint (I also didn’t know before that Powerpoint could be used as a prototyping tool 😉 ). Leon Qiao had also spent effort in designing the data model. We quickly decided that the final app would have to have 3 components – iOS consumer app, restaurant facing web app and the server, of course.

We had hardly planned what to do when another friend joined our team- Chen Liang. We were obviously not going to say ‘no’ to two more hands who could code 😛 So, when he asked if he could join our team, I must have shouted out ‘Yes’. We would have said to a sixth person too had Prof allowed – the way I see it, the more the merrier 😀

Me and Zhixing Yang took over the iOS part, Chen Liang, Gaoxiang and Yos were to handle the web app 😀 It had been two years since I had done CS3217 and so I had completely forgotten about iOS development. It took me some time before I could get re-familiarised with everything. I was also really struck by all the improvements Apple has made not only in XCode but also iOS. iOS development is much less painful now (all hail, ARC and storyboard :D). Actually, if you have never used Storyboard before, it can get a bit frustrating at first because getting used to the GUI and finding the different options can really take some time. Many a time, I was tempted to just do everything in code, but I am glad I didn’t give in.

FYP played a bigger role during the final project. Prof Hwee wanted frequent updates and so I really had to divide my time between my FYP and the project. In fact, this has been a big grudge of my undergraduate life. I am never able to devote sufficient time to interesting modules because of other interesting modules. When I was doing CS3217, I had my UROP. Now, FYP. I really want to do a PhD because then, I would have only one project to worry about. But, anyways, I did the best I could do, cut down on some sleep, drank more Coke (beer would have sounded so much cooler but my parents don’t allow me to drink 😦 ) and carried on.

The project also gave me a chance to go and interact with real customers. All hail Jay for arranging everything! I have begun to appreciate the marketing side of a business even more after this stint.

What was really helpful was the feedback of the teaching team. I wish the same process could be applied to the other assignments. The meetings with the tutors were really helpful. My special gratitude to Su Yuen and Omer, and of course Prof Colin, their feedback really helped us. They pointed out things that were as big and glaring as the white red cherry used in a Sunday morning cricket Test match, but they were things we wouls never ever have noticed on our own.

I must also say that we were lucky to be working with Jay and Leon Qiao. They had gone through CS3216 a year before and so they understood the requirements very well. They helped us at every step.

I love STEPS, especially presenting to Profs whose modules I have taken before. Its almost like a ‘thank you’ to them for teaching CS3216 students the basics of computer science which has enabled us to do awesome things.

The only regret I have is that we ran out of feedback forms. I think Prof underestimated the response, but I am sure next year, the students would be cursing our batch because they would have many more feedback forms they would have to get filled 😛 HAHA

Cab Share

Posted: November 29, 2013 in CS3216, Shubham's Posts

I did my third assignment with Yos, Gaoxiang and Tien. I didn’t know them before CS3216.

We thought of many ideas for assignment 3. I was thinking of an event recommendation service. Gaoxiang wanted to do some version of a geolocation based name card. But we ended up make a taxi fare sharing app. I couldn’t convince my team mates about my idea. In hindsight, its good that they were not convinced since I was thinking of using some machine learning to recommend events (a continuation of my summer internship work) and it was probably not the sort of thing appropriate for CS3216. I didn’t see any real use for Gaoxiang’s idea. The idea for CabShare was inspired by one of the problems on http://www.ideaswatch.com/.

Taxi fare sharing app suddenly made sense to all of us. I liked it because I usually take two cab trips per semester – one going to Changi from NUS after exams, the other coming from Changi to NUS when the semester starts. They cost 30$ each. I hate shelling out 60 bucks every semester when I know that there will be many more people going from NUS to Changi during that period and in an ideal world, I should be sharing rides with them. The idea fitted also because we could fulfil all of the milestones with it like geolocation, local storage, etc..

Working with my team was pretty smooth. Tien and Gaoxiang had used Ruby on Rails before, so they knew what they were doing. Yos is really hard-working and he has done front-end stuff before too. I did geolocation + taxi fare calculation (front-end essentially). It wasn’t like assignment 1 when we used to meet everyday. For assignment 3, our team met less often. However, the communication was good. We used Facebook chat to the max and didn’t really have any problems communicating. We spent a lot of time in discussing and testing the user interface, user flow, etc.. We didn’t let the implementation difficulty dictate the user experience. This was really good to witness and speaks volumes about the quality and motivation level of my team mates.

Working on this assignment was interesting also because this was the time when I had to start spending hours on my FYP. I had totally neglected my FYP during Assignment 1 and so I had to make up for it. Most of the seniors said that doing CS3216 with FYP was hard and I should have listened, but I didn’t. Anyways, thanks to my awesome team mates, I was able to cope with both.

I didn’t feel a lot of pressure working on CabShare. I think this is because I could always rely on my team mates and trust them to not only do their part well but also help me if I face problems.

Also, to calculate the taxi fare, I cheated and was piggy backing on some other service by making requests to their server and pretending it was their website. This is the benevolent service – http://www.worldtaximeter.com/singapore 😀 If they ever come running after me, I would reiterate what I learned in the first lecture –

ask for forgiveness not permission

The one problem that we faced was deciding what the offline mode should show.Our app is not a content based app, so offline mode doesn’t really make much sense. My team mates didn’t even want to do it since they felt it didn’t add much value (they were right in my opinion too). However, I was a bit more paranoid about my grade, so I convinced them to show at least a message saying the app is offline 😛

In this assignment, I did feel the 7/30 coolness score was a bit low. I still don’t know why the app didn’t work for the teaching staff. In fact, I wish we could demo them our app just like we demo our final projects to them. I completely understand their point of view that we wouldn’t have the chance to demo it to real users. But it would be good to split the coolness marks to 15 (before demo) + 15 (usability after demo). In our case, the teaching staff couldn’t get OTP to work. Now, this prevented them from doing anything inside our app since the app would let them in only if they provided the correct OTP. If we had a chance to demo, even if they wouldn’t have given us more points, they would at least have been able to see how the rest of the app works. This would have led them to be able to comment on the UI in the rest of the app, etc. etc.. I hope Prof Colin agrees with me here and has a demo session for the assignments too from next year 🙂

Cloakie uncloaked!

Posted: November 29, 2013 in CS3216, Shubham's Posts

We were actually thinking of making a social calendar!! We ended up making an anonymous Facebook messaging app.

I knew Chinab before this module and was overjoyed to see he was taking CS3216 too, considering that he is not from School of Computing and this is the 5th year of his NUS life. So, of course, I wanted to do one of the assignments with him. And why not start with the 1st, right?! I was Zhixing Yang’s tutor in CS2103, so I knew him from before CS3216 too. Needless to say, he was one of the best students in the tutorial group, well, the class really. So, I asked him if he would like to do Assignment 1 with me and he agreed 😀 We were still searching for one more member but we were unsuccessful in finding one. We really wanted to work with another 2 people but Prof Colin said that a group couldn’t have more than 4 people. He was okay with 3, but not 5.

Okay, first hurdle crossed. I have a team for assignment 1. Now, we need to decide on what to make. Chinab suggested a social calendar. We were having dinner together at College of Alice and Peter Tan, UTown (yeah, thats right, one of the advantages of working with me is you can have free dinner from 6pm to 10pm if you happen to be in UTown). Initially, we liked the idea of social calendar, but then, we started to think of the features. We were able to come up with many. For example, a calendar which lets you search what your friends are doing at any given point, an intelligent even assigner, categorizes friend’s events for you, etc. etc.. Over some dal makhani and plain cold stale naan, we had hit the jackpot idea!

Now, come the next day or a couple of days later, I don’t remember (and don’t you dare to think that not being able to remember is my fault. I am too advanced for my time, I am born with the expectation of a time machine but in a time when human technology hasn’t progressed that much), but I remember us huddled around in SoC Basement at around 10pm was to decide the main features and possibly the architecture too so that we could start work on our assignment 1. We were brainstorming and slowly, we came to the realization that a social calendar is not really something we NEED. In fact, we were not sure it offered something new at all. Then, while we were still coping with harsh truth that our multi-million dollar mind boggling idea might just be a pipe dream, Chinab suddenly asked me if we had tried ‘Bang With Friends’ (don’t blame me of thinking about such apps, Chinab is the culprit).

I didn’t really know about ‘Bang With Friends’ but I was immediately intrigued. I mean which guy would not like this name?!? Its really the perfect app, you can choose among a list of your friends who you want to ‘bang’ and if they feel the same way about you, problem solved! All 3 of us agreed that this was the perfect app but it had already been done. So, well, we can’t really do this. This discussion progressed to a discussion on what if we could make an app that let you vent out your true feelings for someone anonymously. We really thought this would make the world better because it would encourage more and more people to express their true feelings which they would never have due to the fear of their personal identity being known.

Well, the above is the story of how the idea of Claokie was born! If Cloakie is successful a few years down the line, this story would be that sort of inspiring story that entrepreneurs will talk about – 3 kids with a dream to change the world, blah blah blah. Anyways, now that we were done with what we would like to make, we dived into how we will do it.

I wanted to get an MVP out as soon as possible. So, I was pushing my team mates to think about the actual user interface, implementation of basic features and start coding asap. We used to start our meeting in SoC almost every day between 6-8pm and used to leave anywhere from 2am to 7am (actually, mostly around 3-4am, I once left at 7am very close to the deadline). Chinab had used php before, so he became the server guy. Me and ZX (Zhixing Yang, I feel ZX makes him sound like a superhero, which he is – a superhero team mate) became the client guys.

We sketched out the UI the first night. Then we moved on to the architecture. We discussed how the interaction between client and server will be, then started coding. This was my first time doing frontend JavaScript and HTML on a real sizeable project (I had used JavaScript and HTML5 canvas before, but that use case was very different, it was not a full blown application and I didn’t care much about how good the UI was). ZX started on designing the look, I started on Facebook login. We always used to work together (all 3 of us). This is the way I prefer working actually. This way we do not waste time in e-mailing, messaging, waiting for response etc..

In hindsight, we probably didn’t utilise our time well. We could have used a templating library to avoid spending hours writing and debugging html string concatenation in JavaScript. But both of us were new to this and so it was a good learning experience. Chinab knew his php well, so we didn’t have to worry about that at all. We were using websockets and defining our own message format for different kinds of messages. The only thing that I probably contributed to Chinab’s knowledge was regular expressions 😛 He was using long and complicated string manipulation and comparison to identify the type of message.

I really feel blessed to have got such hard working team mates for the first assignment. I know both of them made many sacrifices for the assignment. I used to insist we work together as much as we can. ZX, who was an early riser, even changed his sleeping schedule to work late night with us. The best thing about late nights is that the time slots never clash with something else. But we also had a lot of fun in our meetings. We discovered many hacks to get stuff from the Central Library vending machines for free 😉 Our biggest achievement was a never ending supply of forks and spoons from the cooked food vending machine and a free packet of peanuts 😀

Well, we initally planned on finishing the first prototype within a week or less. Not a surprise, but we failed miserably on our own set deadlines. I think I knew we would but I still set unrealistic deadlines for ourselves since nothing motivates programmers like the delivery date, in my opinion. By the mid submission, we had a working system. One could send messages to others. But that was not what our app was about. We hadn’t implemented the anonymous feature yet. However, we were feeling good about having a featureless MVP out at least.

We also had a lot of trouble with regressions. We didn’t test enough and so sometimes ended up pushing broken versions to the ec2 instance. This caused a major misunderstanding a few days after the mid submission when Prof thought that the broken version was all we had and he sent an e-mail that read something like this –

Does absolutely nothing. >.< Clicking on Connect does nothing. Only the Like works (and strangely asks me to confirm the like)

We cleared that misunderstanding soon enough but that did tell us something about not writing unit tests. In our defence, we probably didn’t have time or people to write tests, but I have a feeling that will be the case in almost every project. So, that is a good leasson learned and something we could learn from.

Luckily, in the end, it all worked out. We did have to pull off some all-nighters at the end but well, being NUS students and after having taken Prof Ben’s modules, I don’t think any of us really minded that. We were able to implement almost everything we wanted to do at the beginning. We could have done a better job of the timeline and open graph milestones. I feel the teaching staff were generous in giving us 3/5 for the milestone which dealt with integration with Timeline using OpenGraph collections 😛 However, I am really happy with what we did.

Thanks to Chinab and ZX for working with me for this assignment! I hope you are as proud of Cloakie as I am! Thanks also to ZX for teaching me the basics of Chinese 😛 Now, I no longer point to dishes at the Chinese stall. I say I want ‘shi hong shir chao dong’ (tomatos fried eggs dish) instead 😀

Application Critique

Posted: September 3, 2013 in Uncategorized

Yesterday evening was a fun one. It is not always that you get to hear a concise but in-depth analysis of the most influential apps around. The best (and most troublesome while preparing) part was that no presentation dragged on and on. Everything had to be simple and sweet by design. I have become a big fan of Pecha Kucha style, more than even Ignite. I think 20s is kind of perfect, the 15s allowed by the Ignite style feels too short now.

So, I am supposed to blog about Yelp. I got introduced to Yelp around last year and would you believe it, it was because a friend told me it was a good company to intern at. This was the period when I was applying for summer internships, my friends had got one already, and not for the first time in my life I started out too late. Even though I didn’t get an internship offer from them, I did get introduced to the service our relationship has continued since. So much so that I have begun to really look forward to seeing the The Weekly Yelp in mailbox every week.

Oh, and if this wasn’t enough, the presenter was awesome. Her public speaking skills were mind-blowing. Her turn to present was before our group and I remember thinking how I could ever match up to the standards other presenters were setting. And well, after looking at the feedback, maybe I actually didn’t. So, all in all, it was a good learning experience for me.

The presenter stressed a lot on how socially integrated Yelp was. She proved how good a strategy this was by stressing on the staggering 100 million unique vistor mark. Well, its hard to argue with that sort of number, isn’t it? Actually, the presenting group admitted that they couldn’t really accurately pinpoint just why Yelp took off like it did. But social integration was one of the strongest reasons they put forward. I have a few more hypotheses of my own but I couldn’t agree more with them on the social aspect. Yelp allows me to read reviews written by Facebook friends, see what my friends have reviewed and see which friends have liked a particular business. Not only this, Yelp allows me to view a feed of what my friends are doing on Yelp. These features are ‘killer’ because many a time, I have given a shot to 3 star eating places just because a few of my friends liked them. And this gamble has always paid off. So, I would go to the extent of saying that being able to see what my friends have liked/reviewed sometimes becomes more important than reviews of strangers. So, definitely a +1 from my side and kudos to the presenting team for identifying this.

Another fun fact that occured on me listening to the presentation was that Yelp = Yel + p => Yellow pages. Wow! 😀 This is one of those things which are so trivial that you keep thinking why it didn’t occur to you earlier.

But these fun facts aside, I really liked the story of how Yelp grew in its early years. The presenter mentioned the ‘People love us on Yelp’ campaign back in the days when Yelp was just another start-up. This is one of the examples of where conventional wisdom can hold us back. This sticker is just another advertisement if you go back to the time when Yelp was unknown but yet Yelp didn’t have to pay to get these on the windows of businesses. So, why would this work, you ask. Well, the presenters didn’t have time to elaborate on this but along with the sticker, Yelp also used to send a short and sweet letter congratualting the company on being recognized as a favorite by locals in their community. Marketing genius, I tell you! And they were smart enough not to do this to any random shop they stumbled upon, they included only the businesses that had a small number of trusted reviews. And fast forward 5 years, this growth hack did really pay off, didn’t it?

Fake and fraudulent reviews was another point which the presenting team churned up. This is so obvious but yet so horrifying in that if this threat became real in a significant manner, it could turn a success story into failure in no time. Would you use Yelp if you knew deep down that you couldn’t trust Yelp reviews because the awesome sounding eatery might be a rag tag place whose owner invested more in paying for reviews rather than improving the quality of the food? This point also resonated with me because fraudulence and abuse is what I am most scared about for my dream anonymous Facebook messaging application that I am building right now. But this is such a confidence booster too, because if Yelp could do it and make it big, so can I.

A point that I didn’t hear emphasised enough (to be honest, I don’t remember if they emphasised it at all, but just to be on the safe side) is the role that Yelp community managers play. Their team of 60 or so managers really deserves most of the credit for making Yelp as popular as it is today. Remember the ‘Weekly Yelp’ I mentioned at the beginning of this long rant, yes, that is curated by the awesome community manager for Singapore. Yelp’s community managers, according to Yelp, are hired for the knowledge and enthisiasm for the city they live in, and boy! do they show it.

According to me, one of the most intriguing things about Yelp is the business advertising they do on their website including preferred search result placement and speacial listing features. On googling Yelp, you always find some or the other news article about the controversy regarding how Yelp treats or mis treats the businesses who paid for these ads. Business owners have been known to get violent and cause a ruckus because they feel Yelp is harming their reputation. People have often accused Yelp of favoring its paying members by removing their negative reviews.

I also feel that the presentation gave a bit too rosy a picture of Yelp. Sure Yelp has expanded rapidly, but it is yet to turn a profit. Also, Yelp is facing intense competition from Google Places (fun fact: Yelp was close to being bought by Google in 2009). I seriously wonder if Yelp would be able to stand the enormous scale and aggressive mobile strategy employed by Google for Places. Add to this Android and the fact that Places is bundled into the OS.

Also, in my opinion, the perception of Yelp is taking a major hit from the allegations of extortion practices all of which have been vehemently denied by the company. There was even a lawsuit recently accusing Yelp of demanding paid advertising in return for suppressing or deleting bad reviews.

So, all in all, I hope Yelp can rise above the challenges and continue doing what it is. I love Yelp and if for nothing else, for the fact that it feels like a service made by humans. The social element is definitely a major plus but yet, challenges remain. After all, even though Yelp is based in the US, it is no NASA or Pentagon. It needs to seriously think about other possible avenues of monetization and act very quickly to stem the rising uproar of alleagations.

What you hope to learn in CS3216

Posted: August 11, 2013 in CS3216

The above is a beautiful Hindi (my mother tongue) song  from the movie ‘Lakshya’. The literal English translation of the ‘lakshya’ is ‘goal’. I think the song fits in perfectly with this post. (Maybe it can be Prof Colin‘s goal to learn Hindi and understand this song by the end of the semester  #justsaying)

Well, its the start of a new semester for the 7th time in my life. And I actually feel kind of sad that this will only be the second last time. I really wish I could spend my entire life in NUS. I love the people, the professors, the classes, the hackathons, the projects, etc.. But alas, all good things must come to an end. I do hope I can come back to NUS as a professor or stay on as a research assistant or PhD student, but that is not what this blog post is meant to talk about.

This semester, I am going to take CS3216. I had been looking forward to taking it since semester 1 when I saw Angad and Adhiraj taking it, but for some reason or the other, I kept postponing. I was either doing other project modules or finishing my UROP. This year is probably even worse since I am doing my FYP, but this was the last opportunity and so I decided to apply anyway and was delighted to receive Prof Colin’s welcome e-mail soon after.

My classes start tomorrow and as the first assignment, I have to complete this blog post enumerating what I wish to take out from CS3216. So, let me get started…

  1. Create software that will be useful to people. If I am able to achieve this goal, I would consider ‘Mission Accomplished’. By the way, ‘people’ also includes ‘me’. If the piece of software I create is useful to me and me alone, that will also count as success in my book. I do not care much about starting a business because I am not concerned about the money side of things. I just want to create something that has utility enough to be useful to at least one person and which I will want to work on once the course is over.
  2. Become good at making web applications. Maybe I could have replaced ‘web applications’ with ‘software’. But I did not, one part of the reason is that a web application is what I think I will most likely be making in this module. The second part is that web applications are what I have the least experience in making. I have never had to make one in school. Even in CS3217, my worthy teammates did the web side of things, while I worked on the iOS side. I have spent every summer till now in trying to do internships which are research oriented and so have also not got a chance to create web applications. I hope I will get a lot of experience and be successful in making the frontend and backend of web applications as part of this course.
  3. Develop the habit of blogging. I think this component of the course is really useful too. I have never been much of a blogger (I have been an annoying Facebook poster though). All but the last two posts in this blog were also written for another module, IS1103, which I took in semester 1. Blogs which explain programs or talk about how to fix errors are very useful to the community at large and also increase one’s reputation. I hope I will get into the habit of blogging through this course and retain that habit for the rest of my life.
  4. Learn to prioritize tasks. I hope that the stressful semester ahead will force me into doing this. I hope I will be able to leave the urge to make things perfect, learn to move on and do important things first.
  5. Become physically fit by the end of the semester. This is probably the only goal my mother wants me to achieve in life and this is the goal which I think is the most difficult. Actually, I have had this goal before every semester. I hope I can learn to care enough about my health to do physical exercise regularly and not eat unhealthy food.

There are other goals too, which I have from taking CS3216, but this blog post will become too long I do not want to share them publicly. If I do well in this module, I will share them. If not, I will edit this post to remove this para and pretend the above 5 goals were the only ones in my mind.

It was a horribly boring day, but that wasn’t really a surprise. Well, I mean it was the recess week the week before the “first” ever midterms of our life and such a day is never “interesting” to say the least. And on this very same day, a bogged down spirit was making its way across the vast expanse of Prince George’s Park Residences muttering “I am screwed” over and over again. Again, no prizes for guessing this one – this wretched creature had made the long famous mistake of trying to pursue “Computer Science” and was supposed to be taking the “Discrete Structures” paper the day after.

I know I should have disclosed this in the climax (if there is any) but I am not much of a story teller and so let me make it clear that the spirit mentioned in the aforesaid paragraph refers to me, my humble self. Actually, I was only supposed to be tested on 6 chapters and considering a week’s time, preparing for the test is by no means a Herculean task. But, as it is with most students (I conveniently assume), I had spent the last 5 and a half days “utilising” my time on Facebook and appreciating good cinema (critically reviewed an average of 5 movies per day.

So, while I was going to my 2nd floor room of Block 17, I was intercepted midway by 2 creatures. One, the tall one named “Shairaz” and the other, the short one named “Raghav” (well, I reluctantly add that the short one was just a little taller than me). Now, the Lambu had made the same mistake as me (I mean Computer Science) and Raghav, too, was not faring any better (Business). I was shocked out of my precarious situation on seeing them appear out of nowhere and what they asked next literally took out the air from my lungs – “Lets go bowling !!”. I said “What? Dude, I have not even properly finished 1 chapter of 1 module (out of the four I was supposed to be tested on in the midterm week). Strictly no, I am not coming.” Now, as I said this, I was half wishing they would protest and convince me to go along with them (as if I needed any convincing). As true friends are, so they did.

Thus, we happily hopped off to the bus stop having forgotten all worldly ties like the impending mid-terms behind. But, then something struck us. Which bus were we supposed to take and from which bus stop?? Quickly, the cell phones got busy at work asking every possible person in their respective contact list how to get to the West Coast Entertainment Centre. But the efforts soon paid off when after over half an hour of frantic calling, a kind similarly vellapandi-inclined soul finally told us the way. What was next – we happily waited for the next 20 minutes for the next correct bus and then left for our destination.

Well, as it turned out, the “kind soul” had told us the wrong way and there was nothing even remotely connected to bowling at the place we landed up. Then, we meticulously and articulately abused the “kind soul” for a full 5-minute stretch in a single breadth. Exhausted and overjoyed by our efforts, we again got to work asking every person we met nearby the way to the nearest bowling alley. You may think we were mad, but no – we were out on a mission and we were going to accomplish it whatever it takes. After all, if we fail today, we would be the next topic of discussion among our Indian brethren for the next few days.

Finally, we found it. Well, actually, not a bowling alley but a drink shop. I swiftly ordered a bottle (of orange juice) and drank it as slow as possible deliberately just to enjoy the expression on the exasperated faces of the other 2 musketeers. Let me tell you it is an amazing sight. Re-energized (actually only me, but last week only, in Physics lecture, we had read of some crap called the inductive effect), we set to work again. And, lo, behold !! We finally had done it. The gate of the recreation centre was smiling widely at us inviting us to slam it hard against the wall. But, what followed was an anti-climax, to some extent. The rates were 8 times more than we expected. This would mean that I won’t be able to buy the text book for my Information Systems Module. But, who cares?? Bowling is certainly better than a book on Computing and Society.

It was an amazing experience. I came second in the first set and secured third position in the second one. Dude, it was tough and the competition was stiff among the 3 participants in the tournament (the 3 unfortunate souls). We happily returned back to PGPR. Okay, okay, let me tell you the truth, The return journey was not happy as we, by mistake, glanced at the time. We had played 2 sets of bowling lasting 15 minutes each in an aggregate of five and a half hours (It is worthwhile to mention that the strike rate of Rahul Dravid is better than this. I mean he succeeds in making atleast 10-12 runs in a test match day). Oh and of course, after a heated debate which uncomfortably lasted the whole bus journey, the blame of this delay was put upon my fucking orange juice (IMAGINE !!).

But still, as I look back at that “LEGENDARY” night, there are some interesting take-aways which I feel compelled to mention-

  • Firstly, always say yes to your friends in everything they ask you when the exams are far (personal experience – they won’t ask you for a lot) and always say no to them in whatever they ask just before the exams. I realised that when my midterm grade was out.
  • Secondly, always remember to take take photos of whatever you do (in fact, even if you don’t do something, take photographs some how and post it on Facebook). We didn’t click any pictures on that day and I feel so stupid whenever I see some picture of a brat bowling.

Finally, since I don’t know about the genre of this story-like-incident, I decided to make it a moral-based story. The moral – “Where there is a will, there is a way”. We did succeed in our mission that night and the reason was because “agar kisi cheez ko dil se chaaho to saari kaayanaat tumhe us se milaane mein lag jaati hai”.

Stuxnet & Ethics!

Posted: October 20, 2010 in Shubham's Posts
We have so far heard mainly of ethical hacking by companies in order to test the robustness and the security features of their software and programs. But this is something new – kindly have a look at the following news in “Economist” –

A cyber-missile aimed at Iran?
Sep 24th 2010, 13:32 by T.S.
THE internet is abuzz this week with speculation about Stuxnet, a “groundbreaking” computer worm that attacks industrial-control systems. Put that way, it doesn’t sound very exciting. But the possibility that it might have been aimed at one set of industrial-control systems in particular—those inside Iranian nuclear facilities—has prompted one security expert to describe Stuxnet as a “cyber-missile”, designed to seek out and destroy a particular target. Its unusual sophistication, meanwhile, has prompted speculation that it is the work of a well-financed team working for a nation state, rather than a group of rogue hackers trying to steal industrial secrets or cause trouble. This, in turn, has led to suggestions that Israel, known for its high-tech prowess and (ahem) deep suspicion of Iran’s nuclear programme, might be behind it. But it is difficult to say how much truth there is in this juicy theory.

The facts are these. Stuxnet first came to light in June, when it was identified by VirusBlokAda, a security firm based in Belarus. The following month Siemens, a German industrial giant, warned its customers that their “supervisory control and data acquisition” (SCADA) management systems were vulnerable to the worm. Specifically, it targets a piece of Siemens software, called WinCC, which runs on Microsoft Windows. For security reasons such systems are usually not connected to the internet. But Stuxnet spreads via USB memory sticks, or key drives. When an infected memory stick is plugged into a computer, the Stuxnet software checks to see if WinCC is running. If it is, it tries to log in, install a backdoor control system and contact a server in Malaysia for instructions. If it cannot find a copy of WinCC, it looks for other USB devices and tries to copy itself onto them. It can also spread across local networks via shared folders and print spoolers. (Here are the gory details.)

At first it was assumed that Stuxnet was designed to conduct industrial espionage or allow hackers to hold companies to ransom by threatening to shut down vital systems. But it has some unusual characteristics. WinCC is a reasonably obscure SCADA management system. Hackers hoping to target as many companies as possible would have focused on other, more popular, control systems. And according to Ralph Langner, a German security expert who published his own analysis last week, Stuxnet examines the system it is running on and, only if certain very specific characteristics are found, shuts down specific processes. All this suggests that a particular system was being targeted.

Moreover, Stuxnet uses the combination of two compromised security certificates (stolen from companies in Taiwan) and a previously unknown security hole in Windows to launch itself automatically when a user tries to access a memory stick on which it is installed. The use of previously unknown security holes (known in the trade as “zero-day vulnerabilities”) by viruses is not unusual. But Stuxnet can exploit four entirely different ones in order to worm its way into a system. Normally, anyone who discovers a new zero-day exploit can expect to sell it for a handsome fee to hackers who can then make use of it. Whoever built Stuxnet, however, was prepared to pay for four such exploits, which cannot have been cheap, to boost its chances of success. They also had deep knowledge of particular control systems. So it seems to be an expensive piece of software aimed at one specific facility.

But which one? Microsoft said in August that more than 45,000 computers around the world had been infected by Stuxnet. An analysis by Symantec, a computer-security firm,found that 60% of infected machines were in Iran, 18% in Indonesia and 8% in India. It could be just a coincidence that Iran has been hardest hit. But if Stuxnet has been deliberately aimed at Iran, one possible target is its Bushehr nuclear reactor, though there is no specific evidence for this. It is true that according to this screenshot from UPI, the Bushehr reactor is controlled by Siemens systems, including the WinCC software that Stuxnet targets. Dr Langner speculates that it could have been infected via AtomStroyExport, the Russian firm that is building the plant. Bushehr has been dogged by problems for years and its opening was recently delayed once again. But given the long history of delays, there is no need to invoke a computer worm to explain the latest one. A rival theory is that the target was Iran’s uranium-enrichment plant at Natanz, and that Stuxnet successfully shut down some of its centrifuges in early 2009.

We are deep into the realm of speculation here. Readers are invited to follow the links in this post to wade as far as they like into the various conspiracy theories floating around (such as this one, which spots a Biblical reference in a project name buried in the Stuxnet code). Two further reports on the worm are due be released at a computer-security conference starting in Vancouver on September 29th. They may clear up some of the mysteries surrounding Stuxnet—but they may simply prompt further speculation.

Here is a video which tries to unravel Stuxnet and the uncertainities about it –

Well, this is amazing and raises serious questions about ethics.

If at all, some mischief mongers are behind this who out of sarcastic pleasure of sabotaging programmable logic controllers in industrial equipment, or for making money, use Stuxnet, it could be understandable; but if at all it is being used by governments to target their political enemies, it is very unfortunate. Although its use or release by anbody is unethical, but if it being used by governments then it is atrocious and highly condemnable. Athough not much is known about Stuxnet, and we may know more about it in future, but one thing is certain that it is big challenge for the cyber security experts.

Another fallout has been that Iran has apparently blocked the technology website “Ars Technica” for reporting on the Stuxnet virus, which has been found targeting industrial systems in the Middle Eastern nation. This action is also unethical and we also do not know as to what was reported that invoked such a strong reaction. I have browsed this website and failed to see anything that could have warranted such a step.

A very recent report at infowars says, “Stuxnet False Flag Launched For Web Takeover”. This is very interesting and if it is true, it should be fought tooth and nail to ensure privacy and freedom of speech & expression. The following  three videos explain how Stuxnet is being used as a false flag by the US government to takeover and control all aspects of the web and individual communications –

Here is a counter view. The following video blames Iran and Russia for raising the false flag of Stuxnet –

It is still unknown as to who really is behind, but to look at the ethics involved in this, I am analyzing the aims with which it could have been done. For this I assume that I am one of the following –

  1. A professional hacker
  2. A computer expert thief
  3. A terrorist
  4. A nation state
  5. An industrial unit
  6. A software company in cyber security

I will now analyze each case one by one.

A professional hacker
If I am a professional hacker, I try to invent code that can break into computer systems and bring them down. It is not necessarily for wrong motives and I do it for helping the software companies in making their software impregnable and secure. My aim for developing Stuxnet could be to highlight a potential threat with the most ethical objective and then to try to develop a safeguard for this. This action is not unethical and it should be ensured that the product does not fall into wrong hands.

A computer expert thief
If I am a computer expert thief, I try to break into secure computer systems and steal usernames and passwords for committing fraud and transferring money from others’ account into my own account. If I fail in my efforts, I may out of frustration; develop something that makes critical computer systems unworkable. This action is unethical.

A terrorist
If I am a terrorist, my aim is to terrorize people of a particular enemy country and to harm them as much as possible. If I use violent methods, there is destruction of life and there is a great danger to my own life also. A novel way to harm the enemy country would be to use stuxnet to cripple computer systems and vital infrastructure. This action is unethical.

A nation state
If I am a nation state, my aim as a responsibility towards my people would be to ensure that the computer systems in my country and critical infrastructure are safe and secure. I would try to test my computer systems with the most severe viruses and worms and try to make my computer systems capable of warding off any possible threat. In order to achieve this aim, I would develop Stuxnet and try to make my computer systems immune from attacks of even Stuxnet. This action is ethical.

On the other hand, as hinted in the above article in Economist, I might in order to harm my enemy states by developing and releasing Stuxnet in the computer systems of those states in order to harm their computer systems and infrastructure. This helps me in not getting identified and surreptitiously dealing a heavy blow to my enemy. It is much more cost effective also and my men and territory are not endangered in any way in these kinds of attacks. This action is unethical and reprehensible.

An industrial unit
If I am an industrial unit, my aim would be to secure my computer systems from any kind of breakdown and attacks, either intentional or unintentional. I would rather concentrate on my safety and security, rather than thinking of harming my competitors. In order to make myself assured about the preparedness of my systems, I would ask my IT team to constantly check the computer systems by exposing them to the deadliest and most virulent worms and viruses available. This action is not unethical.

Although this possibility is remote, I might even ask them to develop viruses to make my computer systems more secure and to ward off any unexpected attacks. In very rare cases, I might use worms like Stuxnet to harm my competitors. This action is unethical.

A software company in cyber security
If I am a software company in the field of cyber security, my basic job is to develop viruses and worms and then to find ways and means to neutralize them. My company gains recognition and makes more money, if I am able to demonstrate that my products can save any computer system from all the known viruses. I could even throw up an open challenge to hackers around the world, to hack my computer systems, and demonstrate to the world, that my products can ward off any possible threat to any computer. I could even show by developing a Stuxnet and an antidote to it, that I know ways and means to save computers from such virulent attacks. This action is ethical.

I might, out of greed, try to find buyers who would try to use Stuxnet for harming their enemies. The potential buyers could be nation states or terrorist organizations also. This action is unethical.

The mystery of Stuxnet will unravel in the days to come, but whatever it is, it is alarming and needs immediate attention both technologically and politically.

Outsourcing is the buzzword today and apart from companies, it is being discussed at the political and social levels also, particularly in the United States and the developed world.

The following article in the Bangalore edition of the Economic Times of 10th September, 2010 shows that President Obama himself is against outsourcing-

Obama raises pitch against outsourcing

US President Barack Obama on Thursday once again targeted outsourcing of jobs overseas by American companies, increasing the pressure on local firms in an attempt to secure some benefit ahead of the crucial November elections in his country.

Obama, speaking at a rally in Parma, Ohio, the state which banned outsourcing of work overseas by government departments, said he remained firm on ending tax breaks for American firms that sent jobs abroad.

“One of the keys to job creation is to encourage companies to invest more in the United States. But for years, our tax code has actually given billions of dollars in tax breaks that encourage companies to create jobs and profits in other countries,” Obama said, flanked by Ohio governor Ted Strickland, who is trailing in the polls and is fighting to retain his governorship.

Obama’s party, the Democrats, faces a hugely disillusioned and angry electorate on November 2, and is widely expected to lose control of the House of Representatives. The US president has spent the last few days trying to rally his base with promises to protect jobs and spur economic growth.

The full article can be read here.

The main pitch against outsourcing is that jobs are lost because of outsourcing. However, the following video dispels this feeling –

Outsourcing is fast becoming the order of the day and any company that is setting up an online business or optimizing an existing business will likely consider, at one point or another, whether or not to outsource any of their web design, IT maintenance, customer care or even data entry. And certainly, more and more companies are turning to outsourcing, often in an attempt to keep their costs down, and to stay competitive in an increasingly complex business environment marked by cut-throat competition.

I am limiting my blog to offshore outsourcing, which really is the topic of debate nowadays.

The question about whether to outsource or not, at least for the thousands upon thousands who have already made this choice, is redundant. The real questions have become “Is outsourcing unethical?”, “What is ethical outsourcing?”, or “How to outsource ethically?”

Let us first have a look at outsourcing, the history of outsourcing and its benefits in brief –

What is outsourcing?
Outsourcing involves hiring overseas companies, located anywhere around the world, to do tasks, a company would normally do itself. These companies, from all corners of the globe, offer their services online, at extremely competitive, if not unheard of, rates.

History of outsourcing
Outsourcing is has seen an exponential growth spurt on account of Internet and the Information Age. In 1990s, Internet reached a critical mass, and then, almost overnight, technology changes started happening at an alarmingly rate. Internet started growing rapidly and then services like Youtube, MySpace, Facebook, Twitter etc. etc became available. Now, information has become a primary commodity as the global economy has transformed into one based on the manipulation of information. In the early outsourcing days, companies turning to outsourcers often sought IT providers. Today, a growing number of companies use outsourcing services as a means to develop their business, juggle the array of online social media and handle their customer care.

The loss of jobs in the United States and the developed countries to foreign markets is nothing new. For decades, developed countries have been losing jobs in manufacturing, textiles, and almost any field that involves factory work. Offshore outsourcing is just recently becoming prevalent in the news because white-collar jobs that used to be considered secure are being lost to overseas contractors. Two explanations for the sudden outburst of outsourcing in the IT industry are the Y2K bug and the dot com boom. Both events created a great need for developers that could perform mundane repeated tasks at a low cost. Since the developed countries couldn’t provide enough workers at the time, companies looked elsewhere.

Is it necessary to outsource?
Many entrepreneurs feel that they should focus on their core competencies and the routine work should be outsourced. It is often seen that people who have attempted to set up their own company, are just keeping afloat or are seeing a small profit margin. And many others are struggling to generate the same annual income they would have, had they sought employment, working for someone else. Outsourcing represents a way for some companies to stay in business.

Benefits of Outsourcing

Here are a few of the obvious benefits of outsourcing-

The time zone advantage:
A company can outsource any aspect of its online business to providers in a different time zone in the evening, and the work is in the company Inbox the next morning.
The global employee pool:
A company which outsources tasks can tap into a network of literally thousands upon thousands of employees, the vast majority of whom are eager to do the work assigned. This is a treat for those employers who have tenured employees in the office, who grumble when any new project is given to them.
Cost savings, focusing on core competencies and rising in the value chain:
Apart from saving money, the central idea behind outsourcing is that an enterprise should focus on what it does best (make cars, cakes or sell insurance) – its core competency, and hire someone else to do what they do best (make steel, food coloring or cut checks). A business should outsource only what does not differentiate it in the marketplace. It can lead to a company rising in the value chain, by outsourcing its non- core work to other companies. This also allows the company to seek those ventures that generate more revenue and are more profitable.

Ethics of Outsourcing

The recent years have seen a whole new debate in the United States and the developed countries about the ethical dilemma in offshore outsourcing. Critics are concerned about the widespread loss of jobs in their countries as more and more processes move to low cost countries like India, Philippines and Brazil. A company has to choose between the choice of retaining its employees at a higher cost to the company and outsourcing the same task to cheaper locations.

Very recently an anti-outsourcing bill was introduced in the US Senate, but has been defeated, which is being viewed as setback for the Democrats. The following news article was reported in the news papers-

Anti-outsourcing bill blocked in US Senate

Washington (29th September, 2010),(PTI).
US Senate Republicans successfully blocked the passage of an anti-offshoring bill that would have denied tax breaks to US companies which move jobs overseas.

Republicans in a 53-45 vote prevented the bill from overcoming a filibuster. At least 60 votes were needed to overcome the Opposition’s obstruction.

As per the bill, there will be a ban on government contractors from using American taxpayers’ money to move jobs offshore.
What is seen as an electoral populist move, the Creating American Jobs and End Offshoring Act aims at small manufacturers and included a payroll tax exemption for firms that move jobs to US, but the bill also contains provisions to prevent businesses from deferring US taxes on the income they make from foreign subsidiaries.

Indian IT honchos had said the bill won’t make much of an impact on India. However, they warned that US companies operating in other countries may be beaten by the same stick.

Several business groups such as the National Association of Manufacturers (NAM) were strongly opposed to the legislation. It had sent a letter to senators arguing the measure would make US corporations less competitive and hurt job creation.

The full article can be read here.

Here is a video which explains as to why outsourcing is not harmful –

The primary consideration of corporate leadership is to keep their company competitive. Offshore outsourcing helps companies to make substantial savings on costs, improve profitability and add value to shareholders. It is worthwhile to note that most global corporations have adopted outsourcing in a big way. The few that have held out are joining the bandwagon as they find it increasingly difficult to stay competitive without outsourcing.

The offshore outsourcing ethical dilemma

Companies face a lot of outsourcing issues while trying to send out jobs to cheaper locations. Many of them have to do with employee resentment towards outsourcing while other concerns revolve around ethics of outsourcing practices at the vendor location. Some of the concerns about the ethics of outsourcing practices at the offshore location include:

Poor work environment at vendor location: Concerns about poor work environment and exploitative HR policies in developing countries’ BPOs (Business Process Outsourcing) may have been the reason why the earliest outsourcing vendors were described as ‘sweat shops’. However, these concerns are all but gone now as more and more customers visit vendor locations and see the reality of comfortable and state-of-the-art work centers.
Fall in service quality: Most companies that decide to outsource have to keep in mind the concern of employees and shareholders about quality. A moot question is whether services delivered from half-way across the globe by a set of people who are culturally removed from the parent company can meet quality expectations?
Environmental issues: With rising environmental consciousness in the United States and the developed countries, outsourcing companies are concerned that vendor companies may practice environmentally damaging processes.
Cultural differences: The cultural differences between the two countries is often cause for worry in any outsourcing venture. Companies in the United States are greatly concerned that they may have to deal with governmental issues, bribes and language barriers in the country where they wish to outsource.
Retrenchment in the parent company: A major concern is the retrenchment on account of outsourcing and the social issues involved with it.
Outsourcing is damaging to local economy: In recent years, outsourcing hit the headlines with a vengeance. There was an out lash against outsourcing, with the main arguments used including that it does not support the local economy, it reduces wages, and it costs local jobs. Other opponents raised the red alert flag that outsourcing would have negative impact on future generations.
Legal liability: The copyright issues and legal liability of the work done by the outsourcing company are ticklish issues that have to be dealt with.
Outsourcing may result in intellectual theft: Another concern may be that the outsourcing company likes the ideas of the company, copies them and starts its own operations.

Ethical outsourcing: Measures for companies considering outsourcing
Companies deciding to outsource can take the following steps to ensure that they manage the tightrope walk between ethics and outsourcing –

Proactive employee management: Companies that decide to cutback or outsource jobs need to take several proactive measures to make the transition as easy as possible for affected employees:

  1. Being open and communicative about the decision to outsource.
  2. Planning the outsourcing strategy well in advance.
  3. Giving the affected employees early notice so that they have enough time to find replacement work.
  4. Providing a “safety net” for employees who are losing jobs.
  5. Working out severance packages.
  6. Devise opportunities for retraining and transfer of employees into alternative roles
  7. Alternative recruitment and placement assistance

Detailed vendor research: Companies wanting to outsource should make a thorough inquiry into the track record of the vendor, network and infrastructure security systems in place, security awareness of employees, safety of electronic data storage etc. A detailed investigation of the vendor’s past projects, technical competencies etc. should also be made.
Audit of vendor operations: Outsourcers should impose stringent standards on the offshore vendors and conduct intermittent audits on the work conditions, HR policies and environmental practices of the vendor company.
Sub-standard wages should not be paid under any circumstances: Outsourcing should be done in a way that doesn’t involve sub-standard wages. The minimum wage in the country where the work is outsourced should be taken as a guideline. Not paying a decent wage for work completed falls under the category of unethical outsourcing.
Imagine the employee working at the same table: The working conditions at the vendor premises should be just and humane and which are as per the normal requirements of the workers.
Treating the outsource provider as a partner: Efforts should be made to create a win-win working relationship or partnership, and one that is as transparent as possible. Take for example, the outsourcer who works in the domain of website creation or design, server administration and article content. There are outsourcing companies that will bid for jobs and then outsource the work to individuals who will work at lower rates. This happens as some individuals strive to put themselves in project management or managerial roles while others seek task-driven assignments. In this particular scenario, being transparent would involve saying: “We are getting paid this much per website or article. We will pay you this percentage of our share to do the actual work”. A side benefit of creating a genuine win-win working relationship is that typically it requires less managerial control.
Being an advocate for the outsource provider: A good employer acts as an advocate for his or her employees, and helps them evolve. One way to act as an advocate for the outsource provider is to promote their services on the company website or to refer work to them. Another is to offer, where appropriate, to help the provider profile himself or herself better so that they can charge a higher hourly rate with their other clients.
Asking: “Is there anything that should bother me about my outsourcing practices?”
Ultimately it all comes down to a simple question of conscience.

My Views & Opinion

Throughout history, it has been popular for employers to lower their costs by seeking cheaper sources of labor. The desire for cheap labor is driven by profit motive. By decreasing costs, companies hope to reduce prices and increase profits. One recent trend is to export jobs to countries where salaries are lower. In the past, outsourced jobs have usually been unskilled jobs in routine IT functions like medical transcriptions, payment processing etc. and in manufacturing. However, “safe” jobs in engineering and health care are also now being shipped overseas. Nowadays, even wombs of ladies in the developing countries are being hired for giving births to children of rich couples in the developed countries.

A question that is very pertinent now is whether it is ethical to outsource jobs, and, if so, what are a company’s responsibilities when doing so? In general, companies exist to yield profits for entrepreneurs and investors. As a result, there is significant pressure on management to increase productivity and profits. Usually, this is a good thing. Capitalism is so successful because it strongly rewards the best business models and the hardest workers. However, these forces can lead a company to implement shady business practices to get ahead of the competition like employing child labor and using environmentally unsafe processes.

I feel that outsourcing is not necessarily unethical, nor is it unavoidable. After all, international business has opened huge markets for the products of developed countries and has provided customers with new and cheaper goods. With advancements in shipping and telecommunications, it is easier now than ever before to sell products and services across the globe. Simultaneously, these very factors have led to increased competition. The companies of the developed countries have to compete against businesses in regions where operating and labor costs vary greatly. Outsourcing has the benefit of providing jobs to people in regions that may be poor or lack opportunities for economic growth.

Outsourcing will undoubtedly remain to be a natural part of business today. If the developed world feels that it can refrain itself from outsourcing, it will be a big mistake as this would lead to increase in costs of most of the goods and services, ultimately leading to a deterioration in the quality of life of the people there.

Most economics textbooks reference the theory of comparative advantage, developed by David Ricardo at the turn of the 19th century. It means that nations benefit from free trade when they focus on producing the goods and services they can produce more easily and cost-effectively than other nations. Wise nations purchase the goods and services difficult for them to produce from nations who can sell them for less.

Thomas Siems of the Research Department of the Federal Reserve Bank of Dallas said in a 2003 article, “International trade generates higher overall output by redirecting jobs to those who create the most added value, that is, to those who maximize their productive abilities. Put simply, the benefits of free trade can be summarized as: ‘Do what you do best. Trade for the rest.’”

Outsourcing is here to stay and the statements of some of the leading lights of the corporate world corroborate this.

There is no job that is America’s God-given right anymore — Carly Fiorina, Ex CEO, Hewlett Packard

As CEO of Intel, my allegiance is to the shareholders of Intel and to the success of the company. We go after the most cost-effective resources around the world, no matter where they are. — Craig Barrett, Ex CEO, Intel

A moot point is regarding the employees who have been with the company for many years and who now no longer have work? How could it possibly be ethical to unexpectedly fire these people and hand out their jobs? I feel that such unexpected firing is unethical by today’s standards. It should be the attempt to pursue the best possible outcome for employees within the framework of outsourcing. An important factor would be open, honest communication and good planning.

Decisions to cutback or outsource jobs should be made long in advance so that employees have time to find replacement work. All employees should know what they can expect from their severance packages and how long they have left with the company. The firm should reasonably attempt to help its employees. For the best employees, this may translate into a promotion or extra responsibilities. Others may be given the opportunity to relocate within the company or become managers or lead engineers at the foreign site. But, this is not a feasible solution for every employee.

The companies still have an ethical responsibility to its laid-off employees. They may have anticipated a steady income from the company and perhaps a retirement package. Now, they must start over at a new company, which could push back their retirement and reduce their salary and benefits. As such, the severance package should be commensurate with the time spent at the company. Additionally, workshops on writing resumes, interviewing techniques, and job opportunities should be held to assist the employees in finding new jobs. It is the company’s obligation to minimize the impact of the outsourcing on its employees.

Outsourcing is and will remain to be common business practice.

Economist Thomas Friedman strongly encourages Americans to focus on the education and innovation necessary for success in the global marketplace. Outsourcing provides the opportunity for highly-skilled workers to focus on higher-skilled and better-paying tasks than they could have before. Skilled workers as whole have more to gain than they do to lose when it comes to outsourcing. Those in danger, however, are low-skilled workers who choose not to grow and upgrade their skill sets. “…while protectionism would be counter-productive, a policy of free trade, while necessary, is not enough by itself,” Friedman said in his highly-publicized book, “The World is Flat”. “It must be accompanied by a focused domestic strategy aimed at upgrading the education of every American, so that he or she will be able to compete for the new jobs in the flat world.

Some other concerns like data privacy, confidentiality and security at the vendor’s premises should be ensured. The issues of copyright and ownership of intellectual property should be worked out and proper agreements signed with the vendors. The issues of child labor and environmentally safe processes should also be worked out beforehand. A very important aspect is regular monitoring and inspections of the premises of vendors.

One would wonder that it is only the big multinational companies are outsourcing, but wait, and watch the following video. It shows that individuals in United States are also outsourcing their work, which shows that outsourcing is only to grow.