Lifestyle Companies

A friend was talking to me about his job and how things are progressing. Rather, not progressing. Things haven't changed in terms of investments, staffing, customers nor product roadmap development. The company is trudging forward with no real worries of succeeding or failing but certainly not growing and no apparent idea where it is going.
I grinned at his story and asked whether the founders had made it big on a previous startup, were independently wealthy, were investing significantly in the company, had taken no outside money and were acting as the CEO or some other C-level position. He had a look of surprise and answered that all of it was true. Lifestyle companies almost always have very little growth and do it with the founders' own money. My friend is a little bored and worried that things will never get off the ground. His worries are very reasonable too.
Being in a lifestyle company can be great during certain times of your life. There is absolutely nothing wrong with going to a lifestyle company provided that the company is profitable to the point where it is self-sustaining or has slight growth. Negative growth (AKA decline) can be dangerous for any company depending upon the wealth of its founders, the income from their other investments and their willingness to write checks.
Founders create lifestyle companies to have work that matches their lifestyle. Yes, sometimes the obvious is true! These companies are not reserved for the uber-rich trying to avoid boredom. A friend of the family runs a boat engine repair shop where he works about 4 hours a day. He owns his house through inheritance, makes very little money and he's a little too happy about life. He earns below the US poverty line but his house is paid for so he can live cheap and happy.
Lifestyle software companies are fascinating as they are often started by people who have previously made it big, or huge, and have limited motivation to do it again beyond to show that they can or to have something to do. Wealth doesn't make a person happy or busy. So they start a new company and try to make a go of it.
Boredom after huge wealth sounds crazy. It would seem like you could travel all the time, play golf, go back to school or blow stuff up on your new island. How could you be bored with all those new opportunities to goof off? Being independently wealthy may mean that you are making around $120,000 gross on your investments per year, which is obviously enough for most of us to retire on, but it isn’t enough to go on a spending spree since you may still have a mortgage, kids in school or college, all the old bills and you have new costs, like health insurance. Most of the time we hear about the people that make it huge, but there are plenty of people that suddenly find themselves with $3 or $4 million in the bank after a good exit. They have enough money to quit but maybe not enough income to do all the whacky stuff.
Let’s say that you make it moderately big and have $10 million in the bank. You have very few financial concerns at this point beyond being pretty well diversified, which someone is probably managing for you anyway. You are squarely looking at the problem of avoiding boredom. I think everyone agrees that it is a great problem to have. You may goof off for a year or so and then simply be bored and need something interesting to do every day that actually matters. Your job mattered before and now you have to do something that matters again. Finding ways to goof off is not usually a good strategy for finding a new purpose in life. Especially when most of our lives are guided by some kind of work.
As mentioned earlier, a founder may start a company just to avoid boredom but may not want to have the enormous workload they had in the startup that made them wealthy.
Some founders create a lifestyle company where the staff shares some measure of the lifestyle: the staff comes in, does some work, plays some ping-pong or darts, does some more work and then goes home. Other companies are about the founder, which means that the founder has a great life and the staff works pretty hard. However, lifestyle companies usually don't have a lot of growth. Growth means lots of work, lots of difficult challenges and stress. The former situation means that everyone enjoys the rewards of a highly successful individual while the latter means that the staff works hard, but with limited hope of significant gain that would come with a traditional startup or small company.
Startups and small companies usually have a goal or an exit planned since the inception. They know where they want to go though they may not know how to get there. Its normal not to know how to get there and to change directions along the way too. Lifestyle companies usually don't have a clear goal or make little effort to attain those goals.
I used to work in an incubator type space that had cube walls separating companies of 3 to 10 employees. It was nearly impossible to tune out the conversations from the other startups. I was parked next to a lifestyle company and I was often mind-boggled by it. First, I couldn't figure out why anyone would bother paying or even using their service. This thought is common though since many startups are doing something bleeding edge and so it is hard to judge the merit of something until it is deeply explained or adopted by the world. You may even be scratching your head about why anyone would use the product your own company produces.
Second, every Friday, at around 4:30, the founder would come over to his staff and tell them about his plans for the weekend, talk about the Mercedes and how it was failing to meet expectations for some trivial reason and then assign three more hours of work that needed to be ready Monday morning. Third, their customer base only grew in the single digits on a monthly basis. Fourth, he spent most of his time writing travel blogs, which was completely unrelated to his line of business. Fifth, he left early very often while the staff worked late.
This is an example of a lifestyle company which is about the founder. The staff works very hard while the founder is goofing off. The founder has a hobby and you get to work on it with little hope of a big pay-out at the end. What is worse is that you are at risk that the founder will become bored and want a new hobby.
Another company was built around some really good software development tools founded by some guys who had made a lot of money on a previous venture. The company had excellent engineers and they worked on difficult problems and played a lot of Guitar Hero. They may work a 40 or a 50 hour week depending upon needs, but often it was left to the developer how many hours he worked. They weren't making very much money but they were doing something difficult and interesting. The staff and founders alike were happy and the staff had a good stake in the equity of the company. The company goes on and on doing development work but has limited motivation to make it big, so it doesn’t. So it cruises forward on the strength of the founders investments and again has no clear exit or plan to become more than a lifestyle company.
The underlying problem with both kinds of lifestyle companies mentioned here is that they are more like hobbies than actual businesses. The founders needed a way to keep from being bored and so they founded something. One company worked on challenging problems while the other was just challenging. Whether either company will be successful is hard to say since the metrics are different. The founders may be perfectly satisfied with how things are going. The staff could look back on it is a happy time too.
Let's say you are interviewing at a lifestyle company and you know its a good one. You may ask yourself if it is wise to take the job? Non-lifestyle companies have goals and set expectations and you have to meet them. You are measured, challenged and groomed for later positions in and out of the company. Startups are often like pressure-cookers and force you to learn and do so much more in a short period that you grow professionally very quickly. Lifestyle companies may not be so driven and so your career or skills, like the company, may stagnate. It falls on your shoulders to grow for you to continue to succeed beyond the current job. Good and bad lifestyle companies can put you in a position where the technological world passes you by.
Good lifestyle companies can be incredibly good for your quality of life though. Let's say that you came out of a couple of really brutal startups and you are wound-up and tired. That euphoric kind of feeling where you feel a sense of urgency all the time even when there is nothing to do. It comes from always worrying about the next demo, the stability of a server, the scalability of the last commit and that the new feature has a couple of embarrassing bugs in it that will cause a conversation with the dev manager. Living with those thoughts for a few months or years is going to make you a little tense. A good lifestyle company can ease you back to a point where you can enjoy living rather than just working. They are the rest and relaxation job that you may need after a gut-wrenching personal event or overly stressful gig. Think of it as therapy.
The next issue is knowing when to leave. A lifestyle company may pay less than a startup it also may be less challenging and eventually boring. Too easy a job will cause your skills to atrophy and make it terribly hard to get a good job in the future. Further, if the founders get bored or lose too much money then they may close up shop. At some point you'll have to leave, just be sure to leave on your terms.

