Developers deliver kludged, hacked up, cowboy code.
Maintenance programmers fix the bugs in that code and should also be able to make it easier to maintain.
I managed both development and maintenance teams and I was a maintenance programmer at heart from the first code I took over in the early 1980s.
The original rule was no one can touch the program INVTUP. After they grew confident in my abilities, they let me make a series of changes to the program that didn't change functionality but which did improve legibility and maintainability. It took about 15 months but at the end I'd reduced the program from over 30,000 lines of ill documented spaghetti code to about 12,000 lines of well documented, well structured code which was trivial for any programmer to maintain..
In many cases, I've helped other programmers debug their programs- often merely by having them change the variable names to be more descriptive. Likewise, using eclipse refactoring tools to extract subroutines can turn a block of hundreds of lines of code into a dozen subroutines and a block of code that each fits on one screen.
Once SOX came in, you could no longer do this kind of code improvement during downtime. Instead, you did nothing until something was approved. And in some cases, it was literally over a week of sitting doing nothing because you couldn't even check out the code without an approved ticket or project. And once things were approved, then you could start. And sometimes, they'd spent so long approving it, that you were very close to the point release date.