Thursday, December 20, 2012

Branding pitfalls

So far we have looked at the psychology of job offer selection and how to gain advantage from that knowledge. I hope my thoughts back you up and give your more confident when approaching potential employees. But there are some pitfalls to watch out for too.

Wage war

The number is one of few objective things in the offer Tèo can rely on to imagine a bright future ahead, the rest is basically a leap of faith. So unless a company has a good reputation in the job market, matching the going rate is for the position is the first step to get the company to any shortlist.
A place in candiate's shortlist is good. However that is not enough to have a strong influence on his decision. In today's job market, companies want to stand out and make them the desirable destination for everyone (think about the power Google has in the software engineer world). However relying on the wage alone to become an outstanding talent magnet is highly risky at best and suicidal at worst. The move triggers an arm race among employers. A deep pocket grants you certain advantages in the race. But in the software industry, where talent is the most important resource of each company, other competitors will respond in kind if you pose a serious enough threat and just hope you burn out before they do. This is especially true when your competitors cannot afford to lose and have no option but to fight to death.

Expose key employees to competitors and recruiters.

Every successful tech companies spends its resources massively to build up a team of experts in its field of expertise. Not only this matters to company's products, it also has a psychological effect on potential employees. The investment provides a reassurance that the company knows what they are doing, with high quality. A chance to work with people on top of the technology stack is a compelling learning opportunities. It directly affects Tèo growth and reflects in his CV, both eventually lead him to a better career.
Don't forget to watch your back. When you are busy attracting the next generation of technical leads, your competitors might have already craven for your A team and started poaching. No-poaching agreement is quite common among key partners and alliance members. But in general, it is not possible to protect/shield/hide employees from recruiters. It will just be counterproductive to have policy restricting employees from doing their personal branding. Provide the right environment and they will stay. Happy employees are financially satisfied, professionally developed, and individually secured and respected.


Every employment goes through a stage where the candidate is sitting on the fence considering options and you need to sell the vacant. But bear in mind, never oversell. It is not like you shouldn't sell on the bright future the company is heading to, the potential of the market or how exciting the working environment is. When the company is being successful and adrenaline in blood is high, it is hard not to do so. And in fact, you should. You want everyone you interviewed to spread the gospel whether they join or not. But many companies in the effort of recruiting people are promising things they can't deliver, like benefit packages or revenue/growth exceeding what the company and its market are actually capable of.

Once people know the truth, they are frustrated, they feel cheated. they express this to others. Now you have gained one more problem. And it is never a good thing when a high-profile hire quits unexpectedly. It causes otherwise happy people to second guess.

So that's it. The last post in the company's perceived values psychology trio. Hope you enjoyed it.

Wednesday, December 12, 2012

Increase perceived values of a company

Last time, we talked about several factors that can affect the way Tèo - a well-trained software engineer - perceives a company's image and offer. In this post, we are looking into ways to increase perceived values.

Increase the wage objective value.

Perceived and objective values aren't identical, but they're still correlated. The offer-letter numbers are similar to the tip of an iceberg in many ways. Typically only one-ninth of the volume of an iceberg is above water yet it is the only visible factor to estimate the shape of the under water portion. The number is one of few objective things in the offer Tèo can rely on to imagine a bright future ahead, the rest is basically a leap of faith. So unless a company has a good reputation in the job market, matching the going rate is for the position is the first step to get the company to any shortlist.

Give the company a personality. 

There are a fair amount of profound articles, books and university programs on company culture and visual identity, I would make a fool of myself trying to cite these numerous theories that people have formed and practiced for centuries. However, I believe people in each profession have their own niches that are not so common to find, so do software engineers. When talking about a company, a normal engineer talks about offer, product and what kind of toys he is given. That's ok, that is a basic need of a human, just that it is superficial and can't tell anything about career growth in the coming years. A trait of a great engineer and contributor is showed via his genuine interest in deeper technical and organizational aspects such as process, field of expertise, type of projects, etc. Pitching on one of these field and promoting it in technical event the company takes place give it a bit of control on how people perceive the company.

37signals is not the best project management software shop in the world, but it has personality. The 37signals team stands for something: uncompromising simplicity. Other domestic examples are numerous: Greengar is specialized in mobile applications, East Agile etches its beloved management methodology into the name, Skunkworks is applying Silicon-Valley-approved product development in the heart of Saigon, etc... Ultimately, it comes down to differentiating the company, it almost doesn't matter on what, more or less anything will do.

Link the company with its top-notch team. 

Every successful tech companies spends its resources massively to build up a team of experts in its field of expertise. Not only this matters to company's products, it also has a psychological effect on potential employees. The investment provides a reassurance that the company knows what they are doing, with high quality. A chance to work with people on top of the technology stack is a compelling learning opportunities. It directly affects Tèo growth and reflects in his CV, both eventually lead him to a better career.

And really, if it is a job a tech rock star nods his head to, why bothers?
When companies are growing quickly and they are having a lot of impact, careers take care of themselves. And when companies aren’t growing quickly or their missions don’t matter as much, that’s when stagnation and politics come in. If you’re offered a seat on a rocket ship, don’t ask what seat. Just get on.

