Great software projects are never finished; instead they always evolve and improved similarly to living organisms and unsimilar to material things.
I completely disagree with your analogy to a carpenter who builds a chair, this metaphor is wrong and responsible for a lot of misunderstandings when it comes to software development.