Write a Test Before Disabling Code

Today’s short idea is: before you hardcode a value or comment something out for debugging purposes, write a test that ensures that you change it back. This way you break the build if you commit the change.

The thought here is that if the functionality is actually important, there should probably be a test for it.

Read on →

Increasing Cashflow in a Software Consultancy

Here are some basic thoughts on improving cash flow on successful projects, which should be applicable to many freelancers / contractors / consultants.

Possible current problems

Payment latency

Invoicing is generally kind of a pain because you have several gates to get through in order to get paid. You could be looking at the following situation if your company has net-thirty payments:

  • Work done on day 1
  • Company policy is to bill the client every thirty days, so we send the invoice for days 1-30 on day 31
  • Our invoice is on net-30 terms, which means the client has thirty days to pay the invoice (day 61)
  • We notice the invoice has not been paid on day 65 and send an email reminder
  • The client promptly sends a check via snail mail. We receive it three days later (day 68)
  • We deposit the check on our weekly bank run (day 70)

So with these policies and delays, we could easily be looking at seventy days between when we do work and when we get paid. One issue with this is that it gives us a slower feedback cycle on the work that we are doing.

Startups considered harmful to cashflow?

I’ve heard something along the lines of this story a couple of times:

We started work with [startup X] in April and things were going well. They paid on time and were generally a pleasure to work with. Then they started falling behind on payments, but they assured us that payments were just around the corner. Finally we had to cut them off because they were avoiding us, but unfortunately we have a couple of months worth of unpaid bills on the project. Now they are saying that unless they launch soon with a few more features, they won’t be able to get more funding, and won’t be able to pay us.

Read on →

Collecting Fees with Intuit Payment Network

Alternate title for this post: “So the check does not need to be in the mail.”

Today I will share a low-cost tool that helps consulting clients pay more quickly. This can help you get paid faster, which increases cashflow and makes your business less risky.

The Good

I think Eliza introduced me to Intuit Payment Network (IPN).

IPN charges $0.50 (fifty cents) per payment that is sent on their system. The nice thing is that this is done electronically, and payments generally show up in your bank account within a day of being sent.

I find the flat cost to be preferable to other payment solutions which take a percentage of the payment. For example, if you have a $2500 payment that goes through a payment processor that charges 1% per transaction, it would cost $25 to send that payment. I think one percent is on the low end of transaction costs, so it seems desirable to use the fixed cost.

Read on →

Randomizing Writing Topics

I came up with a quick hack today that I think is useful, so wanted to share it while it was fresh in my mind.

I have a fairly long list of ideas for blog posts, which I refer to when considering what to write next. My typical workflow has been to run through them and see which one I think is the best or that I feel the most strongly about at the moment, and then start writing about it. However, in practice, I run through the list and at some point either give up or lose enough focus that I stop wanting to write.

Read on →