Join over 3 million cybersecurity professionals advancing their career
Sign up with
Required fields are marked with an *
Already have an account? Sign In »
8 hours 10 minutes
Hi, I'm Matthew Clark, and this is less than 2.8 contracts.
In this lesson, we will first establish that I'm mellow lawyer.
And then after that, we'll discuss why we need contracts.
We will review the parts of a contract, and we'll talk about why all this actually matters. So let's get started.
Okay? So obviously, I'm not a lawyer. Uh, this is where I would say the obligatory I'm not a lawyer, and I don't play one on TV. So this isn't legal advice. Um, take this as just information.
So let's talk about contracts scope and will define the scope to include expectations and definitions.
Eso The very first thing you want to do is to find what are the key deliverables. What is the service that needs to be rendered, or what's the product that needs to be created?
The specifics and detail that work to be performed, they all All that needs to go into a statement of work.
The contract should identify what's the timetable? What type of development will be used? Waterfall agile, rapid prototyping.
What's the final product look like? What do the characteristics of that final product and what language will be used if you're coding something, is there gonna be C or C sharp python or ruby on rails?
What are the technical requirements? This is important because it helps to find scope creep, and these technical details requirements they need to be accurate and measurable and enforceable.
Ah, work report is is also a good thing. Work reports you can also call these status updates is generally the way that communication is gonna flow. So put it in the contract,
identify the mechanisms that you is. The client can review and approve the work and understand what rework is. How much money is that going to cost and how and under what circumstances does rework cost you? Is the client
change? Management is another good section that section and outlines a process for handling changes.
Testing reveals a flaw in the design. So how are you gonna handle that?
Our vulnerability is found and open source library, which is included in the agreed upon specifications. So how is that handled?
Acceptance? Testing is another good one. This defines the acceptance testing gates, so to speak.
Onda should follow up with the gate. These gates should follow each of the key deliverables
payment is it could be tied thio the successful approval of those gates.
Non performance. How do you How do you define nonperformance? What are the penalties for that? And how can you end the contract for non performance? What happens to the work product? In that case, are there any termination fees that are associated with it?
Let's discuss problem management.
This section of the contract addresses the underlying issues of change. The contract should outline how the developer will handle product defects. How are the defects? How would they be reported? Who's gonna pay for the correction
and where it is? Defect Data stored
Cancel for cause is a good thing to talk about. Determination for cause can take place if one party cannot fully complete or fulfill their contractual obligations.
An example of this might be a developer terminating the contract for calls because the OM they have failed to pay them
Or another example might be that the OM is terminating the contract recalls. Because the developer failed to include agreed upon feature
now versus four calls versus for convenience for convenience is determination.
When the contract is terminated, when there's no contract breach.
So a termination of conveniences Onley legal when is expressly written in the contract.
This clause allows for both parties to end their responsibilities in a way that avoids the cords
but for convenience. In my experience, you know, sometimes it works great, and sometimes it doesn't so just be aware of that.
So let's talk about security and privacy.
So confidential data is data about your business. Let's define it that way.
How should the developer handle confidential data that you share with them about the I O T ecosystem, the product or your business plans? Should the developer isolate their development teams from other clients that maybe working on the similar or related field or project? There's a good questions.
Sensitive data is generally data about people.
So what obligations does your company have for protecting the various data types?
What laws and regulations protect certain data types, for example, ph. I that personal health data or personally identifiable information or credit card data
does the product requirements need to reflect any obligations relating to those data types?
Intellectual property is something else to consider data such as trade secrets. The ownership is a good one. The first area to focus on is, of course, the ownership of the end product.
Who will own the finished product. If you pay someone else to build a product that they end up selling is a software as a service for other businesses that could happen without a contract in place.
Or you could pay for a product that you really never get the source code for. And it's painful to get out of those types of relationships and get out of it. Whole feel are feeling like you're you've been made whole.
I'm told that the Copyright act requires ownership really clearly assigned against. I'm not a lawyer, Uh, but my understanding is a freelance developer. Providing programming services to a client is usually a work for hire relationship. Therefore,
any language that suggests the contractor retains all rights and licenses resulting
of that work. Those things should be avoided if you plan to own it yourself. Escrow is a good a good concept that protects both parties by storing software in a neutral third party
s broken physically hold copies of intellectual property or source code, so that if the developer goes out of business, the source code is still protected.
Of course, that requires a process to get the developed code to the escrow agent and another process to verify that the contract has been completed successfully.
Licensing is another great topic. To address the contract. The developer may require license to continue to develop and work on the software after it's been delivered, so you may need to think about that.
So let's talk about the differences between warranties and indemnity.
So a warranty is a promise from the cellar that the product will do what it's supposed to do and that the seller will fix and replace it if it doesn't
eso. Basically, it states that that the developer is gonna follow the terms of the contract in the statement of work. So, for example, ah, warranty might be that I guarantee that the project is free of back doors.
Many times a developer will provide a warranty that their software is, as is,
this is, and then they will not state that it is, but for specific purpose or compliant with a regulation or law like PC I or D. D. P r.
Indemnity is different. To indemnify means to compensate someone for his or her harm or loss and identification clause,
um, is the opposite of a liability protection.
It provides protection in case the developer infringes on third party copyright.
It covers his business losses if third Party claims from Frenchman,
and it might be hard to get a developer to take on too much risk, especially if they don't have insurance
liability. Um, there's something really discussed within this context. The developer should agree to some sort of liability that's related to the warranties in the identification in your agreement. And maybe that does mean that the developer will have toe seek out some type of insurance.
But they need to have a way to that. The liability will be calculated, and that's done you usually either through a fixed dollar amount or limited cumulative amount.
So let's talk about payment terms and ongoing support, so details about payments could include deposit or down payment or invoice timing 30 60 90 days or the amount to be, um, to be build
and ongoing support really includes, like support services and the duration of support agreement, different service level agreements or exclusions
and those types of things. And he's a really important toe to figure out and have inside the contract of possible.
So why is this important?
Well, a very simple terms. Contracts provide layers of protection much in the same way that technical controls protect I o T devices. Except this protects the business.
Um, so, for example, when I cannot verify vendors security level, I generally will encourage stronger contract terms.
They also established risk tolerance levels and contracts, allow unacceptable levels of risk to be transferred to another party.
And finally, contracts set acceptable levels of risk for the business relationship itself.
Well, that's it for this lesson.
In this lesson, we discussed the fact that I'm not a lawyer and none of this legal advice.
We also established why contracts are important and we discussed the protections that they can afford. And then we m.
Specifically, we discuss common sections of a contract that the sip show should be made aware of, including contracts, scope, security and privacy, warranties and indemnity payment terms and ongoing support. Well, also, you next time