Company culture

image

Culture is shapeless but defines a company as we know it. There is no better analogy than dark matter to the universe. It naturally evolves on a mission.  A mission that everyone in the company are fully aware and knows the leaders are committed to. It’s hard to define a culture w/o talking about mission. It’s usually a bi-product of a company mission. Please allow me to use Buddy as an example if I were to run it.

Mission
Help the customers to increase the returning rate
 
Now we have a mission that we know as a team we have to accomplish together. Anyone who suggests features that don’t related to the mission should be reminded. Even when it’s easy to come up with features INDIRECTLY help to accomplish the mission but when we inspect every potential feature on the table we can easily focus on those have more direct contribution to the mission. The helps the team to stay laser focused on the problem. From that it’s not a rocket science to know to say no to social features and focus on PoC of getting existing customers to come back more often. The team works on the items that will engage customers more effectively.
 
Goal
x number of customers with y number of returning rate by z number of days
 
From the mission we can now break it down to smaller goals and milestone, devise necessary steps to succeed, measures to take etc. This requires operation and management efforts to combine all the knowledge in the business unit. Enforced regular meetings to update status, critical issues and changes in the market. Anything that might jeopardize from achieving the goal shall be dealt swiftly. The leader should exhibit great care to the goal. She does so by pushing new thoughts, solutions, problems she sees in the product and team. She works together with the team closely. The goals can be examined, challenged but every change has to contribute the mission.
 
Culture
We are ruthless workers to fight our way toward our mission
 
Making the mission means something to every employees is hard and it’s best to start with the leaders. If a leader always says customers or users are idiots and don’t know how to navigate the product UI, the designer will make unusable product. If a leader insists on updates the software that might fuck up some customers the team will make DB upgrades that wipe out the old data. If a leader talks shit about her leader instead of solving the problem then the team will talks shit about her. If a leader doesn’t help other departments the frontend devs will complain how stupid the UI designer is instead of giving help. Now it’s time to list items about the culture for Buddy
  • Customer first
  • We are to help them, not to make money from them
  • We care about the product and give all we got for it. The leader should show it so the rest can follow.
  • In order to succeed the team members need to help each other. The mission is more important than anyone.
  • Company reward generously to goal achievers
  • Company has 0 tolerance to those prevent the team from accomplishing the mission

(Image from layoutsparks)

Leader qualities

Over the Chinese new year holiday we had a family reunion dinner. On the table many ideas were exchanged pertaining to the recent presidential election in Taiwan. One of the most heated debate topic is whether one of the candidate exhibited fear of losing the election in front followers, or his campaign co-workers, when the public poll indicated so.

Quite often we see people in the leader position showed various emotions such as anger, fear, excitement etc. Each emotion has it’s own profound influence to the the team and eventually set a culture the company. People follows their leader’s every move and through observation it they learn what’s acceptable and what’s not in the company. Here are some guidelines I personally follow:

  • Never show negative emotions. It’s okay being scared, nervous, frustrated, or angry but they are simply not appropriate in leader’s position. In the short term they might help the organization to get through some difficulty times but in the long term they will be imitated by everyone. If you are not mature enough to control your emotion maybe you shouldn’t be a leader.
  • Be positive and inspiring. Everyone wants to do a good job but not everyone knows how. In frustrating occasions it’s very important to help the team member to find positive ways to tackle the problem. Show them what to do that will improve the status quo, not being angry or upset about it. If a leader is constantly angry the employees will take it for granted and learn to be angry to others too. Eventually the environment will be extremely toxic.
  • Don’t be politically correct. A true leader has guts to say what he thinks is right and has the patience to explain it over and over again. When encountering disagreements it’s critical not to lose your cool, sometimes a debate is the best way to really think about things. But never use authority to dissolve a disagreement. Respect is earned not granted.
  • Treat other as you want to be treated. If you don’t want your leader to be constantly in fear or anger all the time maybe you shouldn’t be too.

This post covers many basic principles to be a good leader but in a practical level it is very hard to achieve. I’d emphasize this is a never ending progress and one will only get better through a lot of practices.

