PIC12F509 Switch Debouncing On Press Release Or Both?
Mechanical switches bounce on both transitions.  The bouncing on opening is usually shorter than on closing, but can certainly happen.

I generally use 50 ms debounce time in both directions.  A long time ago, I tested a bunch of pushbuttons.  Most stop bouncing in 10-15 ms, but some took much longer, like 40 ms.  I settled on 50 ms since that seemed to be long enough to be safe with just about any switch unless you deliberately try to keep it at the transition.  I also did some testing on human delay perception, and concluded that 50 ms was about the limit you can get away with without the delay being noticed, unless perhaps someone is specifically looking for it.

Most microcontroller projects have a 1 ms periodic interrupt for other reasons anyway, so I usually add debouncing code to that.  I keep a counter and a global flag for each switch.  The flag indicates the current debounced state of the switch, which is what all the application code uses as the switch state.  The counter is private to the interrupt routine.  It is set to 50 whenever the actual switch state matches the debounced state, and decremented by 1 when they differ.  When the counter reaches 0, the switch becomes officially debounced in the new state, and of course the counter is reset to 50 since now the switch and the debounced state agree.

I have used this basic approach in many microcontroller projects, and haven't had any trouble with bouncing buttons or users complaining (or even noticing) the 50 ms delay.