Just Do It

April 3, 2007

Nike has it right.  Just. Do. It.

I’m embarking on a new venture.  My first partner has worked out so well that I am going to seek out one partner per week, every week this quarter.  If I can get to 12 partners, with enough work to give each of them, then I’ll really be onto something.  I have proven that I can acquire more work than I can do myself, so now I am going to see if I can acquire more work than I can effectively communicate to 12 partners, and that they can complete.

Because building a business is about building a system, I am going to be implementing or finding a solution for all of the following:

  1. Centralized source code control
  2. Centralized project resources (all information about a project available in one web based repository)
  3. Automated notification emails for #2, 4
  4. Streamlined partner payment processing.
  5. Streamlined bidding (partner specific)
  6. Expanded bidding targets; diversification of project types
  7. Knowledge base, including an existing code base
  8. Collaborative assistance between the various partners

Last month, I had one partner working with me and he grossed $2,000, on which I made $563.21.  Assuming I can maintain a 25% margin on each partner, I would need to acquire about $30,000 in work per month.  I have $30,900 worth of work stacked up as of this moment, so I don’t anticipate that being a problem, particularly if the partners allow me to diversify the projects that I can bid.

Now. Just. Do. It.

Read The E-Myth

April 3, 2007

I read this book, and I highly recommend it.  At the very least, you’ll get another perspective on running a business.

For programmers, I feel the book is especially good because it caters to our natural intentions — creating a system to handle complexity.  The strongest point of the book is that you should create a system to handle your business.  You are selling that system, both to your customers and to people who would acquire your business.  It also covers some common mistakes.  For those reasons it’s worth the two evenings it’ll take you to read it.

March Earnings

April 3, 2007

Net earnings:   $8,236.01

Net Earnings from Guru.com:    $ 2,360.00

Percentage thru Guru.com:   28.7%

Gross Earnings:    $ 9,782.80

YTD Gross:      $25,382.64

YTD Net:         $23,025.85

———————

Analysis:

This is a decent earnings month.  I netted enough to pay the bills, and had a decent gross as well.  I am trying to setup some more relationships with external contractors so that I can get more of the work I have done faster, and also bid more work.  There are literally hundreds of jobs per week that I am letting slip through my grasp.

The Guru.com percentage is artificially low because a lot of my revenue came from 3 clients that were each directed to me by people I know.   I would expect it to be closer to the 80% range most months.

———————

Notes on previous months:

In February, the net was $3,786.25, but the gross was actually $200 higher.  Not a big correction, but the difference between gross and net is worth tracking.

In January, the new was $11,003.59, but the gross was$11,613.59.  Again, not a large correction, but worth noting.

With these things in mind, because I added a partner in March, it appears as though my gross is growing, but faster than my net, which is to be expected.  I am curious how much work I can do (gross) and how much of that money I can keep (net).

Help Calms

March 7, 2007

Having help is an incredible thing.  If you know that you aren’t the only one who can do something, or that will do something for your business, it is an incredible relief.  It’s backup when you need it the most.  If you own your own business then you should look into getting some backup help as soon as possible.  You can get it in either your core competency, or in something you just hate doing.  Make sure you manage the people who are helping you, but try not to get in their way either.  I am finding subcontracting to others to be the best thing I have done for my business in the year that I have been working on my own.

If you want to be the CEO, then you have to have employees, or at least business relationships with other contractors and businesses to fulfill the needs of your customers.

Another thing I learned this week:  always do a follow up.  If you bid a job for somebody make sure you are doing some kind of follow up with them.  They may not pick you for this contract, but they are going to remember the level of service you deliver.  In my case, I locked in two contracts that were in question by making sure that I did adequate follow ups.

February Stats

March 4, 2007

Per Job Income: $ 1,328.75

Total Income: $3,786.25

Refunds: $0

Job Completed: 3

% of Jobs from online sites: 100%

