Comment Open source it the second time around (Score 3, Insightful) 167
The first time you implement something, you don't know there's a market for it. You write something that is very specific to your customer's needs.
The second time you are asked to implement it, you have a known demand, and you have a chance to resurrect the old code and make it better suited to a wider variety of uses. You can charge the second customer the amount it would take to implement from scratch, and use that time to clean up and prepare your previous work for their purpose and for general audiences.