Read more:
Lot of expats in the team structure helps too! For international corps, this shows a strong connection between the company and head-quarters. For others, it is a demonstration of the budget (yes, that the company is not running out of business and Tèo and his friends are first targets for layoff) and an international vision the company is approaching. This is a growing pattern of globalization and Vietnam, certainly, is not outside of the circle. (1000% bias, but Tèo grew up in the middle of nowhere. To him foreigners is a sign post of civilization and advancement)

As mentioned in the last post, Vietnamese education is sadly years behind developed countries and the country is crying for capable people in STEM. Even a big corp can't just hire a team that it wants. And when that happens, talents need to be raised, for the most vivid sample, Intel cooperated with RMIT to grow its team.

There are many ways a company can raise its tech team, but none of them is cheap.
"Quality is free, when you pay dearly for it" - Peopleware
Local companies are catching up with the trend in Silicon Valley by striving for an environment where every effort to master the technologies stack and get more productive is appreciated explicitly. In Cogini, we have been organizing weekly TechTalks where everyone is given chances to share about basically whatever they find interesting. Put it another way, it is like our weekly BarCamp. Leveraging that spirit, in the coming time we are having compulsory research hours and hack days, times when engineers can be completely creative, free from the constraints of their normal jobs. These research and sharing are endless source of blog posts, tweets and status updates - the first step to promote the team to the outer world. We are also sending engineers to conferences so that they can keep their skills up to date (we went to BarcampPP a few months ago). Allow engineers to buy books that contribute to their knowledge on the company’s dime. Permit engineers to express their ideas about the projects they’re working on.

Create a tribe. 

A tribe that links itself to the personality the company is building. This is an advanced form of #2 and #3. Like company's culture, the tribe needs time to grow and everyone participates to controlling - not just individuals. But once it is formed, the tribe is the driving force behind every success of the company. I was taught a classic example of this, the IBM's Black Team when I was in the Software Testing class of Mr. Quang Tran. If you haven't known about the "nefarious" team, take some time to read it. Please, I'll wait.

IBM was delighted about the team, as every defects they found was one that customers didn't. And their colleagues outside the team were jealous at the apparent fun they were having. And others too.

So far we have looked at some humble opinions of the silly me about talents acquisition in Vietnam. Hopefully, you have got some ideas of how job market works here. But there are some pitfalls to watch out for. Stay tuned. Check it out

Sunday, November 25, 2012

Perceived value of a company

"Hiring is the most important decision a manager can make"
That is if you can attract enough people to interview, filter and finally hire. When the number of CV you receive doesn't even meeting the number of vacancies you are having, your decision is highly constrained.

Now that I have set foot in the software industry of Vietnam for a while, I learned a couple of things. The job market in Vietnam is abundant in quantity yet desperately low in quality. The situation keep improving over the years with the coming waves of overseas students and local international colleges. But that hardly meets the thirst of this growing country (for many years, Vietnam has been one of the countries with highest growth rate). Despite of this huge demand on high quality workforce, a majority of college programs is sticking with impractical knowledge. The sad fact turns the middle to senior job market in Vietnam really really competitive. Big corps and small startups, both local and multinational, are drawing from a small talent pool and there are obviously not enough fishes for everyone.

Companies of all sizes are positioning themselves different to take advantage in the head hunting game. Hilariously, the ones who are winning the game are the preys, the talented engineers. With an overflowed number of offers and a few mainstream technologies choices that ensure the engineers to be useful in any firm (iOS, Android, Django, RoR, etc..), how are they making their decisions is a very interesting topic. My view point as an engineer is different from that of a professional recruiter and might turn out to be entertaining.

The story of Tèo

Tèo is a well-trained software engineer that has been living in Ho Chi Minh for the last few years. He was an active student that won several merit awards and found a club for hobbyists in his school of computer science. He is the new generation of Vietnamese that every recruiter loves. An hour of Tèo drawing class diagram and slamming the keyboard with customer worths $10. That means Tèo should nod his head at an $3200/month offer, assuming he generates value to the company for every hour he works.

Of course that assumes that Tèo is a rational, decision-making machine that economists love. In fact, Tèo is flesh-and-blood irrational human being who doesn't price his time and calculate the costs and benefits. He has a perceived value of an offer which may or may not be linked to its objective value.

The perceived value of an offer may be higher than its objective-value. Just look at how many people want to be a Apple genius in comparison with the wage. But the perceived can also be lower than its objective value. MailChimp is a successful company and can make good offer, but worried that its PHP developer is not as appealing to others as it actually is.

Back to Tèo, if a recruiter wants to get his nod, then changing the offer is an option, but she can also change his perception.

How people set their perceptions

For a start, it is extremely hard for them to do so in a vacuum. Isolate a fresh grad from the rest of the world and ask him the offer he wants. If he somehow manages to find the question make sense in the situation, the answer is probably derived from his monthly expense during college years, not the value he can possibly generate for the company.

People base their perceived values on reference points. Whenever an offer arrives, Tèo is making sequence of subconscious and intuitional calculation that scans through what his friends are earning, a relative comparison of their capability and employment history.

Software industry of Vietnam is not so young that reference points are hard to find. The industry of Vietnam is pretty outsourcing-centric. Big outsourcing firms, the trend-setter a decade ago, have all stabilized and paychecks are standardized. These references are pretty well-known, like FPT with its own education system and Japan-centric business, VNG with the tendency to localize Chinese games or TMA, the popular first stop for all students from HCMUT. If a new company wants to break through the circle, there is a chance that it is triggering an arms race and the winning chance is equal for one with either deeper pocket or better local relationship. This is the minefield that no startup ever set its foot in for years.

