Before given the explicit construction, I would like to know what SHOULD the descent data be. Or more precisely what are the properties that descent data must satisfy?
Zhen Lin's answer is, of course, correct, but it's a bit terse, so here is some elaboration.
Suppose $f : X \to Y$ is a map of sets and that you want to know a real-valued function $r : Y \to \mathbb{R}$. However, you aren't given $r$, but only its pullback $r \circ f : X \to \mathbb{R}$ along $f$. When can you always recover $r$ from this information, and how do you identify when such a function $s : X \to \mathbb{R}$ is a pullback along $f$? The answers, of course, are
- Iff $f$ is surjective, and
- Iff $s$ respects the equivalence relation on $X$ determined by $f$ (where $x_1 \sim x_2$ iff $f(x_1) = f(x_2)$).
This situation can be cast in more categorical language as follows. In a category with pullbacks, given a morphism $f : X \to Y$ we can take its kernel pair, which is the pullback $X \times_Y X$. In $\text{Set}$, this is
$$X \times_Y X = \{ (x_1, x_2) \in X^2 : f(x_1) = f(x_2) \}$$
and hence it, together with the two projection maps to $X$, exactly reproduces the equivalence relation on $X$ determined by $f$ alluded to above. The kernel pair is so named because it generalizes the kernel to nonabelian situations. In any case, a natural thing to try to do with the two projections $X \times_Y X \rightrightarrows X$ is to take their coequalizer. If $f : X \to Y$ is already this coequalizer, $f$ is said to be an effective epimorphism. Our discussion for $\text{Set}$ says that every epimorphism of sets is effective.
The significance of effective epimorphisms is that the following version of descent holds for them: suppose $F$ is a contravariant functor from the ambient category to some other category which sends coequalizers to equalizers (in particular, any representable presheaf). Then $F(Y)$ is the equalizer of the pair of maps
$$F(X) \rightrightarrows F(X \times_Y X)$$
given by applying $F$ to the kernel pair projections. Our discussion for $\text{Set}$ says precisely this for the special case $F(-) = \text{Hom}(-, \mathbb{R})$.
Descent is the higher version of this story where the kernel pair is replaced by the Cech complex and $F$ takes values in a higher category. The reason it is not just a formal exercise involving functors which send homotopy colimits to homotopy limits is that one needs to identify, in a given higher category, which morphisms are effective in the relevant sense.