How to make technical choices

If you’re working for yourself, in which case do whatever your little heart desires, but if you’re building something for a client then your primary concern should be making ethical technical choices.

**When someone else is paying you to code, your responsibility to them is foremost to create the most value possible for their cash investment. **

Time and time again, I see developers making technical choices that go against the following principles, and while they may not deliberately set out to be un-ethical, and can often make elaborate justifications, the net result is ultimately a question of ethics.

Ask yourself:

Or you could turn these questions on their head and make statements. Working for a client is not: