I've just been reading in "Pragmatic Programmer" about design by contract. The guys mention icontract as how Java programmers can implement DBC like Eiffel programmers. Does anyone really use icontract in your project? Is it a precursor to the xp process of writing unit tests before code? Julia