With the dawn of agile software development and the beginnings of a renaissance for application lifecycle management (ALM), many important concepts have risen; the binary repository is one of them and is already considered an indispensable piece of infrastructure. But why should developers have all the fun? Many concepts of ALM aren't exclusive to developers and can actually provide immense benefit in nearby IT fields.
1: Leverage community knowledge
In development, the community is your best bet for getting information about the artifacts that you download. What's that, you say? Artifacts are the building blocks that make up software. While the binary repository is one such tool that enables building by providing a shared place for artifacts during build-time, the knowledge from peers is another significant piece to the puzzle. In IT, community knowledge is your biggest asset.
2: Licensing, licensing, licensing!
When you use open source, it must be licensed. Nothing puts a damper on a project more than a licensing issue -- monetary fees, wasted productivity hours, and vendor lock-in can become a huge liability. More so than ever, responsibility for larger business initiatives is falling in IT's lap, and a large portion of honing the role comes from licensing control.
3: Store in-house
When you use open source, ensure it's stored in-house. The main reason: it guarantees you're in control and grants accessibility to others within your organization for download. It also doesn't put you at the mercy of the availability of external software repositories.
Much like how storing in-house gains control and accessibility, equipping with internal backup is equally important.
5: Control quality
While sharing is encouraged, be sure to filter what's coming into your organization. Who and what is allowed on the network? Ensure there are policies and procedures in place. Without proper management, you have no record of the source, and from that quality can dwindle.
6: Free up resources: share centrally
When storing artifacts internally, it's a best practice to create a centralized resource for developers to share and pull libraries. A massive influx of source liabilities will saturate and overflow your network if everyone tries to update new versions of the libraries -- when in reality every developer is accessing those same libraries. In addition, it takes a massive amount of time.
7: Adopt tools that enable management
Version control systems can entirely ruin the flow of binaries -- they lack searchability, proxy facilities, and a certain level of permission management. These manage source code (i.e., instructions, text) not binary files (i.e., builds, executable form) and drain storage space and network resources (when using a distributed version control). Identify the environment and methods that most encourage productivity on your team to get a holistic sense of how tools really translate when put in the field.
8: Control security liabilities
Controlling security liabilities is not easy when it comes to software development. Security details might be found in forums; it might be in huge databases -- the resolution lies in efficiently saving the information. Record the security flow and centrally save it directly so that others are notified up front that it's a malicious code. Get a good handle on the extent and potential threats of security liabilities and look into automating the processes around them.
9: Automated cleanup
We continue the automation trend. As creatures of habit, so many IT pros use manual intervention in processes that can be made automatic. One glaring example from the software development side is cleanup. Let's say you're using a continuous integration server. Binaries are constantly being built; it may build 50 versions of the library in one hour, but your team only qualifies one version. Don't take time away from your team's value-add and adopt the proper tools to eliminate parts of the cycle that don't require manual intervention.
10: Share risk and get a better quality product
Socialization has swept professional networks, but most are limited to internal interaction among co-workers. For software developers, we converse across companies and industries, and it's common to see worldwide networks (after all, when it comes to coding, we all speak the same language). With the right tools, consumer feedback, cautionary tales, successes, and building blocks are shared. Sure, it's not exemplary practice for fields like marketing or law, but for so many fields in IT, it's beneficial. Share your risk and the outcome is better for all involved.
Yoav Landman is Founder and Chief Technology Officer at JFrog, the company that's revolutionizing the way software is built.