(As an aside - I wonder whether this more correctly reflects companies making people "salary" as a means to pay them less overall for working long hours. I've seen "salary" be given to people making less than 33k usd/year, pre-minimum wage increases. Might be a rarity on HN.)
My takeaway has been that these incentive schedules aren't properly implemented. Also, people get very toxic if they see others making more or less pay than themselves. Yearly bonuses based on global factors are nice, but probably are too far from what an individual adds to the business to properly impact their work effort. You want the worker doing marginal thinking with marginal incentives - i.e. the classic paying car salespeople a commission on each sale. This is clearly a more difficult calculation for the IT field.
One idea - pay the bonus per pay period. This addresses people sticking around for a once per year bonus and then quitting. It could be based on the last year's (or quarter's - depending on the business) figures, for instance. Maybe have it be known the full, remaining bonus will be paid out if the person leaves on great terms during the year. i.e. Absolutely no one in your department - not even the custodian staff - has a negative thing to say about your performance.
Another - rethink paying people salary. Salaried employees can be pushed to work OT. But if people can make 1.5x pay for doing demonstrably important work (say, presenting it during the next team meeting) then they'll naturally work those additional hours. It's up to the business to figure out the hourly pay rate correctly, of course. Also, pushing people to work OT as a standard practice generates lots of toxic behavior - another reason to not use that as a standard practice.
Another - pick a metric that definitively impacts your business and is easily measured and high visibility. Use that to determine the next pay period's bonus. i.e. "Everyone in the IT department gets a $300 bonus if system uptime is greater than 98% for the previous two weeks. The bonus decreases by 1% for every percent decrease in uptime from 98% over the preceding two weeks. i.e. you're getting (100%-18%) of the 300$ if the uptime was more like 80% the last two weeks.