Two important lessons you learn as a programmer:

1. Decisions grow on trees, and if you ignore any branch, somebody is almost guaranteed to end up regretting it.

2. Customers, project managers etc. are completely ignorant of the fact that decisions grow on trees.