Custom Software Overview
Read the information on this page if you want an outside entity to develop custom software for UCSD.
Custom software is created by a developer using specifications you provide. It is not an off-the-shelf software program sold to any customer willing to buy it.
You can contract with an outside programmer to:
- Create original software
- Customize existing software
Custom software contracts involve both goods and services. Because of the complexity of these contracts:
- Consult the Business Contracts officer in Procurement & Contracts before you negotiate contract terms and conditions.
- Do not sign letters of intent or other written understandings because they are enforceable as contracts even if signed by people who have no authority to commit funds.
- Be aware of the UC policy on developing or purchasing computer applications. See Standards for Developing and Maintaining Computer Applications for more informaion.
Examples of issues to consider and discuss with the Business Contracts officer when considering the acquisition of custom software:
- Vendor selection:
- Should Business Contracts issue a Request for Proposals (RFP) or otherwise solicit bids?
- Can you justify a sole source without competition?
- How urgent and unique are your needs?
- Have one or more vendors made presentations to you or your staff?
- Statement of Work: Before Business Contracts can issue a purchase order or contract, you must clearly define the services and deliverables. For example:
- Services: Specify the services such as installation, training, support, and maintenance, and what your expectations are for each.
- Goods: Specify deliverables including software object code, source code, documentation, manuals.
- When: Specify the schedule of milestones of performance.
-
Who: Identify key personnel for each party, especially when you are hiring a company but you want a particular programmer.
- Cost and price: The higher the cost, the more important it is to break it down into components to minimize taxes (goods are taxable, services usually are not) and to develop a payment schedule. For example:
- Cost: Itemize and include standard of measurement used such as hourly rates, unit costs.
- Warranty: Is it included in the cost?
- Maintenance: Is it offered? Is it included in the cost? If so, for how long?
- Number of sites/ users: How many will be using the program?
-
Price protection: Include price protection for additional users or future maintenance periods.
- Timing of performance and payment: If the work can be broken into phases or steps, payment can be negotiated based on completion of such milestones. For instance:
- Design and development
- Installation and beta testing
- Acceptance testing, training, documentation
-
Warranty and maintenance period
- Other key issues: Some of the other issues to discuss with the Business Contracts officer are:
- Who owns the software? Will you get a license to use the software or own it outright?
- Rights of any third parties: Are there additional licenses needed in order to use the software?
- Acceptance testing: Decide what criteria, specifications, and procedures will determine if the software does what you want BEFORE you pay for it.
- Performance specifications: Decide on criteria for response time, downtime, error rate, hardware requirements.
- Mission creep: Plan for your needs to change, and include processes to change requirements and price.
- Warranty and maintenance: Determine what coverage options, costs, and renewals are acceptable.