Old-fart analogue method: I used to use a cassette tape, record my voice counting off the desired intervals, and play it back in the darkroom. If you happen to have these stone-age devices, it's cheap and it works. No leaking light to worry about.
I use an ancient Time-O-Lite minute timer. It is surprisingly accurate for a mechanical device and can be used for dev, fix and wash. Counts from 1-60 minutes and buzzes at the end of the cycle. $5 at a garage sale.
For b&w film development, an old Gralab 300. I use the 'drift by' temperature method for some developers, like PMK Pyro and Harveys 777 that I find work best at higher then room temperatures, say around 24C.
If the darkroom and all gear are sitting at 18 or so (nice cool basement darkroom) I will set the timer at 10 minutes. Then I will pour the warmed (microwaved) developer into a 'cold' tank at 26C or so, and measure the temp after the first 15 seconds of agitaion. Then I adjust the timer to suit the temperture. I have a Kodak darkroom development dial calculator, from a mid 80's dataguide kit that is calibrated in 'Development Numbers'. So I know from experimental calibration, for example that 777 at higher than 22C, when the Glycin in it becomes active for FP4+ has a DN of 43.5 for contrasty subjects, and 45.5 for flatter subjects. Each development number gives a range of times versus temperatures. So figuring the time for a temp is quick with this dial calculator. A minute before the developer was scheduled to end, I check temperture again. If it is more than 1 or 2 C cooler, the Gralab is easy to adjust while it is running to add on the required time to suit the averaged temperture between start measurement and near end measurement.
For tray development of paper the gralab is also used.
For C-41 and E-6 film processing, when you are more a part of the machine when it comes to development, I have an old Vivitar Process Time Commander that I have rebuilt the power supply on to bring it back from the dead (All mid 70's to late 80's Vivitar timers share a power supply design defect. A Zener diode burns up with time, and then the voltage is out of range and they stop working. I have fixed about 4 of them with a mod to install a sinlge chip voltage regulator, and onsold them on the *Bay.)
The process time commander has 3 programs of 6 steps each that can have each step programmed to any time between 99 minutes and 1 second. Programs can advance from one step to the next automatically. They can also require a manual intervention to tell you to advance. In this mode the timer display stops counting down the time at the end of the step, and then starts counting up while sounding a warning tone, so you can figure out how late you are in moving the process along.
An audible tone can chirp a user defined period before the end of the step to allow you time to drain chems out before the next ones go in at the start of the next step. The programs can be linked together, which is handy for e-6, where, with rinses between bleach and fix, you are easily over 6 steps.
I will be sad when the Vivitar terminally dies. I do know what I will be programming the next device to act like though.