Paradigms for Contracted Code Ownership

The bulk of my career has been developing software systems for a variety of customers (Government and private sector) as a contractor.? Ownership of source code is a frequent topic.? These topics are important to understand because I have seen many cases where the customer wants to move faster, and bring in additional companies to do so.? This article shares some of what I’ve learned.

In most cases, the customer hires one or more companies to develop a system.? The terms of the contract specify the rights of the customer and the contractor.? In Government contracting, some types of acquisitions, such as Small Business Innovative Research (SBIR), limit the rights of the Government.

The first area of consideration is Intellectual Property (IP).? In cases where the customer doesn’t own the IP for the source code, all changes to the source code must be made by the owner of the IP, typically the original contractor.? The contractor is able to transfer or waive IP rights, but this is usually only done in situations where the contractor benefits, as it is in their interest to keep the customer “locked-in”.

In cases where the customer does have ownership of the IP for the source code, I have seen two models for code access.? In an escrow model, the customer holds the source code, but only they and the contractor have any access to it.? This protects the contractor from competitors using their work while allowing the customer to be able to leverage the code once the contract is complete.

In an open-source model, the customer holds the source code and provides read-only access to all relevant parties including other contractors.? The contractor retains write access to their code.? The advantage of this model is that a broader audience has visibility into the code, while keeping a clear party responsible for maintaining it.? In the event that a party without write access to the code finds a defect or desires an enhancement, they are able to submit a patch to the maintainer for review and acceptance.

In a fully open model, the customer holds the source code and all contractors have identical access to the source code. This is the typical model where contractors are brought in to augment the customer's development staff.

Each of the four models I described have benefits and drawbacks for both the customer and the contractor.? The only advice I have is to make sure that the contract supports your vision for how the source code will be owned.

What have your experiences been?

Thomas Conte

Making you stand out and driving your brand awareness!

1 年

Nice article Jeremy. Clear and concise.

回复

要查看或添加评论,请登录

Jereme Kuperman的更多文章

  • Agile Modeling

    Agile Modeling

    Over the years, I have struggled with incorporating modeling and architecting activities into Agile development…

    2 条评论
  • Modeling Stakeholders and Concerns

    Modeling Stakeholders and Concerns

    Model-based Systems Engineering (MBSE) is the formalized application of modeling to support system requirements…

    2 条评论
  • Concerning Stakeholders

    Concerning Stakeholders

    I can get everything I need from the Swagger docs. I don’t see the point of all that other stuff.

  • On Architecture Frameworks

    On Architecture Frameworks

    It’s time to “do architecture.” However, if you or your team are just starting out, or you are working with a new…

  • What if I Don't?

    What if I Don't?

    I was asked if I could comment on things that didn't work when building an architecture team. I'll start with a quick…

    1 条评论
  • Building an Architecture Team

    Building an Architecture Team

    In my career, I have had several opportunities to stand up architecture teams. In the process, I have learned things…

    4 条评论

社区洞察

其他会员也浏览了