How to use agile development to avoid project failures