writing code is hard. building a successful product is harder, and is only sometimes a consequence of the code.