Fog Creek Software
Discussion Board




Finding companies like Fog Creek...

... and bosses like Joel

OK, this isn't simply a question for Joel, it is for everyone:

During the dot-com boom, one day a colleague of mine asked, "Does anyone actually enjoy working for a new media company?" We suspected they didn't.

Who knows of some software companies with enlightened practices and management? Companies where it is actually a joy to work. There must be a few...

Is that a job?
Friday, March 19, 2004

Get out there and start some!

Seriously, though, I've seen a few: Microsoft and SAS come to mind as the largest ones.

Considering the number of people ranting and raving about not being able to find (a) work that they (b) like, you'd think there would be enough critical mass to get a handful of good developers together, eat ramen noodles for a year, and bootstrap a good software company.

Joel Spolsky
Fog Creek Software
Friday, March 19, 2004

Alright, who's interested?  No seriously.  Who's willing to invest a 40 hours a week doing this?  I just moved back to Buffalo (from Boston) because I didn't want to work 80 hours a week for someone else.  But I'm more than willing to work 40 hours for my employer and 40 hours for myself until I can quit the day job entirely. 

Communication should be simple, IM, email, a project mgmt site of some sort, and online conference calling (using free Skype s/w.)
Drop me a line...

GiorgioG
Friday, March 19, 2004

Same here in Montreal.

Tired of working at Dilbert companies myself.

Anybody want to get together for a chat, drop me a line.

2_legit
Friday, March 19, 2004

> Considering the number of people ranting and raving about not being able to find (a) work that they (b) like, you'd think there would be enough critical mass to get a handful of good developers together, eat ramen noodles for a year, and bootstrap a good software company.

That's what I've saying...*sheesh*...a lot of the complaints you see about working environment or corporate goals not condusive to making programmers stinking rich While Making The World A Better Place(TM)(C)2004 can be quite easily solved by taking a more active role--by starting a company or partnering with like minded people!

Li-fan Chen
Friday, March 19, 2004

GiorgioG and other like minded posters,

My advice to you guys is to start posting on IT software related discussion sites where your post won't drop off the board such as:

* USENET
*OpenIT http://pub21.ezboard.com/bopenitforum
* RealRates http://pub2.ezboard.com/bcomputerconsultants
* whatever other IT forums you might visit

and ask for some feedback on your "starting your own IT company in your spare time" idea. Imo, simply asking other technologists to contact you isn't going to work. You are going to have to sell to the "people you want to partner with" with good arguments on why your idea has merit and is worth their time and effort.

One Programmer's opinion
Friday, March 19, 2004

.. except Slashdot. In this article http://ask.slashdot.org/article.pl?sid=04/01/26/2158239&tid=187 , someone suggested that itchy programmers could get together and start up software companies.

What followed was careful, judicious agreement that it was a bit too hard.

Patrick FitzGerald
Friday, March 19, 2004

What if programmers are the worst kind of people to start solution companies? It really depends on the kind of person you are, some people are great at this, others are best suited to doing a CTO role than running the full gamut of the company.

Li-fan Chen
Friday, March 19, 2004

Microsoft happens to be an outstanding employer. This is the best place I've ever worked.

Philo

Philo
Friday, March 19, 2004

just wait till the honeymoons over philo and then get back to us.

Seriously though, what is needed is a way to match people with domain expertise with people with technical expertis

the artist formerly known as prince
Friday, March 19, 2004

I've been thinking of starting a company and just like anything else I know nothing about, I began researching what it takes to start one.

1) write a business plan: What your company is going to do, how and why mycomany.com will make money.

2) research

3) more research

....

n) get funding

Step 4 is where I have the problem. I'm poor. So send me your resumes and more importantly money orders and cashiers checks.

Now for that business plan.

ewarmour
Friday, March 19, 2004

Prince, you'd think that. But you know what? I noticed it even when I was interviewing:
"I've been with Microsoft ten years"
"I've been here five years"
"I haven't been here that long - I started a few years ago"

*Everyone* has been here *forever*. And they all still love it. They are passionate about this place and our technology. This week we had presentations from several VP's - all working here 14+ years. Now, we all know they MUST be multimillionaires, but they're still here, still traveling, still talking to groups of new employees and still absolutely in love with this place.

And I can tell you why - Microsoft is a textbook case for why you should treat your employees like people.

Philo

Philo
Friday, March 19, 2004

Dear Philo,

