For certain purposes (see below) one uses bounded-below (Xn = 0 for n << 0), bounded-above (Xn = 0 for n >> 0) or bounded (Xn = 0 for |n| >> 0) complexes instead of unbounded ones.
Composition of morphisms, i.e. roofs, in the derived category is accomplished by finding a third roof on top of the two roofs to be composed.