RedMonk recently posted on Centralized vs Decentralized Version Control: 2010 vs 2012. They mentioned that the inquiries regarding decentralized or distributed version control (DVCS) technologies, such as git, has spiked. RedMonk went on to add that some organizations are considering migrations to such technologies, while others have committed to the move in general, but require data to justify their decisions internally.
In the RedMonk post, they looked at the question of DVCS usage via Ohloh over the past two years. The two most obvious changes from 2010 to 2012 are the decline in CVCS traction (centralized) and the growth of git (decentralized). git’s share, in particular, almost tripled in two years, while CVCS declined by better than 50%.
They also presented at chart of the leading repositories. Each decentralized repository, including git, demonstrated growth while the two centralized systems, CVS and Subversion, declined. Second, git substantially outperformed both Bazaar and Mercurial from a growth perspective.
It seems that developers are voting for decentralized git repositories with their feet, or perhaps their keyboard/mouse.
RedMonk showed further data that indicates there is still room for more growth for git. If you look at the absolute numbers, rather than growth, centralized repositories are still in the lead. Their data show that while nearly a third of all projects are now employing DVCS, versus 14% two years ago, almost 70% of projects remain in centralized version control (CVCS).
RedMonk concludes the git is the clear winner over the past few years.
In line with this trend, Atlassian Stash – Atlassian’s behind the firewall git repository manager – is gaining good traction in the market, as can be expected. BitBucket, their SaaS DVCS offering (supporting both git and Mercurial) is also growing fast – both being yet more alignment to this growing trend.
I spoke with Jens Schumacher, Atlassian’s Group Product Manager for developer tools. These tools include: Bamboo, Crucible, Fisheye, and Stash. Bamboo provides continuous integration and release management. Crucible supports code review and Fisheye allows you to search out source code artifacts of various source code management flavors and browse commits, files, revisions, or related people. It also integrates seamlessly with JIRA.
Enter Stash! Stash incorporates the latest and greatest technologies in DVCS source code management and Git, allowing you to create and manage repositories, set up fine-grained permissions, and collaborate on code in a secure, fast and enterprise-grade manner.
Jens continued, providing me more background on the development of Stash.
Stash is the latest in Atlassian’s developer tools suite and was released in the Spring of 2012. Atlassian’s existing developer tools are already quite popular in development houses, but still the developers wanted more. They wanted to be able to host code in their own repository behind the firewall.
More – engineers are always pushing the envelope: they wanted Git support, a massively popular and growing DVCS approach used in code development and management these days.
To cleanly meet this need in both a tool and extensibility, Atlassian decided to build Stash from scratch including a ground up extensible API approach, rather than on top of their existing tools.
Stash incorporates code review into the development workflow so the new code gets properly reviewed before it is merged with the existing source code.
To facilitate development, Stash allows developers to set up branches, where code changes can be made in isolation and reviewed before being integrated with the mainline. This separation makes development of new features less complex.
You can easily have new code reviewed while incorporating automated testing tools as well. Stash facilitates the merging of reviewed code into the core source code. This concept of a separate workflow for development is popular with open source efforts and Atlassian has now taken a leading industry position with the Stash offering, enabling this capability inside the firewall.
Integration efforts with Stash are already supported in a number of ways.
Per Jens, 80% of the Fortune 500, as well as many many smaller firms, use Atlassian JIRA for issue tracking.Stash is fully integrated with JIRA so you can link code in Stash to a JIRA ticket and track the progress of changes.
Stash also natively integrates with enterprise user directory systems, such as Active Directory or LDAP, to make deployment easier within the enterprise.In addition, again, Stash was built with an extensive REST API to make information within Stash easily integrate-able with other tools.
Jens gave me a simple use case. Their customers often want to migrate content from one repository to another or from the cloud to within the firewall. Stash can automate aspects of this common process to simplify the effort.
In the future, Stash will be enhanced with more branch permission capabilities to better ensure that all code gets reviewed before it is merged into the core source code. They are also working hard on scalability requirements to better serve their many large customers. Currently, Stash supports up to 500 user licenses. Finally, they are working on adding enhanced collaboration capabilities for code review.
Jens noted that Atlassian has a massive ecosystem. This is helpful as there already are a number of add-ons for Stash. For example, there is a badge add-on to acknowledge developers’ efforts and skills. Another is a chart add-on to provide statistics. AppFusions built a Stash commenting add-on for Atlassian’s annual CodeGeist competition. Also, add-ons are available to help with different workflows that organizations have in place.
On top of all that, Atlassian’s very popular SourceTree DVCS client further removes DVCS source code tool complexity, and is used to support and guide the process of adding new workflows with proper controls within branching efforts, among other.
Customer response has been very positive since the release of Stash earlier this year. The timing was right for the release, as developers were ready for it.
Jens’ team is now providing new releases every 7 – 9 weeks, with many of the new capabilities coming from customer input.
New needs are always arising in enterprise software development efforts, and many organizations and third party developers want to tackle these needs. Stash provides enhanced support for these efforts.
As Chief Community Officer, Jeff leads the Alfresco community. This includes partners, employees, developers, customers, and anyone else with an interest in Alfresco. Indeed this is a large order, with over 200K downloads, and growing, of their content management server software to date – so that’s a large community.
Jeff focuses on the health of the community and makes sure it has the right tools, tutorials, forums, blog aggregation, wikis, and whatever else is useful to support collaboration and continue its growth. He also conducts outreach to other relevant communities to expand its awareness and participation.
The Alfresco open source offering is built on a repository for files of all types: documents, audio, video, images, and other types. Expanded access is made possible through its API using CMIS, an industry standard that is also used by other tools such as SharePoint and Documentum. CMIS uses “Web services and Web 2.0 interfaces to enable information sharing across content management repositories from different vendors.”
There are several applications that Alfresco has added on top of their repository. Share is a main one and it allows for users to share documents, calendars, links to support collaboration. In addition to collaboration and content management, use cases for Alfresco include records management and digital asset management.
Alfresco provides an on-premise Enterprise version of their software that is offered with support subscriptions. There is also a free community version available through the LGPLv3 open source license. This year they have added a multi-tenant SaaS offering. This relieves clients of any hosting responsibilities so they can focus on organizing and using their content, not supporting the backend. Both the on-premise and SaaS version (cloud) have the same software and user interface.
With the cloud version, users can share content within the same domain since it is a multi-tenant offering. The cloud version also has a few less features at the moment, as basic document management is the primary use case. So the calendar, blogs, and wikis are not enabled at the moment. There are plans to make them also available in the cloud version in the future.
Next we discussed the Alfresco’s integration strategy.
Alfresco’s goal is to make Alfresco as open and available as possible. They want any interested developer to be able to work in the tools they are comfortable with to connect to the repository and create integrations. To enable this availability they have built APIs for both the on-premise and cloud versions. While CMIS covers such functions as create, read, update, delete, Alfresco wanted a richer experience, so they added additional features to the API specific to Alfresco such as rating and comments.
The Confluence integration allows users to embed and access Alfresco file lists. Users can also preview, embed, print, download Alfresco files from Confluence.
Finally, when you edit an Alfresco document in Confluence, you are able to edit it in your favorite local Office application (MS Office, Apache Open Office, NeoOffice), and when done – the file is auto-magically saved back to Alfresco. Here’s a video.
Collectively, these integrations really bring powerful platforms and brands, together. Best of worlds!
Alfresco has also recently released support for iOS and Andriod to enable developers to build mobile app integrations. They are also expanding CMIS client-side libraries to better work with what Alfresco offers.
Alfresco has its third annual user conference, DevCon, coming up in November. This year the European version will be in Berlin, November 6 and 7. The US version will be in San Jose November 14-15.
The conferences will include technical workshops by Alfresco engineers and partners, case examples by users, and keynotes by the Alfresco leadership team. Both conferences will be preceded by a day of workshops for those new to Alfresco so they can more thoroughly engage with the event.
Jeff sees the use of the cloud continuing to expand and I would certainly agree. Alfresco will continue to offer more capabilities through the cloud. As CMIS becomes more widely used, they will make more CMIS-related tools available.
Alfresco is certainly moving in the right direction, hitting three of the main themes in the application marketplace with its expanding capabilities in social, mobile, and the cloud.