software project assumptions examples