I work in IT. I'm a programmer, so I'm one of those people who make products that need maintaining.
Why don't I build bug free stuff that needs no maintenance?
A couple of reasons:
1 - it's cheaper this way. To build and test software to the point where it doesn't have any bugs and needs no further maintenance cost a lot of time and effort. No one is willing to pay that sort of money any more. We have to build bug systems, with no budget, less time and more flexibility because the client changes their mind half way through the project. Or the environment changes, or they merge with another company etc etc etc. i.e. the real world intervenes.
2 - that leads into the second reason. The environment you deploy a system to isn't static. Things change, and you have to change the system to adapt to that change. Data doesn't always arrive in a perfect form and it needs to be massaged to fit. And then some idiot let's users interact with the system. Users do things in weird ways that the system wasn't designed to work in, so they break stuff. So the system has to be updated to account for the users.
We, as programmers, don't try to make buggy programs. We do try to make them as bug and maintenance free as possible. but the real wold just isn't like that.
What do you do for a living?
Have you ever had to repeat something, fix something up, change things because of someone or something else?
If you answered yes, then you know what it's like for us. ;-)