For clarity, "pushing" and "pulling" refer only to modifications of your development time. The reason that one decides to modify the development time is that one wants to modify the contrast of the film.

A "push" development increases the contrast. It also tends to push the area of the curve near the toe up into the straight part of the curve. By doing this, we make flat subjects appear more contrasty. We also improve slightly the appearance of the shadows and near shadows in films that have been underexposed. A "push" development is often used when we are forced to underexpose film (i.e. meter using a higher than box speed EI). For negative film, a "push" development gives little or no improvement to the underexposed shadows. It may help though with shadows on transparency film.

A "pull" development decreases the contrast. It also tends to push the area of the curve near the shoulder down into the straight part of the curve. By doing this, we make contrasty subjects appear less contrasty. We also improve slightly the appearance of the highlights and near highlights in films that have been overexposed. A "pull" development is often used when we are forced to overexpose film (i.e. meter using a lower than box speed EI). Most negative film has a lot of latitude for over-exposure, but even so a "pull" development may make it easier to print over-exposed highlights. For transparency film, a "pull" development may be very helpful with overexposed highlights.

C41 negative films tend to decrease graininess when you overexpose them. Other films tend to increase their graininess when you depart from the recommended development.