- The ideas in your last paragraphs are more important and bigger than just writing code. I'm going to make a few minor adjustments to your wording and arrangement:
- You don't craft something that lasts using clear, well-built components and including clear documentation for yourself. You write it for the person who takes over the job from you; think maintainability and not quick deployment.
- Your product is not the visible, short-term, immediate outcome — your product is a mix of technologies fit for the purpose on hand to deliver a great experience for the end users.
- This idea is about design and craftsmanship — designing things that don't waste the time or energy of anyone, from yourself to whoever inherits the maintenance of what you've built, whether it's an object or a system. Taking the time to do it well enough so a future person can update what needs to be updated and not need to fiddle with anything else is a statement that you are a craftsman who builds things good enough to last. You value your work and respect the maintenance staff, clients, and users enough to not demand extra time and resources later for something you can put the time and resources into now. The up-front investment in craftsmanship is far cheaper than the sometimes invisible theft of ongoing friction and the very noticeable, disruptive, and expensive cost of starting from scratch in the future.
- You can have a messy, ugly, tangled inside if the product is short-term and disposable — look at everything that Wal-Mart sells. But if it's not any harder or more costly to have well-crafted innards for something that will last then there is no reason to do anything but make well-crafted innards and something that will last.