(Image from http://alfalasy.com/)

Be critical not cynical

Ridiculously transparent

We face the question of information transparency constantly in most occasions. This can happen in work, in personal life and sometimes we criticize others for making the wrong decision about revealing certain information the wrong group of people. The dilemma  and struggle of what to tell to what people is only obvious to who have faced it before. For a owner of a startup company this is particular hard because there is usually no set of policies established.

Here are some of the tips that will help you pertaining to transparency.

Organization goal

Absolutely communicate this with your team. Bring everyone on the same page is extremely critical to the performance. The worse type of management are those keep many secrets from its team and naively thinks developers don’t have insights to the business side. Rather I found out most of them are just lazy to explain things. Personally I cannot remember how many times my developers pointed out the mistakes I make as a manager and they were right. Give the team a chance to learn about what the organization is trying to achieve and answer their questions. This not only help you to refine the goal but also train the developers to think beyond their daily operation. As a result they will build a better product.

Company financial

The team deserves to know the current water level to put everything into perspective. Some management might think in bad situations this approach would cause a widespread panic among employees and they would be right. But try to realize the basic source of panic and fear is not knowing what to do. A experienced management doesn’t just pass the bad news and let everything slide. At the same time they will offer solutions and keep everyone work together to resolve bad situations. This should be a precious lesson the entire organization can learn together.

Recruitment plan

Another important aspect to the company goal is its recruitment plan. It suggests necessary workforce to achieve the goal. Try to share this with the team and encourage them to recommend talents in their circle to the company. The key for a startup success is to keep everyone not just feel involved, but actually participating in company operations. When the team feels they are working for their own company they are much more likely to go extra mile in the tasks given. A experienced management doesn’t want grunts,  they need good partners.

What’s to hide?

Your own negative opinion to anyone in the company. This includes peers, subordinates or managers. Instead of being a victim and whine about it you should take actions to make the situation better. Sometimes the feeling is so enormous that you think you need to tell somebody please do it outside of  the workplace. A good leader sets a right culture by taking actions, not complaining about things all the time.

(Image from http://marpr23.wordpress.com/2010/04/11/transparency-is-a-must-even-in-interviews/)

How does a great leader communicate

I’ve been meaning to write an article about different communication styles one would normally experience in a workplace, and how they can have profoundly different effects on the final outcome. Human being is extremely complicated so predicting the emotional response is almost impossible. Nonetheless there are still some very useful techniques:

Focus on the value

If someone did something that causes your any inconveniences. Don’t go and tell him about how he has victimized you. Instead try to stay neutral and let him know things would be much better if he has done it differently. It will be even more effective if you can show him how. This altruistic act would be perceived as you are offering so accepting will come effortless. I found out telling people about how he does certain things wrong almost always triggers negative emotional response. The result will be likely to be that he agrees with your point but at the same time he is reluctant to improve as that proves his mistake in the first place.

Be helpful

After you have communicated the value the next logical step is to tells him how. It’s important to see things from other people’s perspective especially when you want to change their behavior. Make a strategy that would solve the problem first before the communication starts. The key is to show you are on the same side.

Don’t be dogmatic

The purpose of communication is to understand each other’s point of view better. This is achieved by talking and listening. A leader might think it’s a waste of time to listen to what subordinates has to say but my experiences repeatedly showed otherwise. Every thing happens for a reason and sometimes for a good one. Listening will help you identify whether a mistake happened because of training, tool or the interview process. This knowledge will ultimately move the company to a better situation. At the end of day when you are a leader you only got yourself to blame.

These techniques are useful in pretty much all circumstances. Try to practice on this with your peer first so later when you start to lead you would have mastered this art already.

(Image from P Shanks, CC License)

When you have an idea

People who are interested in making a startup company are usually smart people. They tend to have ideas all the time, good ideas that solve some problems in the current market. The next step is typically try to attract people with the similar interest and vision to build a team toward the common goal. It all sounds reasonable but the funny thing is most of the time people are not willing to commit that much in the beginning. In the other words they are chickens rather than pigs

A reputable entrepreneur might pull that off effortlessly as he oozes leader’s charisma and backed by successful stories. Typically people would find it a  lot more comfortable to follow this type of leader instead of  someone who are new to the entrepreneurship world. Here are my suggestions:

Don’t Wait For the Others

I know it might not be easy to understand why we should hastily dive into the startup venture without validating how good an idea is. But the cruel fact is you will never know the full picture before you start. Market validation with hard numbers is nice if you are pitching to a VC because they are paying money out to you, and the ultimate goal is to get a lucrative return in the investment. They don’t care too much about what problem you are trying to solve as that’s only a mean to an end for them. However, this strategy will need to change if you are recruiting people because they care exceedingly about the problem you are solving. I find the more effective way is to have some prototype that explains your idea and its application to get some responses.

Show Confidence

A prototype (preferably a working one) worth a thousand words in showing how confident you are to your own idea. If you truly believe something is worth doing and the world is dying for a solution you would commit more than just talks. Finding something with that attributes is hard but it helps you and the team motivated in the long term.

What if I Can’t Code?

Find someone who can and pay them. The most important thing is to get things off the ground and how you do it isn’t that important. I’ve heard a founder with a legal background outsource his idea to an Indian developer just to get things started. If you think your idea truly rocks you would get out of your way to get it done ASAP. Also I found when recruiting, developers are drawn to a team that has a working prototype. Developers love to see the inner working of things just out of curiosity. That’s why they chose to be developers.

Don’t Try to Lead

I had spent months to understand leaders do not build followers intentionally. They just do what they think what is right and in time followers would come. If you are putting  together a technical team or if you are  finding a technical co-founder the best strategy is to start building it rather than trying hard getting free development resources for your idea. If it has certain value the rest would come. But first you need to believe in it completely.

(Image from TalkDroid)

Basic Java Coding Style

Having a consistent coding style across the team make code more readable and improve productivity. Every company has different standards that suit it the best. Here are some of the experiences from my previous development career. Hopefully you will find them useful.

Layout

All documents  or source code should not exceed 80 characters in a line to make sure the display won’t  break on any monitors. On Eclipse you can find the setting at

General -> Editors -> Text Editors -> Show print margin

Toggle it on and set Print margin column to 80

Documentation

Every function needs to have some documentation explaining its behavior. It starts with a verb, for example:

/**
* Gets the user defined value for price from a specified ID.
*
* @param ID a {@link String} containing the ID for a price value.
* @return a {@link String} representing the price if the ID exists, {@link null} otherwise.
*
* @throws NullPointerException if the argument ID is {@link null}.
*/
String getValue(String ID) {
    // Impl omitted
}

In addition to function documentation, every class should have a documentation detailing its objective. However the format can be more relaxed.Tip: Use Alt + Shift + J for quick documentation population

Coding Practice

The curly brace starts on the same line after the conditional statement and there should always be a space between each clause or identifier. For example:

if (a == b) {
} else if (b == c) {
} else {
}

The exception clauses should follow the same standard.
All unused imports need to be removed. Ctrl + Shift + O on class level would do the job. It is also important to include “this” on each class field or function access.Tip: Go to Java->Code Style to set it up. 
One of the most important practice in programming is the parameter validation. Check for null value or other unacceptable values in each function as preconditions before it executes. This will help us to identify where the problem actually occurs. For example:

String getValue(String ID) {
    If (ID == null) {
        throw new NullPointerException(“The ID value specified may not be null”);
    }
}

One More Thing

Don’t use tabs. Instead please replace them with 4 white spaces.
Tip: Java->Formatter->Edit Profile->Tab Policy to change the setting. You will need to create a new policy other than the builtin-in ones.
Other Resources:http://www.shortcutworld.com/en/win/Eclipse.html

Too often when we see successful figures talking about their philosophies on a stage we foolishly believe that’s everything it takes. Actually in the majority of time they work their ass off too get things off the ground.
In a job interview: Emphasize on the needs of the company and how you can help out, rather than what skills you have.

What is the most important thing for a business idea?

(I got some of the inspirations from reading Business Model Generation:  A Handbook for Visionaries, Game Changers, and Challengers)

I’ve seen quite a few teams made the mistake by focusing too much on the extrinsic environment rather than intrinsic business core value. This means when we have a good idea we typically search on the Internet to see if someone has already done it, and try to think how can our service be different. This is a logical step but it also has the potential to limiting the scope of the idea, even deviate it to something that is significantly different from the initial ideation. So what is the most important thing in the beginning?

 

The Core Value

An idea should have legs, meaning it must provide some value to all the stakeholders. One good way of doing this is to design couple of personas (use cases) that describe from the beginning of what does the user engagement  look like, the interactions with all other users and the outcome. This will help to identify all the stakeholders to sustain the idea analogous to a supply chain. Once they are identified one should go a great length to scrutinize the value brought to them when using the service. If you can’t think of any prominent values for a stakeholder maybe it doesn’t fit into the picture. There is a good chance  you are just imagining it. As a result it should be removed immediately to avoid the risk it might incur in the future. A well-thought business idea  tolerates no weak link and VCs are inquisitive beings. Experienced ones can smell something is not right from miles away.

Business Model

Out of all the stakeholders getting some sort of value from interacting with the service based on the idea. How do we charge money for it. It’s actually quite simple. Find the stakeholder who is likely to receive the most commercial benefits and make them pay, while other stakeholders can use the service for free. The reason is we want to encourage the usage of such ecosystem and make it easy for the remaining of the stakeholders. If a business idea only has its direct users as a single stakeholder, make them pay too. Remember placing ads is also a form of getting money from the users. But make sure that is acceptable to your users when defining the pricing.

What About Competitors

Crush them! One important thing to remember is the market won’t multiply itself when there are more players in the space. Inevitably you have to steal customers from the current players. Even with the similar offering (which I doubt  if the idea is truly original) there are still ways to make a difference. If your competitors are offering more stable services with less downtime. Beat it by offering sublime support. Go extra yard on these areas that your competitors don’t. In the end of the day for a business to survive it doesn’t need the whole market. It only takes a small bunch of users who like something indispensable in your service and they are willing to pay.

Question: What is your sequence of validating a business idea? 

(Image from Wiki, CC License)