IDO is 100% necessary for decent code navigation in emacs, but it's also worth trying textmate.el (http://github.com/defunkt/textmate.el), PeepOpen (http://peepcode.com/products/peepopen), or my fuzzy-find-in-project (http://github.com/justinweiss/fuzzy-find-in-project) for something like, but more flexible than, TextMate's command-T functionality.