Interviewing the Employer

I often read blogs that have tips for interviewing candidates. I’m always looking for questions that may give me some real deep insight as to what the person is like to work with. It is also important to ask a potential employer about life at the company but I see only a few blogs about the subject. Today I’m writing a little about what to ask the startup type company to see if it is a good company for you to work at.
Take a look at the article “Startups Must Hire the Right People and Watch Every Penny. Or Fail.” and “How to save money running a startup.” Item 11 in the latter article is the most important thing to pay attention to. Then read the comments and see how many people agree with his sentiments. The specific item is that an employer should fire employees that don’t love their work or aren’t committed enough. Now, in all fairness, this was his attempt at clarification but it really doesn’t make things better.
The need for interviewing your employer is growing more critical as beliefs like these continue to gain traction. There is a world of entrepreneurs out there that would work 24/7 and they expect you to be just as committed as they are. Commitment comes in different flavors, some entrepreneurs want you just to focus, be enthusiastic, creative, happy and bring your “A” game every day. Others expect commitment in the form of hours: the more you work, the more committed you are.
Most tech entrepreneurs in major hubs like Boston, the valley, Seattle, Chicago, etc have to work incredibly long hours because there are countless meetings and presentations to make to customers, investors and the industry community at large. The last group is really important because it leads to introductions to even more customers, investors and a wider audience of the industry community. It gets very exhausting and the pace never lets up. The key point to understand is that every aspect of your entrepreneurial life revolves around work and it seeps into every interaction outside of work too.
Some entrepreneurs believe that they are not asking any more of their staff then what he is willing to do himself. This is a scary statement because the entrepreneur is probably working upwards of 70 hours a week anyway. A developer can work that many hours, but we usually see the results in the form of frantic and badly written code leading to a worse release. When a developer complains about a 60 hour week the entrepreneur sees it as a lack of commitment though.
Not all entrepreneurs are like this. Many are really great people that inspire a real sense of camaraderie and excellence. They work hard, are honest and they make sure that their staff is happy too. They may need somewhat long hours, but the work is actually rewarding. Further, some of these guys want to help you along later so that you can build your own company in the future.
Figuring out which entrepreneur you are interviewing for is not exactly easy or precise. You may not be able to find out who you are dealing with until the offer comes in either. You can find out a lot though from the staff during the interview. The following is a short list of questions I generally try to ask each of the interviewers.
1. What time do people generally get in?
It’s good to know if you are working with early risers or a company with specific start of day times. Some companies have very flexible schedules with core hours. Some startups actually run a 9-6 shop in terrible commuter locations.
2. What would you say your daily routine is like?
You could find out that the team likes to grab a coffee at the starbucks around the corner and go over the plans for the day. You could also find out that everyone reports to their desk and reads emails quietly.
3. What is the release schedule like?
Is it a web service that goes through weekly or monthly releases? Is it every 6 months? A year? 2 years? The shorter the window the more you generally have to do. Different project management, QA and development strategies are used for different intervals and kinds of applications.
4. What is your project management style: waterfall, agile or something else?
You know which of these you like and are willing to try.
5. Where do you live?
This sounds really odd, but how far everyone is driving matters. Does everyone live in town while you are going to have to drive an hour? It changes the amount of time you can spend at work and with your colleagues outside. You may find yourself at a place that expects you to work really long hours and then you have a long commute to face while everyone else is close by. They may not understand that you just can’t work the really long hours because of the commute. Another factor is the after hours commitment. Some companies have an active social life and a long commute may make it difficult to join in.
6. Where do people go for lunch?
What you are trying to find out is if people go out for lunch as a group. If you aren’t making much money but everyone goes out then you may have to go out to be accepted in the group. That could be really expensive. It could also be that everyone brings lunch from home and eats at their desk. It could also be that people don’t go out as a group ever.
At some point be sure to get a cup of water or coffee and visit the restroom. This sounds kind of odd, but you really need to see how these people live. You should see if they have an open-office plan and if everyone is silent or talking. Is the “kitchen” a nasty pit or really clean and the same for the bathroom.
These last items may not make sense and may sound dumb. Open-office plans can be noisy or silent except for the clicking of keys. Noisy places mean people are talking to each other while a quiet office can mean that there is nothing to say or everyone knows what needs to be done. A silent office can also mean that people are messaging each other instead of talking. One style or the other does not make it a bad place to work, but you need to sort of know whether you like quiet or noisy places. You also have to be sure that you can live with the total lack of privacy.
A kitchen and a bathroom tells you what the people are like and if there is a cleaning service. I personally like being someplace clean. It matters, I’m a germaphobe. Let’s say that you see an adequate kitchen with the usual things except for tables. Where do people eat? Do people hang out together during lunch?
You usually don’t have a lot of time to ask all of the questions from each interviewer but be sure to ask at least one common question from each interviewer. It’s important to hear similar answers from each person in regard to the life style of the company. A manager will always try to sell the company, but an engineer may be far more straightforward in his answers. Take some time to think about the mosaic of answers to each of the questions after the interview.
There are no right or wrong answers to the above questions. You may really like a frenetic or a silent workplace. You won’t know about the place until you ask.
The most important person to interview is a senior manager or a founder. You will almost certainly interview with a founder in a startup. The company is small and they are into pretty much everything. This is great because they set the pace of the company. You want to talk to him about everything you can and really know this person. The one thing about them that is certain is that you won’t change the kind of person they are no matter how important you may become. A crazy leader stays a crazy leader for awhile. Its whether he is your kind of crazy.
The compensation conversation is the one to listen to the most. Any discussion about stock options must include the size of the share pool. Founders may know the number off the top of their head. The reason they know the number is that they have a huge portion of the shares and they can calculate their wealth almost instantly in the event of a buyout.
Knowing the share pool size lets you determine whether it is a meaningful number of shares. Let’s say you go to a startup and they make you an offer of 10,000 shares on an unknown pool size. You may want to make a $1MM off the deal in the event of a buyout. That means that your shares have to be worth at least $100 per share to get you to a million. Now, what does the company have to be bought for to get you that money. The pool size helps to tell you that. 10,000 shares of a company with 40MM shares means that the company has to be bought out for at least $4 billion in order for you to get $1MM. Good luck.
There are a bunch of terms like ratchets and multipliers that factor into the valuation of options too. The discussion on these topics is incredibly long, but they are mechanisms to ensure that the investors get a decent return on the investment and risk they are taking. Basically, the investors get paid first and at a premium and you get your share of the remainder. That could mean that the investors take an additional $20MM or more off the top of the deal.
Don’t get me wrong, I love options. Just be sure you understand how much you are getting and set your expectations appropriately. If someone interviewing you says we’re all going to be rich, but sure that “we” means that you have a large number of options too.
Everything I am writing here is about trying to collect information about whether a company is a good pick. Some small companies claim to be startups even though they are pulling in $5MM in revenue and running a 15% profit for the past 5 years. It’s very sexy to be a startup and some startups are similar to a 53 year old woman claiming to be 39. They aren’t a startup but they want to be so badly that they take on the startup-lifestyle.
The issue is that small companies have usually already gone through rounds of investment so the share pool is very large. You have to examine the offer package carefully to see if the commitment necessary for the small company is worth the overall effort when compared to the offer from a real startup. Real startups option packages are often more valuable because the number of shares in the pool is very small. The effect is that you can evaluate if the time you will have to put in is worth the final reward.
No matter which company you ultimately decide to work for, be sure that you have done the due diligence and selected a company that you are going to look forward to going to every day. And if that doesn’t work then find a job that you can tolerate. And if that doesn’t work then you probably are better off where you are right now. But no matter what you choose, be sure to find out what you are committing to and who you’ll be working for.

