Private Static Method in a Class

 
When I'm writing a class, most methods fall into two categories:
  • Methods that change the current instance's state.
  • Helper methods that don't change the current object's state, but help me compute values I need elsewhere.
Static methods are useful, because just by looking at its signature, you know that the calling it doesn't use or modify the current instance's state.
Take this example:
public class Library
{
    private static Book findBook(List<Book> books, string title)
    {
        // code goes here
    }
}
If an instance of library's state ever gets screwed up, and I'm trying to figure out why, I can rule out findBook as the culprit, just from its signature.
I try to communicate as much as I can with a method or function's signature, and this is an excellent way to do that.