Wednesday, August 21, 2013

The Crowdsourcing of Code: What IT Can Learn from Developers [feedly]

Shared via feedly // published on Planet DevOps // visit site
The Crowdsourcing of Code: What IT Can Learn from Developers

This is a guest post by Yoav Landman (@yoavlandman), Founder & Chief Technology Officer at JFrogcrowdsourcing-cartoon-300x216

The agile movement is influencing the adoption of new methods of collaboration from developer to consumer throughout the development process. The sharing of resources across companies, communities or even countries is known as crowdsourcing and it is becoming increasingly common. After all, when it comes to coding most of us speak much the same language. The idea of collaboration isn't exclusive to developers and can also provide benefits to the IT fields. In IT, community knowledge is becoming a huge asset.

Developers and IT professionals often turn to networks outside of their own for information about the artifacts they use. Through the sharing of successes, failures, feedback and updates, the building blocks that make up software are (virtually) crowdsourced. With crowdsourcing becoming the new norm, there's no shortage of best practices to take away from their community.

With that, let's explore the practices that'll make for a crowdsourcing strategy that's beneficial, efficient and safe for software developers and IT alike:

License Control

When you use a communal tool, such as open source, you must protect your project through licensing. 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.

Bring It In-House

Ensure that your original project is stored in-house. The main reason: it guarantees you're in control and can reliably control accessibility to others within your organization for download. It also doesn't put you at the mercy of the availability of external software repositories. Be sure to equip your project with internal backup – and keep it up to date.

Access Control and Internal Audit

While sharing is encouraged, be sure to filter who and what's accessing and updating your organization's resources. 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 where code or software is coming from or going to which can jeopardize both quality and security.

Free Up Resources: Share Centrally & Adopt Tools that Enable Management

An internal centralized resource for developers to share and pull libraries is a best practice. Not all methods are created equally though and careful tool selection can increase productivity and free up your team's resources .

For example, using a version control system to store libraries can actually slow down the development process—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). Pick the right tool for the job.

Automated Clean-Up  

Combining socialization with automation will increase productivity. As creatures of habit, so many IT pros use manual intervention in processes that can be made automatic. One example from the software development side is clean-up. 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. Adopting proper tools to eliminate parts of the cycle that don't require manual intervention will increase productivity.

Crowdsourcing has swept professional networks, but most industries are still limited to internal interaction among co-workers. Software developers and IT professionals are unique in that we converse across companies and even industries on a global scale. With the right tools, we can share consumer feedback and understand risks, successes, and code that form the building blocks for great systems. While it is not yet a standard practice for fields such as marketing or law, crowdsourcing is beneficial for so many fields in IT here and now.

Sent from my iPad

No comments:

Post a Comment