Enterprise Software Development: Commissioning the Developer
We are living in a time of extraordinary human evolution. The onward march of technology is transforming our lives at a fascinating rate of change never before experienced in our history. At the beginning of the last century the idea that we would one day fly was laughable. Before the end of the century we had astronauts prancing around on the moon and surgeons operating on patients from across the planet assisted by remote controlled robots. This writer recently presented at a tech law conference in Europe where he witnessed the demonstration of a 3D photocopier. In a matter of seconds the machine reproduced a perfect 3D color replica of a large toy car. On the final evening of the conference a few of the delegates attended a night club that processes the parking, admission and bar service of its VIP guests using scanner technology that speaks to tiny RFID chips surgically implanted into the arms of its VIP account holders. This year saw the world’s first infection of a human being by a computer virus. This occurred when the virus uploaded itself from lab computer to the patient’s bionic implant causing the implant to malfunction. These extraordinary examples demonstrate the radical extent to which technology is changing the face of our world and our roles within it.
From an entrepreneurial perspective, the tech revolution has transformed our commercial landscapes and has rendered many of our traditional business models obsolete. Once upon a time wealth and power were a function of ownership of natural resources. The world’s new business juggernauts are purveyors of information and data communication tools. It is therefore unsurprising that telecoms tycoon Carlos Slim and software magnate Bill Gates consistently top Forbes’ annual list of the world’s richest people and that the world’s youngest billionaire owes his fortune to Facebook.
This latest period of human development is being powered in large part by revolutionary developments in information technology the most notable of which being of course the Internet. Todays’ progressive businesses recognize that they must strategically incorporate such technology into their business models in order to achieve or maintain competitive positions within their markets and to remain relevant going forward. In this regard, an increasingly common capital investment is the commissioning of bespoke software designed to streamline and automate internal and/or external processes with a view to improving operational efficiency. Such software projects are becoming more popular in the Jamaican context as both public and private sector entities realize the potential of technology to support and drive their development. There a number of important factors that will determine the return on investment associated with any software project. This note briefly addresses the most fundamental of these factors: the software development agreement.
The Agreement.
For the vast majority of businesses who seek to procure bespoke enterprise software, development of such software falls well outside of their core competence. Accordingly, the decision to invest in the development of software is usually progressed by way of an agreement with a software consultancy for the development of the required solution. As with the engagement of any service provider, the terms upon which the provider is engaged are vitally important. The importance to the commissioning business of getting the agreement right is amplified by the typically high cost and technical complexity of the project. The absence of a skillfully negotiated and suitably comprehensive development agreement invariably results in costly, and sometimes catastrophic, difficulties for both the software developer and the commissioning business. Some of the more important matters to be addressed in any development agreement are as follows.
Scope
The development agreement must precisely define the scope of the engagement clearly noting the business’ requirements and expectations as they relate to the end product. Relevant provisions should unambiguously identify the parameters of the system to be delivered by the developer and paid for by the business. It is very much in the developer’s interests to ensure that the project is properly scoped as this approach helps to address the common scenario in which the business’ requirements change during the course of the project (they always do!). In the absence of contractual provisions properly defining the scope of the engagement, where requirements change developers often find themselves in the difficult position of having to either render additional services without further charge (which of course erodes their profitability) or refuse to do so exposing themselves to claims for breach of contract. This writer’s preferred approach to project scoping is to group software deliverables into phases or milestones. In this way, the project is broken up into several stages each of which sees tangible delivery to the business of a functional (and useful) component of the system. This approach reduces the risk to the business of unsatisfactory delivery at the very end of the project. It also reduces the risk to the developer of changing business requirements and claims of non-performance at the project’s end. If this method is to be adopted it must be properly reflected in the development agreement.
Acceptance Tests/Criteria
Any sensibly drafted development agreement should include acceptance tests as an important part of the software specification schedule. Acceptance tests will define the standards that each component of the system will be required to meet before the business becomes obligated to accept and pay for it. For example, one basic acceptance test that any e commerce website should be required to meet is that the site be satisfactorily capable of facilitating an electronic transaction. Relevant deliverables would include customer account creation and login functionality, product and service listing and browsing, checkout and payment capabilities. If e commerce functionality is properly included within the project’s scope, by carefully defining and applying relevant acceptance criteria the business is able to ensure that it gets what it is paying for by correlating its payment obligations with the acceptance criteria. A properly advised developer will insist on including deemed acceptance provisions. Such provisions generally operate to presume acceptance and trigger payment obligations in the absence of objection by the business within a prescribed period.
Ownership
In the absence of express agreement to the contrary, the relevant intellectual property law of most Jurisdictions (including Jamaica) generally attributes ownership of software to the individual or individuals who created it. In most cases this is of course the developer irrespective of who actually paid for the development. One exception to this rule is where the software was developed during the course of employment in which case the employer is the first owner. The other exception is where the developer expressly transfers the copyright by way of effective assignment to another party. The ownership provisions of the development agreement are therefore vitally important, particularly if the business is commissioning the software for its own exclusive use in pursuit of a competitive advantage. In the absence of properly drafted assignment provisions a business which has paid for custom designed software is likely to find itself being unable to prevent subsequent distribution of the software to its competitors by the developer. The case of Paymaster V Grace Kennedy Remittance Services serves as an unfortunate and very expensive example of the potentially devastating consequences for a business where its software ownership and control expectations are not effectively confirmed in the development agreement.
Due to constraints of space this note has addressed only 3 of the important issues to be addressed in a software development agreement. However, software development is a complicated business and there are many other issues that must be carefully considered by a business prior to embarking upon a development project. A skillfully negotiated development agreement is essential to protecting what in most cases will be a very substantial investment. The importance of engaging the assistance of a suitably qualified technology lawyer to negotiate the development and related agreements cannot be overstated.
Profile:
Randolph Cheeks Jr. is the founding partner of the Kingston based business law firm Cheeks & Co. He is a dual qualified commercial lawyer admitted to practice in the jurisdictions of Jamaica and England & Wales. He is an internationally experienced software & technology lawyer and project management consultant with particular expertise in agile methodologies. Mr. Cheeks is currently involved with a number of commercial technology projects as legal counsel and management consultant. A keen supporter of Jamaican sports and music, he represents popular sports and entertainment personalities both locally abroad. He sits on the distinguished board of the Commonwealth Boxing Council. www.cheeks-co.com, E: rcheeks@cheeks-co.com, Twitter: @CheeksCo.