Custom software development is the process of designing, creating, deploying and maintaining software for a specific set of users, functions or organizations. In contrast to commercial off-the-shelf software (COTS), custom software development aims at a narrowly defined set of requirements. COTS targets a broad set of requirements, allowing it to be packaged and commercially marketed and distributed. Microsoft Office and Sitebuilder.com, for example, are packaged commercial software products and services. They meet the generalized needs of office productivity and website creation.