I specialize in learning things extremely quickly, and coming up with simple elegant solutions to various problems. If you don't understand what I did or why I did it, than it is clearly neither simple nor elegant on my part.
I can and have on several occasions, accomplished something in days that someone else struggled with for a month.
I may whine about bad code, but I'd do so with a sparkle in my eye and a grin on my face, because there's absolutely nothing I enjoy more than making sense of things that make no sense.
If I were on your project, you would notice the code base slowly become easier to understand. The program would speed up dramatically. And every now and than, I would present you with a radical new feature that you either though wasn't possible, or you hadn't thought of at all, but you would certainly agree is the coolest thing ever.
I work well with just about everyone. I think its my job to make lives easier, not harder, so if I come up with a solution that requires you do something, I'll talk to you about it, and I'll feel super guilty about adding work to your load.
So, to the question, should you do whatever you can to keep me, even if I'm being a bad employee?
NO.
If I'm doing those things, than it means the challange has run out for me, and unfortunetely at that point I'm pretty much useless.
It happens. Especially as companies grow up. People like me tend to thrive in start up companies, where there's a ton of things that need to be done, new skills that need to be learned, and not enough people to do it all. Eventually that wears out. Most of the challenges have been finished, theres a large enough team that you don't have to learn new skills anymore, and maintenance tasks start having higher priorities over the interesting things. And once you get to the point where my strengths are no longer needed, the only thing left will be my weaknesses.
Easy or mundane tasks take me weeks to complete. My desire to be challenged and my desire to make things easier will be at odds with each other, and I'll continue to procrastinate even more.
I'm very undisciplined. I have poor time management skills.
I get restless when I'm not being challenged, and that could lead to disruptive behavior.
Its sad, since its such a strong contrast from before. And since I've been so helpful with everyone, than its hard not to think that it'd be worth doing anything to keep me on. I was extremely useful before, and maybe one day I would be again.
But the truth is nothing else will motivate me. Money, promotions, respect, fame, power, loyalty, even friends. None of that will get me back to the great employee you knew me as.
The challenges have run out. My skills are no longer neccessary. Its time to let me go.