Don't know about whether the person should be fired-- but this reminds me of a guy I used to work with. He was notorious for finishing his tasks slowly; and what he would do was, if given even a simple task, end up writing a huge module for it, that was, though modularized, full of crappy unnecessary code. It was kind of a weird stubborness in him. He refused to use existing utils/methods that other people had written as well; he would not improve existing utils or use them, he would just write his own arcane esoteric behemoths even to solve simple problems. It frustrated the hell out of me but he never seemed to draw the ire of the other developers on our team. I ended up leaving that company and discovered a few months later he was let go.