- Software rewrites are tempting but often more difficult than initially expected. It's better to write code that can coexist with existing software as an optional add-on.
- When using new systems or technologies, plan to build a "throwaway" version first since the best planning won't get it right the first time.
- For early-stage products, don't sink too much time and money into implementation until proving market viability. Build minimal throwaway proof-of-concept versions instead.
- Code is generally harder to read than write, so old code often seems like a "mess" even if it's not.