Firefox Browser Stats

I'm a stats junky and since starting this site there have been nearly 9,000 visitors. I know its not a big number, but that's since December 24th and I really didn't think the site would get this many hits. I'm very thankful and really happy.
I always like looking at browser stats because I want to be sure I'm keeping with the developer community I serve. It was no surprise then that nearly 73% of all visitors are running Firefox, with IE and Safari in a distant second and third slot.
What is distressing is that around 95 people are running something older than a 2.x Firefox revision! Please, I'm begging you, upgrade today. You 0.x people are frightening me, but I love you anyway!

Refactoring: Communication and Time

A recent lunch led to a great conversation about refactoring other developers’ code and when it is reasonable to do so. Generally, I believe it's unwise to refactor other developer's code without talking about it first. Especially when the code you want to refactor is a peer or a lead. We came to a conclusion that it is fair to refactor without comment when you are under a tight deadline and its the only way you can see to fix the problem.
First, I really don't like refactoring someone else's code if that person still works at the company. It can be seen as a vote of no confidence and a real ego bruiser. Even the worst developer still takes pride in his work and making that person upset or angry does not make your project go more smoothly. Discussions, mentoring and positive criticism will often get the point across and the person learns how to write better code.
There are still times when it is reasonable to go ahead and refactor the code without warning. Let's say you are working the weekend to hit a deadline and you have to make sweeping changes to someone else's code and you can't get in touch with him. This scenario happens in somewhat older projects where the old code has been patched over and over again. It was good code once, but the application has grown beyond the algorithm. The best way to fix it is to rewrite it into clean code that fits current requirements.
Hopefully you have a good understanding of what the code is supposed to do and can write one or more replacement methods that adds new functionality while faithfully recreating the old. It is very easy in these situations to regress. At this point, the best thing to do is to test, commit the code and then tell the developer responsible for code about what you did and why. Most people will be gracious and happy that you fixed what was probably seen as a burden. Other developers may get really crabby or even yell about the changes. However, hitting deadlines is often more important than personal egos and real pros are often ready to accept that.
Another scenario is when you are the lead developer and you have several people churning out code for a set of features. Sometimes you have to integrate all that code which often requires some measure of refactoring. You may see, for example, that an algorithm is simply incorrect and will not operate correctly. If you have time, you should bring it to the attention of the responsible developer and communicate the problem. If a deadline is looming then you are probably better off just making the changes and telling the person about it later.
Clearly, there are two common themes here. The first is that communication is critical, whether good or bad. The idea is to drive home why you made changes to explain your point of view and hopefully get buy in. Its also the opportunity to find out whether your change is really appropriate. Sometimes the refactored code is worse because it introduces regressions in other concealed areas. The owning developer is often the only person that knows about these other dependent components.
The second theme is time. The tighter the deadline, the faster you have to move. Missing deadlines can impact sales, support, documentation, QA, salaries and staffing. This may sound a little over the top, but many customers only budget and buy during certain times of the year. Missing a customer's budgetary or buying cycle can mean missing an entire year's worth of revenue from that customer. Small companies with few customers are very sensitive to losing revenue. Consequently, slipping a date because you didn't want to modify someone else's code is usually not helpful.
Communicate and delegate when there is time and refactor carefully when there isn't.

