Introduction to Software Contracting: Things to Consider Part One