One of the resounding concepts in Refactoring is that whenever you can break apart a section of code into smaller, more informative units, you should. Essentially, the method above takes a Project object along with a couple of parameters and determines what rate should be charged.

The two rate calculations are dependent on the outcome of the conditional. Since the conditional is made up of two items, it may make more sense to refactor it into its own method with a descriptive name.

While we are at it, we can move the two rate calculations into their own methods.