A programmer who works on a fixed-length or temporary contract, and is often employed to write certain types of code or to work on a specific project. Despite the fact that contractors usually cost more than hiring a permanent employee with the same skills, it is common for organisations to employ them for extended periods, sometimes renewing their contracts for many years, due to lack of certainty about the future or simple lack of planning. A contract programmer may be independent or they may work in a supplier's professional services department, providing consultancy and programming services for the supplier's products.