Thursday, August 28, 2008

Why to Work for a Small Company

I've worked for very small companies (less than 50, privately held) and for very large companies (50k+ Fortune 500), for significant periods of time and in a variety of software development roles.

Below I've laid out several reasons in favor of working in software development for a small company. I'm not saying that these things are guaranteed, but I am saying they are out there and you can find them; and you are more likely to find them at a small company. Caveat emptor.

I also have a post on Why To Work for a Large Company.

Generally speaking, based on my experience, work for a small company if you value...

Risk Taking

If you are going to work for a small company, you should be somewhere on the spectrum between risk tolerant and risk-loving. Here are some risks: the company could fail for reasons beyond your control, the owners and/or co-workers could be difficult to work with, decisions that you make could negatively affect the company, everyone knows when you fail.

But for every risk, there is a potential reward. That's part of the thrill and payoff of working at a small company -- the entrepreneurial spirit -- taking risk and reaping the reward. Yes, everyone knows when you fail; but everyone also knows when you succeed. And your personal successes can have a highly visible and significant positive impact on the success of the company, the success of the people your company serves, and your own sense of self-fulfillment.

Connectedness

You should work for a small company if you enjoy the feeling you get when you can easily relate what you work on to the success of the company or the impact it has on the success of the company's clients or end users. I.e. You have a strong desire to feel like you are making a difference and helping others to succeed. When you are at a large company, that connectedness is often missing.

Like-Minded People

People who work for small companies are more likely to have values that align with yours and that are on this list. I.e. Risk-takers, entrepreneurs, optimists, do-ers, etc.

Less Incompetence

At a small company, you cannot hide. Everyone knows when you fail and everyone knows when you succeed; and the company cannot afford incompetence. Because of this, incompetence gets weeded out.

Familial Culture

Small organizations tend to take on the personality of their leaders, so if you find a small company whose leaders share your personal values (E.g. honesty, integrity, sense of humor, etc), the vast majority of the employee population is likely to also share those values; and this makes for a very nice fit and a familial atmosphere. It's hard to find this type of atmosphere at a large company.

Variety

At a small company, it is likely that you will become a generalizing specialist. In other words, according to Scott Ambler: "Multi-disciplinary developers, cross-functional developers, deep generalists, polymaths, versatilists." This will be true with respect to the technology and tools, the people you interact with, the domains you work in, and the roles you play.

At a large company, as a software developer, you are more likely to have a singular purpose (e.g. DBA, Performance Tester, Project Manager, etc.), where you can acquire a depth of knowledge within your narrow domain. If depth is what you are after, a small company might not be the best option.

Personal Marketability

My experience has been that breadth makes you more marketable -- it gives you more career options. Exposure to a variety of things also helps you to discover areas of personal career interest that you might otherwise have never discovered. Small companies help people to attain a more well-rounded skill-set.

Of course, breadth has a dark side: "jack of all trades, master of none". If you have to make a transition to a specialty, you will be behind others who already have that depth; but it has been my experience that, for career advancement and security, breadth is better than depth. There are exceptions, of course.

No Nonsense

Small companies tend to be very lean. Process and bureaucracy are overhead, and small companies don't want it and/or can't afford it.

Small companies do not suffer from the complexities of communication like large organizations do; and thus they do not tend to put in place restrictive, bureaucratic, and frustrating processes. Small companies tend to be agile by default.

For more on this, read up on Diseconomy of Scale.

Fast Pace

No nonsense translates into a fast pace. You don't rest on your laurels. You may work a lot of overtime. The cadence is just plain fast most of the time. You probably won't be bored. If you like to be busy, you will like working at a small company.

Flexibility

At a small company, there tends to be more flexibility in your terms of employment. Many aspects of your terms of employment may be negotiable, such as vacation, work schedule, etc.

Small companies tend to be more laid back about certain things, such as dress code and your personal work space. Jeans and t-shirt may be every-day attire. Perhaps shorts and sandals in the summer. Arrange your desk the way you want it. Put software on your computer without having to get permission. Listen to music. Take a mental break and play a game. Bring your dog to work.

Responsibility

Empowerment at a small company can vary greatly according to the policies and whims of the owner. It has been my experience that there is more empowerment at a small company. If you think about it, based on what I've previously said, this makes sense. There is less incompetence, which leads to more trust, which leads to empowerment. There is less overhead, which translates into less micro-managing, which leads to empowerment.

At a small company, you will have a responsibility to influence what the company does as a whole. You will have direct access to the owners and other decision makers. You may have direct access to the customers as well, and an ability to make decisions on your own based on what customers are asking of you.

1 comment:

Unknown said...

John,

Good overall description!

I will add that the 'Empowerment' benefit is one that is sometimes missing. Often this is because the owner(s) of small companies are micromanaging or controlling things out of fear. Usually this is easy to spot if you are aware of this possible defect in advance.

Eric