how to choose programmatic tools