Automatical % Done regarding to Spent Time / Estimated Time
It seems, % Done could be calculated using two fields: Spent Time and Estimated Time.
Currently developer changes % Done himself, but what is considered as, for example, 50% Done? Does it mean, that there is written 50% of code lines to fix it, or spent 50% of estimated time, or developer just found solution, and "task is half-solved, when there is solution found"?
So, to resolve the ambiguity, and to not to make developer do excess actions, I suggest just calculate % Done as relation of Spent Time to Estimated Time.