37 Signals is a successful start up company. They have a number of rapidly developed small products which they sell. I have read a white paper from them on the lessons they have learned from their experience with software development.
They recommend you keep projects very short. We are talking about the order of 2 weeks or so. They advise against project plans which are set in stone. 37 Signals does not believe in design documentation or functional specifications. That seems like a radical idea. They also tend to focus on what is real as opposed to abstract theories.
Regarding content, 37 Signals likes to focus on things that are constant. They want to solve problems which will be encountered for the next 10 years. They also believe in sharing ideas with the public so that others may learn. Here is an idea which is not new. 37 Signals believes that you should “question everything”. I could use that advice myself. Having programmed for many years, I carry a lot of baggage in the form of untested assumptions.
37 Signals believes that there is a time when you should give up on a problem which is hard. They also back the idea of working 32 hours a week instead of 40. When you think about it, that is not so radical when compared to the Tim Ferris 4 hour work week. In terms of timing, 37 Signals thinks you should release the best half of your application first.
According to this company, client work is depressing. I second that motion. You can work hard to solve a specific problem for a client. However in the end, all you get to do is charge for those hours. You are not building a cash cow. I would like to end on a funny perspective from 37 Signals. They have no formal training program. Their method is to just drop people in the pipeline and hope they figure things out.
A Little Bit of Crypto - I have been trying to figure out to "collision resistant" some of these standard hash functions are. It is a tough concept to get my head around. I figure...