Ideally, yes. But software development is a new field and thus far no one has come up with a reliable way to measure throughout. This is related to why estimating is so hard, we don't know how to determine how hard a task will be before we start it, and once we finish it, we don't know how to determine objectively if it was done as efficiently as possible. Each task is different, and when something goes wrong or takes longer than expected it's hard to tell if the reason is incompetence or actual difficulties.