I carry USD with me to exchange for KES. You get a better conversion with larger bills (I don't carry bills larger than a $50 USD and no older than 2009). Some may disagree, but I convert what I think I'll need, right at one of the exchangers at the airport on arrival. The airport website says you pay 2.5%, but when I exchanged currency last October, the rate I got at the airport vs what the banks were offering was only 4 KES difference on 100. I'm fine with that as it means I don't have to make an extra stop on my first day when I have a full schedule and am tired. I make sure they break it into some smaller bills and they seem happy to do so (my driver/guide has helped me with this after I've come out of the terminal with my luggage and before we go to the vehicle).
Personally, I don't like to use ATMs because they might be tempermental and/or limit what you can withdraw. Also when I use my debit card, I would get a bank fee. I also don't use a credit card while there because I am a little concerned on the security. I do however, carry a VISA credit card just in case of medical emergency, where you would have to up front costs. Thankfully have not had to use it.
When I've depleted my KES supply, I switch over to USD (which typically happens close to the end). I've asked my guide about receiving KES vs USD for his tip, and he happily accepts USD.
I also typically carry USD in the $1, $5, $10 and $20s so that when I do run out, I can pay in a bill close to the total amount. They won't give you change back in USD.
I find it handy to carry a credit card size currency converter (I print it out with conversions both ways so I have a close idea of the costs - and run it through a laminator). That way I can see if I'm getting a close conversion.
http://www.oanda.com/currency/travel-exchange-rates
Laurena