Software contract agreements :drafting and negotiating techniques and precedents : a specially commissioned report