February was a great month for big projects and progress. It was a horrible month for collecting money because of those big projects that are not yet done. I am expecting March to be significantly better than this because of the effort I made on projects I’m going to get paid for in March. I have ~$7,500 worth of projects that are incomplete, but that I will get paid on in March. This month is bittersweet; long hours and late nights characterize this month, but not a lot of money collected. It’s kind of depressing, so I am concentrating on how much I am going to make in March to cheer me up.

January Stats (belated)

March 4, 2007

Per Job Earnings: $1,935.60

Total Earnings: $11,313.59

Refunds: $300

Jobs: 6

% of Earnings found through online contracting sites: ~73%

All in all, I consider this to be a good month. It’s not my best ever, but it’s a really strong month to start the year and puts me in a good position from a cash flow perspective.

I been giving this question a lot of thought: “What makes an entrepreneur different from an employee?” In my not so humble opinion it’s only two things, money and cast iron balls. The entrepreneur has some amount of each, in fact everyone has some amount of each. It seems these things are multiplicative, you can be successful if you have a lot of money, or if you have a lot of balls. It’s good to have a lot of both. I believe there is a threshold above which entrepreneurs operate. Employees simply don’t have the required combination of balls and money. It’s a simple equation.
(Balls)*(Money) >= Threshold

On a related tangent, I believe that this threshold can change, and that people can change. Someone who might start out an employee can become an entrepreneur later in life, or even do so concurrently in different parts of their lives (hence all the microISVs out there).

With this formula in mind, the implication is that anyone can be an entrepreneur, even the very poor, as long as they are willing to take risks. Also, it implies that you can grow your risk tolerance, possibly through taking more and more risk as you get bigger and bigger opportunities. It seems the people who would be best at attacking this problem through sheer balls would be the people who have the least amount to lose, or basically people who have just graduated from college and have yet take on large fiscal responsibilities, as suggested by Paul Graham.

Long story short, Nike was right, Just Do It.

How to Develop Code Faster

February 28, 2007

First, we’re not really looking to develop “code” faster.  What we really want is to develop a “product” faster.  There is a big difference.  Largely that difference is that someone will buy a product, and they won’t necessarily buy code.  My goal is to maximize the amount of money I make compared to the effort it takes to produce it.  We’re looking for a local maximum in the relationship between the earnings curve and the effort curve.  Here’s the List so far:

  1. Get rid of Not Invented Here syndrome.  This is important.  Other people are out there writing code; some of them are even good at it.  They, too, are trying to sell a product.  If you have a common task, there is some code out there that will help you complete that task.  Basically, if you are building someone a CRUD app, then there is some code out there to help you.  Most people think it’s easier to write things from scratch than to use someone else’s code.  Please believe me when I say that you are flat out wrong for anything more than a trivial case.  Purchased applications have already been tested.  They have phantom unit tests (hopefully!) of which you are not aware.  Also, the code is being sold at a fraction of the cost that it takes to produce, because they are selling more copies they can afford to lower the price per unit when compared to the production costs.  It takes less time and resources to learn some 3rd party control than it does to implement that control yourself.  Yes, the control costs $450 or whatever, but you can pass that cost onto the customer, and they’ll be glad you do because you didn’t spend hundreds (thousands?) of hours implementing something that you could have bought for $450 and had working in your application in 2 hours.
  2. Learn the customer’s business.  This helps in two powerful ways. First, if you know their business you can speak to them in terms that they’ll understand.  They can speak to you in their own terms.  The removal of that communication barrier is a fantastic improvement to productivity.  You know what they want, even if they haven’t said it.  Second, in knowing their business, you know what they don’t need.  We think we are programmers, but we really should be sculptors.  Sculptors remove from a project until the project is perfect.  So too should we.  You can save yourself a lot of work, the customer a lot of money and both of you a lot of time by simply removing that which is not necessary.  This is the fastest way to get a particular feature completed, simply don’t do it.  Bam!  That’s off the list of things to do now.  Knowing the business is key to being able to make those judgment calls.  Stop doing unnecessary work.
  3. Code to a product.  Make your project meet the minimum standard that will fulfill the job that it will be used for. Coding to a product gives you a goal.  Goal galvanize great programmers to finish.  Measure your progress.  Do this only for yourself, doing it for anyone else is a waste of time because it is then subject to “gaming.”  The measurement can only be honest if you are doing it as a self imposed measure.  Pick a metric that gets you coding to a product.
  4. Rest.  Sleep.  Vacation.  Take two months off once you have put out that product that took 8 months to create.  Exercise.  Make sure you are taking care of your body.