I am eagerly waiting to hear from you about your experience of working at Microsoft in great detail. I hope when you've your blog up again, there will be much to read on the subject. How I cannot wait when you say it every one more time!

Sathyaish Chakravarthy
Friday, March 19, 2004

http://weblogs.asp.net/philoj/

Look who started a new blog!

Damian
Friday, March 19, 2004

Unfair Philo, you never told me. I asked you more than twice, you never told me. Anyway, I think I am not too late. Thanks, Damian.

Sathyaish Chakravarthy
Friday, March 19, 2004

Uh, it's like two articles - I didn't really think it was worth any kind of announcement.

Philo

Philo
Friday, March 19, 2004

Most blogs there never get past 2 posts, we will see if Philo lasts the distance :)

Damian
Friday, March 19, 2004

I guess it will not be as funny as the CAMEL;-)

Prakash S
Saturday, March 20, 2004

I have in fact started my own computer company in my own time, so I think I'm qualified to give a little feedback. My experiences might not be typical, though.

I shan't describe the project in detail for fear of advertising on this forum but it is a portable cartography library incorporating various nice graphics features like a built-in SVG renderer.

First, it's very hard to find the time and energy if, like me, you're lucky enough to have other clients who deserve value for money - and if, like me, you have a family who deserve to see you occasionally. This means that getting something even very rudimentary working is s..l..o..w. If you manage to find, say, Saturday plus a couple of evenings a week for the project, apart from the part-time-ness slowing it down you have all the overhead of picking up the thread each time.

I have found Joel's advice invaluable. I have read everything he has written and agreed with 99% of it. (The 1% is things like exception handling, which I have found quite useful in the past, though not for this project.) I started right from the beginning with one-click builds, defect tracking, and source code control, even though for a while it was just me doing the programming. I use a rather out-of-date but perfectly adequate version of Kinook Visual Build for the builds, FogBugz for defect tracking, and SourceSafe for source code. I would prefer to use Perforce but that is rather expensive to license.

I hired a part-time programmer after a little while but for various reasons it didn't work out. This was quite upsetting, because he was and is a personal friend, but luckily the relationship survived and he sort of mutated into an informal part-time IT manager and set up my server for me. I now have a server running FogBugz but not (yet) the source control system.

The server is needed for my current co-programmer, who is located in Israel. You may ask how I found this chap, who is one of the most skilled and professional people I have worked with. The trouble is, I can't give a recipe. It was just luck. I had worked with him before, collaborating via e-mail - we were both working for another company. I suppose the best advice is to use the network of people you know at this stage.