That doesn't mean one needs to copy the reference point. If the company is genuinely positioned higher than its competitors in term of career development, growth potential, working environment or any other unmeasurable factor, a new reference point is set.

The value people perceive an offer to have can depend on their taste. By the time I was a student, I struggled with the question of being a small fish in a big pond or a big fish in a small pond. Some might like it this way, others like another. However, the tribe people belong to can affect their taste. It is not a surprise that there are so many startup and tech companies in Silicon Valley. There have been students coming to the area for un-related programs such as philosophy or geography and end up being engineer in a very ad-hoc way. They are essentially the same people, the changes were in the expectations and sense of value of those around them.

Knowledge is yet another factor influencing people choice. "An intense, self-motivated environment" might sound innovative and exciting to someone who spent a few years in a big bureaucratic corp. The same sentence sounds like extremely stressful workplace for team members of an unfortunate startup. Over the years I have found some other mismatches in wording and what actually happens.

"Our fast-paced company" - We have no time to train you. 
"Must have an eye for detail" - We have no quality assurance
"Good communication skills" - Management communicates, you listen, figure out what they want and do it

So many factors are getting between Tèo and his right employer. In this competitive market, how can one company stand out to catch Tèo attention while not being an attention ho? Stay tuned. Here are some inner thoughts

Wednesday, October 24, 2012

So I attended Barcamp PhnomPenh 2012

Barcamp Phnom Penh 2012 was organized in September. The blog post wasn't published until now because its owner was busy cranking the code and .. lazy for the rest of the time.

So I attended BarcampPhnomPenh 2012. The main purpose was simple because many dudes in my company made it last year but I didn't and it sounded like they had real fun there. The other purpose was to employ an Cambodian geek, because we are having a project with a major ISP of Cambodia and it is nice to have someone on-site. And in general, I always welcome diversity in my team.

A Vietnamese at Cambodia

My friends described their experience at the previous Barcamp as "just like celebrities". Cambodian loved to take photos with them and treated them really nice. From what we were taught about the Cambodian-Vietnamese war, starting from 25 December 1978, the communism government of Vietnam erased Khmer Rogue's Democratic Kampuchea. And as Khmer Rogue is described as such a rotten government, responsible for death of million Khmer citizens and the trials to judge its leaders occurred till a few years ago; the act of Vietnamese government seems to be a pretty good thing, doesn't it? Given that piece of historical knowledge, I found the nice treatment my friends received understandable. 

However the same treatment didn't happen to me :) It wasn't not nice, not at all, the Cambodian we met were friendly to us as to any random foreigners. Just that I was curious about the difference in my friends' description and my experience. After reading this article, I was glad that we were treated well as any other foreigners. Vietnam and Cambodia have a long lasting political relationship, and no matter how do I look at it, it is completely a  ugly mess. Under certain aspects, the relationship is similar to that between Vietnam and China. The idea of celebrity Vietnamese was erased from my mind shortly.

Meet local people, for real

The Facebook stream of the BarcampPP page was very lively. I took it as a reflection of a healthy community. Turned out, I was not really impressed by the quality of the people I met there, technically. I had two talks, one about advanced JavaScript, the other about entrepreneurship. Despite some tiny incidents such as the organizers misinterpreted the word "entrepreneur" and tried helping by changing it to "enterprise" or I had to load my slides using a 3G dongle, I think I did some good speeches and made the message clean. However, the developers attending the JS talk didn't know JavaScript. They seemed to be familiar with C/C++, pretty old-school and low level stuff. And they barely spoke, so no discussion was generated. The entrepreneurs in the second talk were a bit more talkative, but they were not really into sharing their thinking, ideas and resources. Somehow I had a feeling that few people there actually were carrying out their plan. Anyway, as there was a big language barrier, any judgment is hardly justified.