That’s all I have folks.  The more I think about it, the more I realize that the best way to get something done isn’t in a framework or a programming language or an operating system (though these things help), it’s a social exercise between you and your customer.  This is why dog-fooding your own product works, because you are then your own customer.

No Sleep ‘Til Brooklyn

February 28, 2007

I’ve only slept 3.5 hours out of the last 60.  That’s probably not good, right?  I am so tired, that I am now not even tired anymore.  I am just in a state of permanent zombie.  Coding in this state is another thing altogether.  I do not recommend it.  I do not recommend over bidding all kinds of work because you think you aren’t going to get it all — Murphy’s law says you will get it all, and then you’ll spend two months trying to dig through the avalanche of work you have to complete.  The side effect is you make good money, and you don’t spend much money, because you are always working.  Another issue is that people don’t understand what you mean when they ask you “so, what have you been doing?” and you respond “working.”  Normal people work 40 hours per week, hate their jobs,  and go home to do the things they are really interested in.

That’s the problem with programming.  I’m interested in it.  I don’t just stop coding, reading and learning about programming because the workday ends.  If you’re reading this, it’s highly likely that you have the same problem that I do.  Have you ever read your way to the bottom of the programming.reddit.com page, and then thought to yourself “crap, now I have to wait until tomorrow to read more.”  I’ve never programmed in Haskell (even for fun) and I have read at least 5 articles on monads.  Don’t even get me started on currying, or y-combinators — I’m reading that stuff everyday.

Thing is, I think everybody else is slacking.  The truly driven people don’t really need to be even exceptional at what they do because everybody else is so poor at it.

End of the Month

February 26, 2007

As a street walker contractor the end of the month is a very important and stressful time.  I spend much of it either trying to finish projects that are close to completion or following up on projects that are complete and need to be collected on.  Normally, I don’t have too much of a collection problem.  I either use an escrow account, or I get half up front which normally covers the cost of actually doing the project.  I find that the biggest factor in not having a collection problem is actually getting the customer something that solves their problem.  If their problem is getting solved, generally they are more than willing to pay you right then.  If you have solved their previous problem they now consider you a valuable “problem fixing” machine, and they want to make sure you are on board with them.  I’ve never had trouble with payment when I can demonstrate that I have solved their problem.

This month is completely off balance, because I have a very large project due on the 28th.  I’ve only collected ~$4,000 this month because I’ve been busy with this large project, which is worth ~$7,300.  I have another project that I want to finish in the next 48 hours as well that is worth $3,400.  Assuming I get these projects done and I get paid, February will obviously be a very good month.  If I don’t then February doesn’t look good at all, but I would expect March to look ridiculously good.  I would rather have two pretty good months than one bad one and one ridiculously good one.   So on this Monday I am up early after only sleeping about 3 hours so that I can grind away at my projects.  The mortgage is due; wish me luck.

P.S. Am I the only one having issues with Firefox today?  I got an update for it last night and now the damn thing is freezing on me and stalling on trying to load pages.  It’s very annoying when you need to get something done.  Normally, I have no trouble with their releases, so I am a bit surprised.  If they were dog-fooding their stuff they would find this problem in maybe 5 minutes, although determining the cause is likely much more difficult and time consuming.

Follow

Get every new post delivered to your Inbox.