Software development—in brief A software development agreement is used where a customer engages a software developer to design, develop, test and (sometimes) install and maintain bespoke software. The growing adoption of artificial intelligence (AI) tools, including AI-assisted code generation, large language models and machine learning, has introduced new considerations around development methodology, intellectual property ownership and fee structures that practitioners should address in these agreements. Software development is often a key component of systems integration agreements as well. These agreements cover the acquisition, development and integration of an entire IT system including hardware and software. The software component of the system often involves the development of a significant proportion of bespoke or adapted software by the developer or integrator. In both cases, the payment mechanism used to determine what fees are payable by the customer (and when) is an important component which (along with other contract provisions such as the limits and exclusions of the developer’s liability for contract breach, the calculation of liquidated damages for late delivery by the developer, and the