Another mismatch, not only at Barcamp PP but also Barcamp Saigon, is the expectation of the organizers and mine. I want to meet brilliant people and listen to astonishing speeches, learn from them and share the knowledge. The size doesn't matter, as long as good discussion can be found. But the organizers aimed at a large event, with thousands of people (it must be 1k+ attendants in the first day). Most were students, who didn't know many things nor know one thing well. And the sharing spirit was definitely lacking. It was more like lecturing (I'd not even call it educating because there were limited communication from the two sides).

A glare at Cambodia-Vietnam economy

Despite of its rapid growth in recent years, Cambodian economy is still relatively weak compared with most neighbouring countries. The shadow of uncontrolled inflation in the past is still haunting the country. Although Cambodia official currency is the Reil, the sign of dollarization is strong here. USD is used widely for all kind of transactions. Outside of Phnom Penh, VND and Baht are used at areas close to the border crossings.

A prospective and well-paid career in another country has always been interesting to me. At the very least, it is a great travelling experience. I had high hope that many other young Cambodian share the same idea. We placed our posters at the job board, and I had already had two talks (about technology and economy) but that didn't make a clean hit. Thinking that we could explicitly raise the interest of the attendants about a career in one of the most dynamic city in South East Asia, my colleagues presented the last talk of us in the event, "Job opportunities in Vietnam". Any nothing has ever surprised me like what happened there. Before any talk was made, few people showed up in the room, and 70% of them are expats living in both Cambodia and Vietnam. It wasn't because of the bad speech, nor useless information, the people just actually had little interest in working in Vietnam. And at that point, perhaps you might also have realized, all my expectations at the beginning of this trip failed desperately. 


There is no conclusion. I am glad that I came to Cambodia. That gave me a chance to feel the country by my own senses rather than having my mind stuffed up with pre-judges and stereo-type thinking. I'm glad that once again I am reminded about how big the world is and how much left out there to learn.

Sunday, September 9, 2012

5 JavaScript Tips

I made this presentation for BarCamp Saigon 2012. It was an interesting experience from head to tail.

The slides were made the night before the event. That was the first time I made a presentation that rush. To many out there it is nothing special, but as an introvert and a clumsy speaker, I typically need longer period to prepare.

The speech was original meant to be made in English. Last minute change, there wasn't any foreigner in the room. My first technical presentation in Vietnamese ever :)


Tuesday, September 4, 2012

Remove bureaucracy, Embrace remote working

We don't want to be the norm

We have been embracing a dynamic working environment ever since there was only 4 of us, working in a small apartment. We refer to everything that prevents our developers from being productive and living the life they want as bureaucracy. It is dogmatic, I know, but the attitude keeps us alerted, always looking for ways to improve the environment and eliminate boredom.

The latest issue we try to tackle transparently and systematically is a remote working policy for staff. It is not like remote working is new at Cogini or in Vietnam. . Young and reckless, we believed in a culture step-change, affecting staff and businesses, as work increasingly became something we do, rather than a place that we go. The benefits from this decision are various, ranging from improved staff engagement, talent attraction, boosted productivity and a better work/life balances for employees.

The challenge we face after more than a year applying remote working into professional workplace is the growing mismatch in expectation and communication between board of management and employees. Working under pressure, there were urges to abandon remote working, bring things to a tighter control. But that is just a sight a weak management and we know we can be better than that. What we need, in this particular situation, wasn't tighter management and more processes. We need a clear understanding between staff and management on what, why and how of remote working. We made this guideline to express the concern we are having, practices we are doing and nonetheless, set the ground for further improvement.

The Guideline

Is remote working suitable for you?

Newbie developers, or competent developers who are phoning it in, are absolutely not going to have the moxie necessary to get things done remotely. It isn't all about technical skills though. Those who are sanctioned to work remotely by management are the employees with an appropriate skill set such as punctuality and good time management and organizational skills. Under any circumstances, you will be asked to to move back to the office if your colleagues or direct manager feel like the productivity and project progress is compromised because of your absence.

Stay connected, Stay motivated

Remote workers often suffer feelings of isolation. Some feel that they miss out on informal organizational discussion and have a poorer understanding of the office and project context. Try to bring yourself to on-site events whenever possible. If you are within the city, come to the office at least once a week. Try to combine it with some formal activities such as Project Review Meetings, TechTalks or Retrospective Meetings to make your time and communication worthy.

Because remote workers are not actually physically in the workplace, and therefore 'seen to be at work', there is a crucial need to make yourself accessible during your working hours and let people know what you are up to. Define a time frame as your 'office hours' and commit to be accessible during that. Update your status whether it is a general one or project specific for every day that you work remotely.

Despite that, remote workers do have to be able to motivate themselves to work independently and with less supervision. If you find this difficult and miss the direction you have previously received from face-to-face contact, remove working is going to be rough.

Don't write angry

When you work in the same room as people, misunderstandings can be quickly cleared up. In contrast, remote workers tend to spend most of their time communicating via the written word that can be easily misinterpreted from afar. If you are worked up about something - angry, confused, frustrated, etc - try not to vent your frustration in writing. Instead take a moment to voice or video chat with your team to discuss the situation. Make sure your work place is fully equipped and quiet enough for Skype calls.

Build your own office

Whether you are working from home or heading to your favorite coffee shop, you need to put some real thought into your work environment. Of course remote working offers better control over the working environment and you shouldn't lose a chance on getting nice furniture, natural light and bunch of other gadgets to make the station comfortable and convenient. But there are some benefits of working in an office that people often fail to notice and therefore can't reproduce for their remote working station.
  • Right working environment to eliminate sources of distraction (TV, Game consoles, Kitchen, etc..)
  • The office routine separates your work life from your personal life. 
When you fail to give your body proper breaks, it gets tired pretty quick and drags your productivity down. Many fuse their personal time with working time. Soon they find themselves exhausted and productivity is dropped. And even though they are in the illusion that they are working for longer hours, they in fact just get tired sooner. Well defined working schedule and working station give you physical and mental breaks, which is essential for the next productive working day.

Tuesday, July 17, 2012

RMIT Career Week 2012 - IT & Entrepreneur

Below are the slide and text of the presentation about IT and Entrepreneur I delivered during the Career Week of RMIT 2012. Enjoy.

Who I am and why I am qualified to talk about entrepreneurship.

First and foremost, I am an RMIT alumnus. During the time at RMIT, I founded of the IT Club. Together with my team, we were building a platform to facilitate professional and personal development of our fellow students. I am also among the first organizers of MultiUni, an NPO aiming at turning the community into a university with high quality and free courses. In 2010, I was the first IT student of RMIT Vietnam to have his internship overseas. Being the first had some problems with it, but the experience and knowledge I gained was a blast. Every hardship and difficulties was worth it. Back to Vietnam, at the age of 21, I established Cogini Vietnam, the main R&D center of the company in Asia. I have experienced different working environment, namely Taiwan, Singapore and Dung Quat industrial zone. I have got precious opportunities of working with gifted entrepreneurs from all over the world and contributes an essential part to their successful startups. 

It is quite obvious that my profile is no where as profound as any of the professors you are having and my achievement in the industry is minuscular. But I enjoy what I have been through in the world of entrepreneurship and I believe that "Finding joy in the journey is more important that reaching your destination". I hope my experience will be entertaining.

Who is an entrepreneur?

Now we are here, talking about IT and Entrepreneur, but what does it actually means by "entrepreneurship", how to be classified as an "entrepreneur"? The definitions on the internet are countless.

Some are funny.
"My son is now an 'entrepreneur'. That's what you're called when you don't have a job." - Ted Turner

Some are inspiring.
"The entrepreneur always searches for change, responds to it, and exploits it as an opportunity." - Peter Drucker

And this is my favorite
"Be nice to nerds. Chances are you'll end up working for one." - Bill Gates

Before we proceed, lets try to agree upon what "entrepreneur" we are talking about. Later in life, each of us will develop a different definition of entrepreneur. But only for today, lets try to reach an agreement. Although the word entrepreneur and the meaning it conveys are very motivating and inspiring, I believe it is the most overused and misused word in this century. When I was a kid, I never heard of such word. The closest synonyms that I could possibly find are "businessman", "businesswoman". But nowadays, you have a side project, your are so entrepreneurial; you open a shop, you must be a entrepreneur then. 

There are many creative creators out there. In the tech world, they are usually hackers who create applications with little or no idea how will they make money from that. They don't even need that. They do it just because it is satisfying for them to do so. And there are small business owner, too. There is a high risk in running a business, but that doesn't necessarily require any brilliant ideas nor create any new value for the world. An entrepreneur, in my opinion, is one with great idea and know how to turn that into a business with thorough vision, foresight and understanding of the market. The entrepreneur is a visionary executor. The creator and business people are necessary support, but not required. Based on that definition, further down the talk I will be focusing on realizing the vision, rather than how to create a product or how to run a business.

What does it takes to be an entrepreneur?

Even though market factors can affect the success and the scope of your business, they have little to do with entrepreneurial spirit. Some tend to complain a whole lot about it, that the local users are so conservative, that the lack of infrastructure prevents the business growth or most frequently the market is not ready for this idea. Well, bullshit. Vietname actually has a very strong potential for ICT development. The country is one of the countries with highest number of mobile and Internet users. The population is young and adopt quickly to new products, just look at how they pick up Facebook and groupon. And did you know that Vietnamese users are the most skillful one when it comes to DNS config? And if that is not convincing enough, there is always the rest of the world. I agree that there are a lot to do with the infrastructure of the country, but that should be considered an opportunity, not a barrier. Clickmedix is one of our joint product. Clickmedix is a healthcare service for rural areas. It in fact applies the advantages of technologies to overcome the lack of infrastructure in rural areas all over the world, to bring modern healthcare to more patients. Last week, Clickmedix won the Recommendation Award from World Bank.

Now that we have excluded most negative external factors, what does it take to be an entrepreneur? I think the two most dominants one are an idea and some love.

An idea that is suitable for a startup is one that tackles an existing yet-not-satisfied need of users and provide it elegantly and profitably. 

When I was a kid, everything that I needed was provided, I didn't have to go seeking for it. So I used to think of a good idea as something very rare, hard to perceived, "beyond the reach". But the more I experienced, the more I realized how wrong I was. The needs of human beings turn out to be quite basic: get stuff done, make them laugh, stay connected, fill downtime, etc… 

The initial idea for your business should be big and bold. Be expansive in how you think about its features, the target users, the opportunities to set it apart from the rest. Let crazy ideas roll. Fill the drawing board with your wildest ideas. Don't set any constraint or limit on you, other people will do that for you, there is no point of doing so for yourself.

However, no matter how good an idea is, it cannot be a cow cash. Why? It is just a thought, it is valueless. To realize an idea, you need to build a product. And it is the time you need to kill your darlings, your wild and beloved ideas. I call it "survival of the fittest". You are not just building a product, you need to build a good one that people will know about it, use it and even better, recommend it to others; and build it fast. Hence, there is no room for nice-to-have features. Every feature surviving the slaughter must be a must-have one. 

Eventually that leads you to a bigger picture. You need a business model. Anyone here can tell me what is a business model? In short, a business model defines the way you operate your business. But I have this brilliant idea, it is all in my mind, I don't need this form of "documentation". Documentation sucks, lets just roll it out. That was exactly what did I think whenever I wrote a proposal. But listen, you can't run a business all alone, you need a means of communication that you can share and inspire others. Furthermore, entrepreneurs are typically hopelessly optimistic. They tend to underestimate the complication of little details. There might be a hidden risk some where in the plan, writing it down, think about it while you are writing, is the first round of fail filtering.

I usually refer to "the canvas" from Business Model Generation as a standard form of business model. It is illustrative, detail enough to understand the business yet general enough to leave room for idea to flower. And believe me, many investors love it too.

The second factor that matters on the path of an entrepreneur is love. 

Or to put it more accurately, love, fear and the dots of life. Let me tell you my journey. My adventure started from the day I entered RMIT, became a part of its young and talented students, like all of you down there. Here, right in the campus, I met amazing people, friends of my life. One of them, I can never forget. He is Le Ba Huy. Huy came from Silicon Valley, the heart of the IT world. I was blessed to have Huy be my lecturer in my very first semester. Huy was a very inspiring lecturer, his lectures were filled with excitement and brilliant ideas. He then was my first employer, mentor and friend. 

Under Huy's guidance, I proceeded to teach myself iOS programming. The topic was smoking hot as the app store first came out. Developers were provided a whole new era to explore, the post-PC era. There was not lot of resources back in the day, the sample code from Apple was barely enough for Hello World programs. To improve our competencies, we started to pick up freelance projects and initialize in-house projects. Balancing 4 courses at school and intensive iOS programming was hard. But sweet Jesus, those days were so exciting, inspiring and wild. Pizza & coke in the room, computers on 24/7 and hands moving non-stop on keyboard, we discussed, we hacked, we created products that never existed before, felt like we were having the world in our hands. Those days was incredible.

And I thought that that was it, my hands were full and I couldn't take anything else. But no. In the world on entrepreneurs, good enough is never enough. We decided to share our knowledge, meet more amazing people out there. We organized MultiUni, a innovative form of university, driven by the community. I went panic with all of my group assignments, almost failed an elective course, but screw that, during one year, I had met more awesome people than I ever had in my life.

After the success of MultiUni, I was convinced that there were always room for improvement in conventional education system. The need of IT students to have a more active learning environment besides the classes was undeniable. Therefore we established the IT club, promoting an active student-centered learning environment.

Besides iOS, I had no hope for a practical application in my life from doing these thing. I did them because they were fun. And I love it, I am satisfied just by doing what I love. But gradually, in my life, somehow, all the dots are ultimately connected together. Working in the IT club gave me chances to meet various professors in my program. Fortunately, one of the professors acknowledged my ability and arrange me an internship overseas. That was a amazing.

Back to Vietnam, I established Cogini Vietnam. It was challenging, given that my major has always been software engineering. But the experience and relationship I developed during the time at MultiUni and IT Club was the real deal. Guess what, the first four staff of Cogini Vietnam, including me, were the management board of the IT Club. Running a company has lot of pressure, it is real money and business we are handling there, not assignments. But in the nutshell, I found that it is similar to running the club back there. How fortunate.

None of these I would have achieved if I wasn't given the opportunity to do what I love. How important it is to do what you love? Once you set you footstep in the software industry, you would have recognized that you have to keep learning new thing everyday, at school, at home, after graduation, just to keep on pace with the rest of the world. The moment you stop learning new thing, is the moment you are left behind. To work sustainably, you need to work 40 hours a week and enjoy your life. I think it is the biggest lie among the entrepreneurs that I have ever heard. The entrepreneurs that I work with, they don't sleep. Because if there is anything for those who wait, that must be what left behind by those who hustle. And where is all this energy comes from. Little money, glory, fame, what are you doing, you are doing that for your love itself, for the challenge, for the thrill of discovery.

How to find what do you love? I don't know, I am not you. But if you don't know what you love (except the money and fame) you are probably thinking of entrepreneurship like a fashion trend, not an achievement in your life. But I never found anyone succeed doing entrepreneur half-hearted. You have to put your heart into this. If you haven't got the answer, perhaps it is not the right time for you to start up yet.

Whatever you are doing. Failure is an option, but fear is not. No innovation in life has been achieved without risk, you have to be willingly to take those risks. Many people hesitate to work on something they aren’t familiar with because they are afraid of the unknown. But just do it. Explore new ideas. Experiment with new things. If you are successful, the reward could be huge. Even if you aren’t, you will still come out better than before.

What does it take to execute your ideas. 

It is said that idea is cheap, what is important is the execution. I do not entirely agree with the statement. But it is true that not all entrepreneurs succeed in implementing their ideas. And it is how you operate the business that makes the difference. Any startups have to deal with issues that I found suitable to be grouped into these 4 groups.
  • The Product
  • The Team
  • Financial Issues
  • Legal Issues

I covered pretty much all about the product previously so I won't repeat myself here. But did you know that many startups get acquired or receive invest because of its awesome team rather than the idea? 

I would like to divide a team into two parts: the founders and the members. Founders are one who join the startup from the very first day and own a part of it. Choose a founder as wisely and carefully as choosing your life partner. A good founder is the one who can help you shape up the business and place the product above the relationship with you. That is harsh, but that harshness is necessary for a good product. That's why it is very risky to invite your high-school or college friends to be your co-founders. Do it right, and you gonna have the sweetest time in your life. But do it wrong and you lose a friend for good. Founders in a team also need to possess supportive skills that by working together they bring the harmony to the team. I usually refer to this as the three hats rule: Developer, Designer and Business People. Find your place and look for co-founder that can compensate what you are lack of.

Members are those who got hired to facilitate the business development. There are many sources of talents in Vietnam: universities, enterprise staff that are looking for a new breeze in their career, or right from your competitors. Wherever you are looking for talents, I suggest embracing diversity and welcoming new schools of thought in your team. There was time where 100% staff of Cogini was RMIT. At first, it was fun, we understood and work with each other pretty well. But at some point thing started to get boring because we were too alike. But the situation changed dramatically when we brought in the first non-RMIT member. He was superb. Not only that he fit well in the team, he also compensated what we were lack of, offered us the new school of thought that hadn't been found among RMIT members. Yes, talented team members are great, but how can I find them? It depends on the company's strategy though. Some where in the early state, Cogini looked for its staff with the assistant of mass media. It turned out to be highly unproductive. We received a huge number of CV, spent many hours interviewing but hardly found any outstanding applicants. We then changed the strategy to actively seek for the talent ourselves, with the support of the word of mouth network. It has been quite good so far, the quantity of applicants greatly reduced and the quality hooped up. But Cogini business is software development, we look for genius developers. If you are working on one of those enterprise solution like Java or .Net and need a lot of monkey coders, hand picking might not be efficient.

And a team always requires an environment to develop. And this is crucial, it is the team culture, all its dynamic nature, motivation, inspiration, that sets you apart from others and attract talent. Like a bonsai, team culture need caring from the very first day. I am lucky because I was given the authority to shape up the culture of the company, and from that experiment different methodologies in management. And here is what I have learned: be like water. Like water hitting rock, don't expect immediate effects from your changes or new policy. Embrace what the team is having and slowly yet firmly change it into the direction you want. Once everything is in the right flow, rewarding the team for the good job and maintain the flow, it will help the new comers get into shape quickly. 

A good working environment is also what talented employees are concerned about. Enterprises and well-established companies possess very professional working environment, back up by their strong flow of venue. If you want to provide a better working environment in term of facility, you gonna have a bad time. But that doesn't put you in the disadvantaged position. This is an area where your creativity can shine to make the company unique, unlike enterprises which have multiple layer of policy, regulation and are considerably slow when it comes to changes.

Financial Issue

Every startup needs survives till they receive the first round of investment or make the first sale. In other word, startup founders are on their own till the prototype of the product is formed. 

Unlike many other industries, the financial barrier for hardware and facilities in software development is relatively low. In fact it is too easy to equip a software engineer that almost any coffee shop in this city would do. Founders are not very likely to received salary for the work as they own the business. And with all the amount of adrenaline running in their blood, they can literally live on bread and roses. 

But eventually you need more people to help you accelerate the development speed and soon you will find out that  this entrepreneur game is an expensive one. You need money to pay for these people and pay them generously if you want to keep the good ones. 

Most startups in Vietnam I have been talking to depend on either self-fund or friends and family investment or both at this stage. One more support that is very popular in countries with strong startup screen is Business Incubator program. Typically you will be provided an office with basic infrastructure such as furniture and internet connection. This usually take places in a warehouse or university campus. Besides that, the organizers behind the program are usually high-profile investors who can provide you various help. Last but not least, the chance to work with other hot startups is very compelling on its own already. Soon this model is becoming the next trend in Vietnam startup screen. 

When you finally manage to reach to the next stage, a prototype of the product, you will be able to aim at higher targets: angel investors and venture capitals. It is both a bless and a curse to work with these investors. On one hand, they will be able to help you tremendously, thank to their investment, experience and network. On the other hand, your company might easily become their property. Remember what happened with Steve Jobs in 1985? Got fired from his own company.

Legal Issue

This issue is ignored by a lot of entrepreneurs. Cogini Vietnam had been operating for 8 months by the time it acquired its legal status. I am not the best person around to talk about legal factor in Vietnam economy, but from my point of view, it is only matter when you have grown to a certain size and start to go public. Prior to that, no one even know if you can make it that far or not, so why wasting your time for these paperwork? On the other hand, I acknowledge the importance of a proper legal status, it is just not your duty as a business owner to the government, but also to protect yourself from other competitors.

That's pretty much it. Thank you for the listening. Drop me a line if you find the world of entrepreneurship interesting.

Wednesday, July 4, 2012

HTML5 Video with Safari

I worked with HTML5 video today. Though it was not continuous, I have been working with HTML5 video tag all the way back to 2010. In the heyday, I customized the skin and added more functions to one of the most popular HTML5 video player, videojs for Adonit. I thought I knew HTML5 video, its pros and cons. While the advantages of using the video tag haven't changed much through the years, I probably never fully understand how twisted it is.

I was working with this piece of HTML earlier today, which at the first look, was quite normal.

There was a problem with the video though. It was playing on Chrome and Firefox but not on Safari. That was a little surprise as work on Chrome usually means work on Safari and other webkit-based browsers. Soon after the surprise, an intuitive unpleasant feeling took over my mind. "What the **** went wrong with the encoding again?" was my first thought. But as both Chrome and Firefox were working, it meant my ogg and mp4 sources were fine (and actually after days of bloody testing, I was pretty sure that I got my encoding options for ffmpeg right).

The error might be another wicked behavior of Safari. But that was actually a sad news. First, Safari doesn't have many great developer tools, except the webkit's inspector. Second, when you get your encoding wrong, the video simply refuses to play. No error message is thrown. After exploring a fair amount of ffmpeg options, I never excluded the possibility that Safari requires a different encoding than Chrome.

I thought I was screwed, but wait, Adonit video has always been working, on all kind of browsers. Looking at the old code, besides the hooks for videojs, the only difference I could spot out was

The source tags had the type attribute there, my new one didn't. I was a bit skeptical about that hypothesis due to the fact that type had been quite a useless attribute to me. You are not going to find any type in my script tag, because it is purely useless. And in fact, Chrome and Firefox did not complain about that at all. Anyway, I opened the network tab in the inspector to confirm the hypothesis. Surprisingly, Safari was downloading the .ogg video, not .mp4 as expected! Excited with this behavior of Safari, I extended my experiment by switching the position of source tags.

Hooray, the video was playing! My guess was right, when no type is specified, Safari will grab the first source it finds. Reversed the source tabs to the original position, added the type attribute and the myth of Safari video was solved.

When I was young and naive, I believed HTML5 video is definitely the future of video. I still believe though, just that I also have learned that HTML5 still has a long way to go. Anyway, THAT small discovery made my day.

Sunday, July 1, 2012

The journey to an ideal billing option

General speaking, there are two types of billing we are using for our contract work: fixed price and Time and Materials (T&M). Fixed price contract is just like it sounds. Meanwhile a T&M project is similar to being an hourly employee, payment is made based on a set rate for the actual hours that you worked. Each of which has its own pros and cons and articles about that can be found at mostly every corner of the internet, as it turns out that this is a norm in consulting work in other industries too. What got my attention recently is how my ideal billing type has been changing through out the years.

When I was younger, having my first full-time internship, I was always fond of fixed-price projects. Why? It had always given me much less blocker doing thing that way. A project back then wasn't much different from a school assignment. The project requirements were given to me sometimes in a nicely formatted spec, sometimes a Redmine ticket or sometimes just a mockup. The only thing I needed to care was to finish the requirements in time. No one told me whether the project went through four rounds of development and lost us a bunch of money nor did I care about. I got my work done, and that was it. The simplicity made me happy.

Given that I am an untidy person, T&M projects, on the other hand, weren't that fun. I had to keep track of my time, and as I jumped between tasks and my Chinese classes, the little chore turned into a burden. The question "did I turn on/off my timer" kept running through my mind just about when I need some concentration. And even when I managed to get my task done, I needed to mind the time I spent on the task as well. Usually, I missed the estimate made by my PM. Even though this was expected (yo, I was an intern) and we "deal" with it by billing 50-75% of my time only, it still somehow left me a guilty feeling. Needless to say, in the early years of my career, fixed bid was the preferred option.

Further down the road, I gradually took more managerial work and the amount hasn't stopped increasing so far. The fixed bid that I used to love started to haunt me back. I soon learned that fixed bid contract is all about fortune telling and my team efficiency.

In order to make a reliable fixed bid without massively increasing the estimate, I have started to develop weird hypothesis about what would happen during the development process and truly wish for the ability to tell future like Nicolas Cage in Next. Ok, I accelerated thing a bit here. In practice, I make THREE versions of quote, each for ideal, normal and worst case scenarios. This all sounded insane at the first time I was asked to perform by my boss. Soon, though, I realize that engineers are optimistic and idealize most of the misty parts during estimating (hence worst case scenarios quote for the rescue). Yet, there are parts that are hard to predict anyhow, like the learning curve of a newbie, time to set up dev and prod environments for non-standard products, and deployment time. No matter how you look at it, it is definitely more work, boring work : (

And with all of that burden, I am not even making the estimate for myself, I am making it for my team. Which requires thorough understanding about the team and trust that they will do it in the right manner. If we are efficient at doing the work, we make money, or else an even or a lost. Efficiency of a person inevitably relies on one's emotion, the amount of work and morale. That complicated nature making the effort to jell a team just as challenging, if not more, as telling the future.

T&M billing option now proves to be useful for me, as an PM. I can really focus on getting the job done, rest assure that I will be paid for what I have done. Try stepping into customer's shoes, I also find T&M is more valuable for them, given that the consultant they are working with is ethical and trust-worthy. Terralien illustrate the point beautifully using the house building metaphor.
a fixed price agreement will almost always cost more and give you less than you need.
It has been pretty fun looking at the past and noting it down here. I am not sure how would my point of view change in the next few years but unarguably, this is one of the challenges whose answers define the shape of the company and set it apart from other norms. So I am pretty eagerly looking for next challenges here : )

Friday, June 22, 2012

Get started in Cogini Team

There are three things that are important in general:

Ask: If a task is not clear, or more information is needed, please ask as soon
as possible. Asking is always ok. Doing the wrong thing (or doing nothing)
because you didn't ask is not ok.

Debrief: It's not "done" until you reported it done. This is often just a
one-sentence email to me or to the client, sometimes a "100%" mark in the task
list, or a ticket closed. It is done, completed or fixed only when whoever
needed it done knows about it.

Warn: If a deadline you know is important will likely be missed, warn me soon,
as the situation is evolving, and then we can usually figure something out. If
I have to learn at the moment of the deadline that it was missed, that's not
ok. If you are working on multiple projects with multiple project managers, or
if you're a freelancer, also warn me if your workload is above what you can
actually do, instead of not doing certain tasks.

Last but not least PRODUCTION SYSTEMS

When systems are in production, you need to be careful about what you do. 

It's easy to get in a habit during development of making bugs and fixing them,
but in production they can have real impact. So we need to have a review
and testing process for all releases to production. Test everything, even
simple typo fixes, as they can sometimes make a page give a parse error.  

In general, any bugs having to do with money can cause serious problems. 
And simply having the production site down for a few hours can result in
thousands of dollars of lost revenue.