The other important thing is how to finance the project. As Joel suggests (something about eating 'ramen noodles' which I suppose to be a very cheap type of food - can't be bothered to look it up right now) it's best to finance everything oneself early on. I have paid my part-time programmer and IT person for their work, but the programmer has now (amazingly and very kindly) agreed to accept payment in equity in what is as yet a company with little value, because it does not yet have a saleable product.

That reminds me: I did set up a formal limited company, which is quite cheap and easy in the UK and I think most other first-world countries. This was mainly to create a legal framework for the equity compensation scheme.

Well, the most important thing, looking back, apart from the brilliant design and programming, which you have to supply yourselves, is the very simple point that Joel is absolutely right about regular one-click builds, source control, defect tracking, etc. And of course the build system has to run all the unit tests as well. Actually following these rules has meant that at all times we have had a working system, and a very good chance of fixing bugs quickly and easily.

Graham Asher
Saturday, March 20, 2004

I have to agree with Li-fan and disagree with Joel here.  It sounds good in principle to have talented software developers create a company, but there are two different skillsets between being able to come up with ideas for software that will actually sell versus being able to create said software.  There are some people who can do both, but most people are good at one and not the other.

Abstracted one level to the point of problem solving as a general skill, one certainly can say that the problem at hand is first "What should I write?" and once that problem is solved the next problem is "How?" (and so on) so in principle a sufficiently talented problem-solver should be able to do this, but in practice it's not so easy.

Aaron F Stanton
Saturday, March 20, 2004

I started my own software company 8 years ago because I was new to programming (switched from electrical engineering/telecom consulting).  All the jobs required 3+ yrs experience.

I focused on something that someone in the industry would need and tweaked and tweaked the software and the company until I had:

1. Program that met the needs of the market.
2. A way to reach my market cost effectively (advertising, etc.)
3. Understanding of what the market's key criteria for deciding to buy our software way. (Our "value proposition" or Unique Selling Position, etc.)


The challenges were much less about the technical than about the business end of things.  Probably 10% of the decisions were about what technology to use. The other 90% were : what feature set, what goes on our web page, what price, where do we advertise, etc.

So, you see 70% to 90% of a software company (at least mine) hs very little to do with coding.

So.... a software company is more like a software COMPANY. It's more company than software.

Look at Bill Gates. I'd venture to say his business acumen far exceeds his programming skills.

That said, I highly encourage programmers to start thier own companies.  But, as Joel found out, it's better to sell a product 1000 times than to sell your time, so I recommend a PRODUCT company not a SERVICE company.

The problem with selling your time (consulting) is you're always running out of inventory.

Mr. Analogy
Saturday, March 20, 2004

RESOURCES for those of you starting your own company:


These are some very concise, helpful, real-world wisdom articles by someone who's "been there" and "done that".
http://www.dexterity.com/articles/

Like any other real endevour, running a business is (IMHO) part theory and part action.

So... learn...do...repeat ... until millionaire <g>.

Mr. Analogy
Saturday, March 20, 2004

This seems to be leading to an interesting discussion about how a (new/small) software company can identify profitable markets and possible products.  Anyone care to bite? 

I like the comments of Mr. Analogy regarding products vs services and consulting but perhaps contracting is a useful way to gain market intelligence that leads to profitable products.

Market research is going to consume time and money, unfortunately raw programming talent is no substitute.

Oliver George
Saturday, March 20, 2004

http://discuss.fogcreek.com/joelonsoftware/default.asp?cmd=show&ixPost=123773&ixReplies=15
is the thread I started in the other forum on this.

Aaron F Stanton
Saturday, March 20, 2004

You know, Joel, I gave the same advice here about a year to two years ago, more or less. The response I got was 'I just don't have the imagination to know what to make' and 'I hate programming, I just do it for a living.'

Besides, I'm sure everyone would think they'd be a great boss, but when the fit hits the shan, they'll probably freak & crack the whip just like the rest of 'em. After all, that's the only real world example they have of how to get things done.

www.MarkTAW.com
Sunday, March 21, 2004

> crack the whip

If the incentive was feeding the kids and making your own share of the stocks actually worth something (so that you can feed the kids), then I think that's going to drive motivation enough.

However (it's unfortunate but this needs to be pointed out) some people are more motivated to push towards financial independence than others--so you will have to pick your holding partners carefully. Signs of motivation?

* First in the door, last to leave (really really hungry)
* Just as interested in other primary owners to make it as pleasant as possible to work (avoid building another sweat shop while beating the sweat shops' in productivity and quality)
* Out there pounding the pavement or working the network always (no sales = no contracts)
* Willing to work out differences and work to find common company strategies (not a prima donna).

Li-fan Chen
Sunday, March 21, 2004

> some people are more motivated to push towards financial independence than others

Some people will do anything to get more money in their pocket, including taking it out of yours. If you let them, they say "everyone has to look after their own interests."

> First in the door, last to leave (really really hungry)

If they're putting things on a production line, this might equate to doing more work. Otherwise, it's the sign of a moron.

.
Sunday, March 21, 2004

> Otherwise, it's the sign of a moron.

*lol* I think it goes without saying. The point is that a company is better served by someone who is interested in pushing the company forward (thus benefiting the employees in good ways). Ofcourse, not everyone can expect the ideal company leader, but every so often a lucky (or smart) company will get just that.

Li-fan Chen
Sunday, March 21, 2004

> Some people will do anything to get more money in their pocket, including taking it out of yours. If you let them, they say "everyone has to look after their own interests."

., can you show some example of this? Have you seen many small business owners with this mentality? How did it affect the company?

Li-fan Chen
Sunday, March 21, 2004

., can you show some example of this? Have you seen many small business owners with this mentality? How did it affect the company?

The small company where my wife works is set up as a partnership, not an actual corporation.  One of the owners of the business frequently has it pay for things that are clearly personal expenses.  In effect, he's stealing from himself, but it also affects the employees and the other partner.  It's likely one of the reasons that they had to fire one person this year and almost everyone else there had to take massive pay cuts just to stay.  We've decided he's off the sane/insane axis and is just unsane, at right angles to what other think is sane.

safer to be anonymous on this one...just in case
Sunday, March 21, 2004

> can you show some example of this? Have you seen many small business owners with this mentality? How did it affect the company?

I was not necessarily referring to small business owners but, having said that, yes, I can think of several actual cases. There was a recruiter who wouldn't pay contractors their last pay. (He's gone broke.)

There are insurance agents who steal from dumb schmucks that get suckered into dealing with them.

.
Monday, March 22, 2004

You would think recruiters who handle contracts would be required to meet industry-compliance by making a deposit into a government sealed account. The amount would be equivalent to the maximum amount of pay out-standing allowed by law. I think there is a similar requirement in the Canadian travel industry where travel agencies must declare and freeze around 100K $CAD for bankruptsy protection.

Li-fan Chen
Monday, March 22, 2004

The whole purpose of which is to pay the suckers who bought flight tickets and trips and otherwise won't be able to get a refund for non-delivery of tickets or goods.

Li-fan Chen
Monday, March 22, 2004

I am in the process of starting a software company right now.  Actually more of an advanced web development company, since that's how we are buttering our bread right now, but we want to build software eventually.  In just a short amount of time, these pieces of advice have made themselves abundantly clear:

* In order for a person to be successful starting a business (as a partner or alone), they MUST be a self-motivater.  I think some of the comments have alluded to this, but I believe ALL parties need to have this characteristic.  In my situation, we have myself and 2 other programmers.  One is my long time friend, and we have very similar goals and personalities, and no issues.  The thrid is a friend from church, a very nice guy, but is appearing to not be self-motivated at all.  The consequence is that my friend and I are pretty much doing all the work, since we are all still in the spare time stage, and he always seems to have something else that is urgent to do.

* You need to have a direction.  Business plan is good, as long as it has a specific plan in it.  In particular, a product.  A product that you can actually sell, and a connection to that market so you understand how to provide value in the product.  It is so important to understand how the user of your product accomplishes the task your product performs, without your product.  If you really understand that, you will be able to know how that process can be improved.

* Yes, you do need people who know how to run a business.  Just being smart and reading JoS isn't enough.  I agree that there are people who are people who are good at one thing and not the other and the very rare person who is good at both.

Joel's advice is very good indeed, and we are using it too.  Bug tracking, source control, etc.

The funding issue is difficult to comment on, other than that I wouldn't feel comfortable taking on the risk and liability.  Our golden goose launching pad is a full equity partership in a web-based service application.  One with a very ripe market that currently has little to no competition.  The only investment we have in it is $10 a month for web hosting (this may expand to running our own servers eventually) and our development time.  This project looks like it will bankroll us to the point where we can quit our jobs, and then we can spend our 50 hours a week working solely on what we want.

Bottom line, yes it can be done.  But you have to be smart about it, and you have to be willing to work your arse off.

Slicky
Monday, March 22, 2004

I'm still amazed that someone would move back to Buffalo.....

apw
Monday, March 22, 2004

---
And I can tell you why - Microsoft is a textbook case for why you should treat your employees like people.
---

Ask the administrative assistant or the mailing person if they share your vision of Microsoft treating employees like people.

Clearly, your company treats their hot shots program managers and developers very well, but one-third of the employees are temps who doesn't get any benefits.

Anonymouche
Monday, March 22, 2004

Slicky, what have your company created?

Li-fan Chen
Monday, March 22, 2004

Anonymouche:

Those people typically aren't employed by Microsoft.  They are contract vendors.  MS pays their contractor, the contractor pays the employee.  This includes the shuttle drivers, cafeteria workers, receptionists, company store cashiers, etc.  Of course they don't get benefits from MS as they aren't employed by Microsoft.  They are employed by their respective contracting agency.  There are even hoards of programmers at Microsoft that fall into this category.  They are often hired by agencies such as Volt and Comforce (the two major MS contract vendors).  And of these people, they only work for Microsoft for up to 9 month (used to be) stints afterwhich they were required to take a 3 month reassignment before they could again contract for Microsoft.  On the whole these people only work for MS for a short period of time.  I wager though, that although it might not be the best assignment, you will not hear gads of complaints from the people as they take their turn through Redmond, and the group of them is satisfied.

Elephant
Monday, March 22, 2004

The university I work for just sent me a generic interoffice memo announcing a free all-day seminar on entrepreneurship which takes place in a couple weeks.

After reading this thread, I think I'm actually going to go.

Kyralessa
Monday, March 22, 2004

Li-fan,

Well, since its not completed yet, and there are a lot of smart and eager folks around these parts, I won't really go into detail.  I'll just tell you that its a web-based educational application targetted towards a specific niche.  Once that is completed, we have been commissioned to build another site that will be even more complex in its functionality.  The guy who had the idea for these sites is great with the business/marketing stuff, and he has been actively scouting additional opportunities for us also.  We just happened to be in the right place at the right time.  I guess thats how it almost always is, though. :-)

Slicky
Monday, March 22, 2004

Here is my personal account. I apologize if my English is not correct, it is not my native language.

In 2002, we started, me and three friends, a small software company in a city in the south of France (we were all from there). Our goal was to build and sell a 3D modeler from photographs: you take a few pictures of an objet, then the software is able, with the user help, to create a 3D model of this object and texture it.

There are some competing products in the market, but ours was designed to be much easier to use, much less costly, and it had a few unique features.

We had from the very beginning a fully-working protototype of this software that was written for a PhD thesis at the local university. The student who wrote it was acting as a consultant for us. Because the prototype code was property of the university, and because the software was still too difficult to use, we needed to rewrite it completely.

At the beginning, we lost some time hesitating about the technology to use. We first tried to rewrite it using Xanalys LispWorks (one of us was a big fan of Lisp). But we found that nor the GUI API coming from LispWorks, nor CLIM, was
satisfying (and the GUI is of top importance for this kind of product). So we changed our minds and turned to C++ and TrollTech's Qt. During this time, I have always found advices on Joel's website extremely helpful. Choosing C++ allowed
us to re-use some parts of our prototype (which is itself in C++) and rewrite it progressively.

We have been very happy with this choice since then. The product was scheduled to be available under Windows first, then later be ported to Mac and maybe Linux. For this kind of software, Qt is almost perfect: I have almost never
needed to bypass the API to make native operating system calls.

It was not practical for us to write this software in our "spare time", like it has been suggested by some previous posters. I was moving from a job in SE Asia and I needed a real job to settle. And I have a family to support.

We had an initial fund of about 200.000 euros. Some of this money came from our manager's pocket. Some came from loans we had to take on our heads. The largest part was came from a public administration, a kind of bank that lends some money to startup, with no interests (sorry, I do not want to name this state-sponsored company here). They agreed to lend us about 120.000 euros, but eight months
later, they told us that it was "no longer possible" to comply with what they had promised.

It was not because our business plan or something in our product was wrong. Their refusal was purely for "bureaucratic" purposes: because a secretary somewhere "did not like us", because somebody went on leave at the wrong time and lost a letter, and so on... A kind of feary tale. The problem is that we had relied on them from the very beginning, and it proved to be a huge mistake.

During the dot-com era, it was much easier to start an IT company in France. Most of these startups were completely hollow and venture capitalists lost a lot of money. But we came later, and none of them wanted to finance a software
company any more, regardless of their products and business plans.

Being unable to continue to pay the salaries (about 1800 euros nett per person and per month), we all had to leave in may 2003, with only the manager staying in office. I had to find a day-job in Paris to pay the rent and support my
family. I am still working on our photo-modeler in my spare time. Even with the working hours here (40 hours/week), this is not so easy. Our product is fully working (still lacks more testing and documentation). It compiles and runs under both Windows using Visual and Linux using GCC. But we are not sure what is going to happen now. We cannot distribute it easily without any team behind to support
it. We are seriously thinking about selling it as a shareware. (Does somebody has another suggestion?)

Yes, if you want to have the best working environment possible, starting one's own company is probably the way to go. But it may not be practical, depending upon your family situation (eating potatoes for one year while the product matures may be fine for a young celibate...), and where you live. Maybe we should have moved to UK or US instead of relying on local state-sponsored structures to finance our startup.

F.P.
Tuesday, March 23, 2004

F.P. - sell it to a company with a complementary product line for whatever you can for seed money to start again with a new product?


Tuesday, March 23, 2004

F.P. - it sucks. I've had grants rejected, too. Several times. "Cut your hair and get yourselves real jobs" was was the grants chap told Trolltech.

You have two options: Income from consulting or income from angel investors (usually someone's aunt). Both options have disadvantages.

Arnt

Arnt Gulbrandsen
Thursday, March 25, 2004

*  Recent Topics

*  Fog Creek Home