by Harper Mann

Tired Programmers

analysis
Jul 25, 20072 mins

I’ve picked up an interesting new book called The 4 Hour Work Week by Tim Ferriss. Aside from addressing the essential—yet rarely asked—question: what do you really want from life?, the book suggests that you can outsource parts of your life so you can be more efficient about delivering work results.

This has relevance to coders in a development group. I know some really good programmers who are tired. Really tired. They work at a start-up and service any and all requests from sales to fix customer problems. These requests arrive fast, furious, at random intervals and are basically one-off tasks that are customer specific.

While these tasks are great for staying “sticky” with the customers, scaling this kind of business is next to impossible. I’m sure this is always a trade-off in a product where the general cases are only so interesting to specific customers, but the custom work is just not scalable. It’s a staple for Open Source companies, because when the software is “free,” support services are often the most valuable product. So, how do you balance servicing customer requests directly but still capture general solutions that can be rolled into a product for general sale? Do you put your best programmers on the customer tasks or do you put them on the main product so you can evolve the foundation? How do you get the most bang?