EOF - Open-Source Use Accelerates Software Development
Many software developers share some common traits. Besides copious caffeine and creative work schedules, developers like working on interesting, new problems. They like to be as efficient and productive in their work as possible. They never want to start from scratch either; they prefer to cut, paste, modify and extend.
The best developers today are the ones that can most effectively find, assemble and then optimize re-usable software components—whether those components are open source or were developed within their own organization. A developer's skill with Google and SourceForge is now as important as his or her knowledge of software architecture and implementation.
This new “assembly” model is fundamentally changing the way software is designed and developed. It accelerates development, improves software quality and reduces costs. In short, it's changing everything.
Software now consists of a mix of company-owned code, open-source and commercial libraries, and code provided by outsourcers. By combining external components with their proprietary technology, companies create a set of mixed intellectual property, or mixed-IP assets. Best practices for managing software licensing in this new mixed-IP environment are now emerging.
All software—whether commercial or open source—carries licensing obligations that companies must comply with. This new, mixed-IP environment adds complexity to the process by mixing together licenses of all kinds. Managing these licenses and their restrictions needs to be done correctly in order to keep companies—and individual developers—out of trouble.
Following is a set of software compliance management “best practices” that were developed through discussions I've had with companies that are best in the world at leveraging this new environment:
Re-use existing components—to lower development costs, accelerate time to market, improve quality and reduce business risk, use existing internal and external components wherever appropriate. Explicitly consider functionality, performance, reliability, maturity, risk, sensitivity and license obligations.
Track and control changes to internal components—to establish and maintain the provenance of all internal components, to identify and protect critical IP and to avoid inadvertent violations of licenses, trademarks, patents, copyrights and trade secrets. Track internal component creation and modification and control the modification of those that are sensitive.
Control re-use of sensitive or external components—to avoid last-minute surprises, guesswork, compromises and risk-taking, and to prevent the loss of intellectual property and facilitate timely and effective remediation. Review and approve the use of any external or sensitive internal components or fragments in a project.
Verify every build and release—to assure prompt discovery of materials inadvertently included in a project and unapproved or precluded modifications to components. Identify and remediate all unapproved components or fragments and changes made to any of those components. Record the metadata for all external components in the associated bill of materials.
Review compliance at project phase transitions—to prevent loss of intellectual property and to assure prompt discovery of new components inadvertently included in the project. At major development milestones, verify that no unapproved components are used in the project or were changed and then used. Review the license obligations of all external components used in the project and ensure compliance with them.
Control component contribution and disposition—to avoid license violations and the attendant disruptions and to constrain the propagation of risky software. Before contributing any component or fragment to an open-source project or transferring ownership to another party, assess the sensitivity of that material. Verify your rights to make that contribution or transfer.
Assess software components before acquisition—to prevent negative post-acquisition surprises. Before buying a software component, identify all internal and external components used in that asset. Identify all external components used in any active project and assess their license obligations with respect to compliance, business objectives and legal policies. Assess the impact of any required rework or change on cost, revenue, quality and so forth.
These best practices encourage the use of open source and re-use of software components, while assuring compliance with license obligations. They also protect an organization's intellectual property assets. In addition to adopting these best practices, many organizations are using commercially available automated solutions as platforms on which to establish and manage these processes.
Open-source software and component re-use are here to stay. Now is the time for companies to begin thinking about how they will alter their management of software IP so they can capitalize on this new development model. By doing so, they will get ahead of the issue and put the power of open source to work for their organizations.
Palle Pedersen is CTO of Black Duck Software, the leading provider of software compliance management solutions (www.blackducksoftware.com).
Fast/Flexible Linux OS Recovery
On Demand Now
In this live one-hour webinar, learn how to enhance your existing backup strategies for complete disaster recovery preparedness using Storix System Backup Administrator (SBAdmin), a highly flexible full-system recovery solution for UNIX and Linux systems.
Join Linux Journal's Shawn Powers and David Huffman, President/CEO, Storix, Inc.
Free to Linux Journal readers.Register Now!
- Server Hardening
- EnterpriseDB's EDB Postgres Advanced Server and EDB Postgres Enterprise Manager
- The Death of RoboVM
- BitTorrent Inc.'s Sync
- The US Government and Open-Source Software
- The Humble Hacker?
- Open-Source Project Secretly Funded by CIA
- ACI Worldwide's UP Retail Payments
- New Container Image Standard Promises More Portable Apps
- AdaCore's SPARK Pro
In modern computer systems, privacy and security are mandatory. However, connections from the outside over public networks automatically imply risks. One easily available solution to avoid eavesdroppers’ attempts is SSH. But, its wide adoption during the past 21 years has made it a target for attackers, so hardening your system properly is a must.
Additionally, in highly regulated markets, you must comply with specific operational requirements, proving that you conform to standards and even that you have included new mandatory authentication methods, such as two-factor authentication. In this ebook, I discuss SSH and how to configure and manage it to guarantee that your network is safe, your data is secure and that you comply with relevant regulations.Get the Guide