Javascript: Ext, SSL, S.gif and D'Oh!

I was working on a UI with Ext last Friday and everything was going smoothly until suddenly my tree control had a lot of broken images. I was pretty confused by all of this because everything was working 5 minutes earlier. I then tried to visit the forums and found that my internet connection was down.
Ext exposes a system wide setting called Ext.BLANK_IMAGE_URL for pulling in a spacer image called s.gif. You’ll find the image under/resources/images/default. Ext has a default value for the field that points back toextjs.com so that your application degrades gracefully. You may only notice a problem if you happen to be looking at the URLs of your image through firebug.
SSL adds a wrinkle as your IE users will get popups asking whether the browser should display insecure objects. This is obviously caused by the fact that you are not loading all of the page’s dependencies from the same SSL domain. Setting theExt.BLANK_IMAGE_URL solves the problem.
Why would someone create this setting? First, toss out any nefarious belief that it is to get information about you or your users. While that is possible, as we all know from using Google Analytics, it isn’t actually useful information beyond finding out that your framework is popular. The real purpose is that it is not possible to hard code a good default value that runs within the same application’s context. This setting is not hidden either. It is the first property in the Ext object’s documentation and it is described again in a FAQ.

function main() {
Ext.BLANK_IMAGE_URL = '/ext-2.0.2/images/ext/resources/images/default/s.gif';
// rest of app goes here
}
Ext.onReady( main );
The path to the s.gif will vary from one application to the next. Java developers will have to specify their web application’s context and the path to Ext before being able to pickup the s.gif while PHP developers may only have to specify the path to Ext. There is nothing to say that a developer will not change the name of Ext’s root directory either. The effect is that no default value will work consistently. Ext chose to host the file on their own servers so that you would be able to get up and running more quickly.
I spent ten minutes researching it and then wondered why I wasn’t getting this error from another component in the same application. Turns out that I had run into this problem before and solved it in that other application. I quietly banged my head on the desk, vowed not to tell my coworkers and then wrote this.