The SLAR recommends ditching the boolean in favor of an enumeration: Authorization("foo", AuthorizationCompletion.Pending) Authorization("foo", AuthorizationCompletion.Finished) Voil. Self-documenting code. If you're not careful, boolean parameters become magic numbers . Avoiding boolean parameters isn't a new idea, of course; similar advice is dispensed by C++ guru Herb Sutter in this 2002 C++ User's Journal