Enterprise Cloud Development in 206 Seconds

CollabNet is very excited to work with the application development and cloud computing communities to advance modern software delivery. As part of our recent company re-launch, we stepped back, met with industry leaders, customers and influencers, and collectively defined the Enterprise Cloud Development (ECD) category. The experience has been profound and exhilarating, as we took the time to center our vision beyond our own technical solutions, and, instead, focus on the industry as a whole.

In the spirit of agility and simplicity, we challenged ourselves to tell the entire ECD story in just a few minutes. As it turns out – 206 seconds to be exact! Through the use of an animated video scribe format, we did our best to outline the “ECD story,” and also worked with a professional illustrator to create a fun and engaging presentation that encapsulates the market forces, challenges, opportunities and best practices associated with what we believe is the next evolution in software development and deployment.

I encourage you to take 206 seconds from your busy day to watch the ECD video scribe here: http://www.collab.net/resources. I also encourage you to join us in building a better industry, in whatever way you can. Take the chance to think globally. Dare to be innovative. And, reach beyond your day-to-day responsibilities to devise better ways to drive value and collaborate when building and deploying high-quality software.

Lab Management 2.5 Automates Build, Test and DevOps in the Cloud

Today CollabNet released Lab Management 2.5, the latest version of its popular application for build & test server provisioning. This is a pretty big deal, especially in the context of initiatives such as Continuous Integration, Continuous Delivery and DevOps.

When deployed with TeamForge, Lab Management 2.5 enables:

  • Self-service provisioning of servers for dev / test staff, accelerating release cycles, while eliminating VM sprawl (the latter by automatically decommissioning machines no longer needed to the server pool)
  • Hybrid cloud brokerage for bare metal, public & private clouds, reducing capital & operations cost, and reducing security risk; in particular, by following common security protocols, and providing enterprise-wide visibility into cloud usage (from a technical and cost perspective)
  • IT policy compliance with versioned approved templates, ensuring production-ready software builds, hence avoiding the dreaded “go live surprises”

From a technical perspective,  Lab Management 2.5 now takes advantage of Apache Libcloud, a library that enables integration with over 25 popular public cloud providers. Developers and build & test teams can tap into multiple public (like Amazon EC2) and private clouds alike, including CollabNet CloudForge. Furthermore, they even can provision “bare iron” machines from the same portal interface, enabling scenarios such as “cloud bursting”. That drives convenience and efficiency, while at the same time letting customers optimize machine & cloud utilization.


Lab Management Webinar on May-17

CollabNet will host a free webinar on May 17 – Test & Dev Labs in the Cloud Business Benefits, Pitfalls and Best Practices – to discuss the benefits of establishing cloud-based labs.

Don’t want to wait for the webinar? Check out the Lab Management video.

Continuous Delivery: The Last Mile Webinar Q&A

On April 18th, I co-presented the webinar, “Continuous Delivery: The Last Mile,” with my colleague Brian Dawson, Sr. Solutions Consultant.  It was the last webinar in our Closing the Agile Loop: CI&CD for the Enterprise Series. In the session, we talked about how automating integration and load tests in production-like environments can help dev teams achieve the highest quality standards. Specifically, we covered:

  • best practices to industrialize release processes,
  • lessons on how to enforce production-ready software quality, and
  • considerations for provisioning of build, test and run clouds.

During the webinar, we encouraged our attendees to interact with us by participating in polls and by entering questions for the live Q&A session that we had at the end of the presentation. As a result, we received many great questions that we just couldn’t get to during the live event so we have provided answers to the audience’s questions below.

If you missed the session live, you can watch the recording and download my slides. For more information about this topic, please visit www.collab.net/getCI here, you can access additional webinars, informative assets, and free product downloads.

Don’t forget to register for our upcoming webinars. CollabNet offers multiple webinars a month that cover a variety of topics related to software development.

As promised, here’s the follow up to the live audience questions.

Q: An area that can take a long time to complete and go under-appreciated is the training materials that need to be developed / released before production deployment.  How does that figure in?
A: Create story(s) for the training materials to be created as part of the sprint.  Develop those in the TeamForge document manager (or in the projects folder in Subversion (SVN)),  and “associate” the materials to the story(s).  The training materials must be developed, reviewed, approved and closed during the sprint, just the same as other storys.

Q: Do you have a more detailed case study of using TeamForge for “Making DevOps Real?”
A:  In addition the examples we have shared in our CI webinars about implementation details around deploying components of DevOps, we can provide one-on-one sessions to discuss the case studies and answer specific questions.  Documented white-papers will be forthcoming. Contact us at: info@collab.net for more info.

Q: How does DevOps differ from continuous delivery?
A: Continuous Delivery is about the tactical approach to implementation of best practices to support a delivery pipeline from coding to production.  Dev-Ops is a concept or philosophy that emphasizes a synergy between Development and Operations in delivery of software product.  You could say that Dev-Ops is the theory, Continuous Delivery is the application.

Q: I would love to move to automation. My team of developers is quite reluctant to move to automation (because this is an unknown territory). How I can help them engage in this process? What are the initial steps for the team to take to move towards automation?
A: To help them engage in the process I would recommend:

1. Impress upon them that the individual and team benefits of automation. Such as;

  • Less time fixing issues, doing tedious manual builds, deployments etc.
  • More time to develop, innovate and implement.

2. Reassure them then automation does not obsolete them, but rather allows them to do what they do best.  Especially for QA. Domain experts will always be needed and there will always be a need for some level of automated testing.

3. Highlight that this is the adoption of cutting edge technology and processes.  This should be more exciting, and it increases their value to the company and the market.

4. Training.  It is often the unknown cause for resistance.  People are more comfortable with change when they understand it, and have a stake in it.  Help facilitate this by getting training on CI/CD, allotting and assigning specific time to do research.  They are likely to feel more comfortable and even get excited about the possibilities.

Some initial recommended steps are:

1. As said above, training and research.

2. Conduct a brainstorming/review session where you evaluate the trouble spots in your process (without finger pointing). Write down the short list, prioritize, and then identify how automation may help address the highest priority issues.

3. Start by automating your builds and move to a centralized infrastructure such as a Jenkins build farm.  A CI server like Jenkins integrated with TeamForge, will serve as an expandable framework where you can grow further automation on.

Q: I have some programming experience but it goes back to quite a few years ago. How I can best empower my team of developers to improve towards the best practices you mentioned here. One difficulty is that I am working with an offshore team in India. Any suggestions on how to best work with offshore teams?
A: To address your first question about empowering your offshore team to improve towards the best practices we shared, I recommend:

1. Get them exposure in the form of training, presentations and research.

2. Conduct a brainstorming/review session where you identify areas of improvement and then identify how these processes may help address those areas.

In regards to your second question, working with an offshore team in India, I suggest that you follow the basic tenants expressed in the talk:

1. Automation of process stops

2. Integration between tools

3. Visibility into what is being done by all members of the process, on and off shore.

4. Communication.  Implement a solution like TeamForge Trackers, Discussions, and overall monitoring/notifications to allow for asynchronous communications between time zones, and to overcome language and cultural variables.

5. Conduct short meetings (“Standups”) at mutually convenient (or mutually inconvenient times ;^) at least on weekly basis, to facilitate personal interactions and help continually evolve the development process.

6. Recognize that the centralization and automation at the core of Continuous Delivery inherently eases some of the coordination between team members in different time zones.

Q: We are a small non-profit, and I am working only with 3 developers, and time to time external pro-bono teams that volunteer for us. What tools would you suggest for us to use?
A: Most of the tools mentioned in the presentation have free and open source versions and are relatively low effort to start up and use.  In a lot of ways,  you are at an advantage with such a small team.  The team can communicate more effectively then a large team, and should encounter less political, cultural and technical obstacles to implementing Continuous Delivery.  In order, I recommend:

1. TeamForge

2. Subversion (Git has less value with such a small team but can be used as well)

3. Jenkins

4. Maven/Nexus (Primarily for Java)

5. Sonar

6. Cucumber

7. Puppet

Q: Are the blocks you described, modular?
A: Anywhere in the presentation where “blocks” were shown, they need to have some level of interaction.  Per the definition of Continuous Delivery, all participants, tools, and activities should have some level of interaction.

Q: When implementing CI for multiple sub projects is it better to have same build process/Configuration management or it can vary depending on project preferences?
A: This is very much dependent on the relationship between the sub-projects. For example, if this was a Java project the relationship could be libraries that are imported to support an application and hence based on that that would have common:

  • scripting tool, i.e. Maven, ANT etc..
  • release management process
  • common architecture and application platform

So yes,  it would make absolute sense to have a standard build process and configuration. However, if the sub-projects have distinct  technologies, (i.e. .NET versus Java), then the build process will be different. However, its good practice to commonly align the configuration and release management processes.

Q: Using Jenkins, which artifact repository to use. Team doesn’t want/like Maven
A: This really depends on the reason for not liking Maven. Some don’t like the structure it imposes; others don’t have strong support for their technology, etc.  Ivy is another popular alternative.   The TeamForge file release system can store binary artifacts and meta-data (albeit less meta-data and fewer tools support.)  Jenkins also can store build artifacts and “front” as an artifact repository.

Q: What are the levels of integration of CollabNet product with TFS 2010, especially for Work Items and Requirement Gathering?
A: TeamForge and other CollabNet products are technology agnostic.  Integration with TeamFoundation Server is provided directly through theCollabNet Desktop – Visual Studio Edition.

Q: What tools do you use for your Artifact Repository? Or what you recommend?
A: Artifactory and Nexus are two very popular Maven/Ivy artifact repositories.

Q: Brian touched on source code branching, but are there general practices which can help avoid the overhead of maintaining multiple code branches?
A: Branching and merging is anti-pattern to continuous integration as it typically defers the integration and testing of software in its complete form. It’s recommended that branching and merging is only used when it is completely necessary. For example, disruptive hot fixes that will be integrated very quickly back into the mainline (trunk).  There are new design patterns that help with limiting the use of branching such as “branching by abstraction” and “feature toggles”.

Q: Would you recommend the version control to include the requirement change request as well?
A: In general yes, especially if the change request comes after development on related requirements have already begun.  The change request should be implemented as artifact in the Tracker and associated to the original requirements.   Code commits to implement the change should be associated to both the change and the change request.

Q: How can we be flexible but still “time boxed” during the development stage, especially when we recognize that the original design will not work as the business formerly requested?
A: There could be a few answers to this question. It implies that this was not caught at the Sprint planning stage where there is universal agreement that the story would be completed. The reason why it was not identified should be noted during the review and documented to ensure it does not happen again. There could be numerous reasons of why it happened, such as inexperience or poor communication, all of which can be addressed to ensure it does not repeat.

Also, some people have commented that “time boxing” is not completely effective for developing software. Lots of stops and go’s can be very disruptive. For example, when a defect is found, this profoundly affects the rhythm of the group. Some prefer Kanban which is “time boxless” and uses a pull method for work.

Q: At work I have applied the following rules:

  • Commit message must start with a ref to the issue# that the commit is connected to
  • The commit message must then contain at least X number of words
  • The committer MUST be the assignee of the referenced issue#
  • The referenced issue MUST be in one of some defined statuses (ie. In Progress)

I feel this helps us avoid

  • Anonymous commits which are hard to trackCode conflicts since no two developers can work and commit to the same issue# at once. (This does not make you immune to conflicts though)
  • Helps with change management since we know that commits won’t happen to anything that is not in the “”In Progress”" status

But, how do you handle lazy developers that complain on the fact that they must be the assignee of an issue to be able to commit. Or that they must have more than three words in a commit message. Personally, I find it hard to explain the changes and implications of these changes in that few words :)
A: All processes return measurable value and in your case, you have instilled a process that brings traceability, visibility, and the ability to report at various levels and to different stakeholders. Without a doubt, your process is valuable, and in fact, it is something that I would also promote as this is good constructive governance. In my opinion, justifying the process is not a problem. I would probably recommend a tool that allows developers to only see or filter for their own work; this would allow them to be more effective at seeing work that is more of a priority and not to accidentally work on items that are not assigned to them.

CollabNet and Enterprise Cloud Development – Playing Our Part to Drive Continuous Improvement in the Software Development Industry

For more than 12 years CollabNet has been blessed to work with some of the brightest people and organizations on the planet. Together, as individuals, companies, institutions and members of the community at large, we have worked collectively to advance the art of building and deploying software that touches every facet of our daily life.

All of us in the software industry have experienced the continuous change and innovation that has led us to create “better software faster.” Through the introduction, adoption and maturity of open source tools, ALM for distributed development, Agile methodologies, DevOps/Continuous Delivery and emerging platform-as-a-services offerings, the drive to improve and collaborate in more efficient and productive ways has been a constant for our industry.

In the spirit of continuous improvement – today marks a very important day for CollabNet and, we believe, the industry. Together with our customers, partners and like-minded software aficionados, our company is rolling out new strategies and technologies to support what we see as the next evolution in software development – Enterprise Cloud Development (ECD).

Here’s our take – Enterprise Cloud Development is an emerging IT category that represents the ongoing maturity of cloud development practices. It provides organizations a secure and compliant path to manage development and deployment in a hybrid cloud environment, and enables them to embrace the benefits of the cloud at their own pace.

Just as cloud computing, Agile and DevOps continue to disrupt the IT industry, a growing number of IT organizations are seeing the adoption and subsequent benefits of teams developing and deploying software directly in the cloud. The upside is cost reductions, faster time to market and the improved agility we all strive for every day. The downside is a proliferation of “shadow IT, ” as team-level adoption of cloud development adds to the complexity of managing multi-application frameworks, multi-cloud tenant platforms and the proliferation of hybrid processes and rouge tool usage.

Our mission is to provide the industry with an orderly and collaborative path to the enterprise adoption of cloud development. In support of that mission, today CollabNet is:

    1. Launching our new strategy, corporate website, an execution Blueprint, and a host of thought leadership content around Enterprise Cloud Development

    2. Launching CloudForge™, the industry’s first enterprise-grade development-Platform-as-a-Service (dPaaS)

    3. Integrating CloudForge into our on-premise TeamForge® and Subversion Edge products.

Elaborating further, first, based on its years of experience and patterns of customer success, our CollabNet blueprint contains five practical steps to guide organizations on their path to Enterprise Cloud Development as they adopt hybrid cloud IT into the application development and deployment lifecycle. To provide you with more information about the CollabNet Blueprint, you will notice that we have an entirely new web site, corporate look-and-feel and a host of useful information and content to help extend our vision and commitment to Enterprise Cloud Development into value for the community. There are white papers, video interviews with CollabNet executives, customers and leading PaaS partners (like Cloud Foundry and SOASTA), a cool three-minute video-scribe and other information to spark your imagination and spur action. It’s all available on our home page or by clicking here: www.collab.net/ecd.

Second, with today’s launch of CloudForge, we are extending our support for Agile, DevOps and ALM into the cloud. Our strategy is to provide the much needed “front-end” cloud development platform that organizations need to develop and deploy applications using a hybrid mix of tools, application frameworks and deployment clouds. CloudForge is an open framework that connects CollabNet’s commercial (e.g., SubversionEdge, TeamForge, and ScrumWorks Pro) and open source tools on-premise or in the cloud, and integrates with emerging PaaS offerings like Cloud Foundry, SOASTA and leading public hosting platforms to enable ALM in the cloud. The real game-changer, though, is the centralized management, visibility and compliance CloudForge offers – all key ingredients our partners and enterprise customers have requested to extend the core benefits of cloud development beyond individuals and/or small teams.

And finally, CollabNet is formally launching our ALM and SCM hybrid cloud services. Initially, CloudForge Cloud Services will be available to customers with on-premise deployments of Subversion Edge and TeamForge. A new Subversion Edge CloudBackup service now provides seamless Subversion data archiving, redundancy and migration capabilities for any on-premise user of Subversion Edge or TeamForge, without leaving their own desktop environment. Later in the year, additional hybrid cloud services will be available in TeamForge and Subversion Edge, such as elastic server provisioning for build, test and deployment.

All in all, this launch effort and our collective work to define and outline suggested best practices around Enterprise Cloud Development, has been extremely rewarding. It’s been a massive undertaking, and the realization of a 12-year vision and strategy that is incredible to see come to fruition. It also has been a true team effort – from our employees, customers and partners to industry influencers in the media and industry analyst community – the excitement and passion to contribute to the continued improvement of our industry has been truly inspiring.

To everyone, I say thank you – and we look forward to this exciting new chapter for both CollabNet and the software development industry.

Sincerely,
Bill Portelli
Co-Founder and CEO

CollabNet Ready for Cloud Development Launch!

On Monday look for lots of exciting news and change from CollabNet. Our commitment to advance the development and deployment of applications in the cloud will be center stage! For our customers, partners, employees and the community at large, Monday’s events will mark a new evolution in modern software development. True to our core business values, the coming advancements are open in nature, inviting and centered on the key word that makes up the basis of our company name – collaboration. We say this in a broad sense – from the individual developer and distributed teams to emerging partners in the PaaS space and established commercial Agile and ALM vendors. We have a clear vision – to drive new levels of value from Agile, ALM, DevOps and cloud development through a community and open approach.

See you on Monday!

CollabNet to Present The Five Steps of Enterprise Cloud Development

Back in December we talked about how enterprises are continuing to embrace and adopt cloud development practices (http://www.collab.net/news/press/2011/ecd.html). We see this emerging trend of Enterprise Cloud Development as one of the major transformations happening in IT today. What started as a movement of small teams working on small projects to spin up projects quickly and deploy applications utilizing a range of PaaS offerings, has steadily moved deeper into the enterprise IT domain.

To help extend the benefits of cloud development beyond the team level, we have drawn from our years of experience and worked with customers, partners and industry influencers alike to outline five practice steps to Enterprise Cloud Development.

Check back in on April 30 to learn more, via live online presentations, a free white paper and a really cool video scribe that lays it all out!

CollabNet Partnering with PaaS Leaders for Development and Deployment of Apps in the Cloud

CollabNet is proud and pleased to work with many of the innovators in the emerging cloud Platform-as-a-Service (PaaS) market. Our friends at VMware Cloud Foundry just celebrated a one-year anniversary that marks significant growth and momentum for the entire space. SOASTA is another key cloud partner that is experiencing super growth as well. With a growing ecosystem of cloud development platforms to choose from and “mix-and-match,” it’s clear that developers and enterprises are increasingly turning to the cloud to build and deploy software that meets the needs of customers.

What we love about this space is the collaborative nature and collective energy that is significantly changing the way we all build and deploy software. We are equally excited about our emerging role in helping enterprises adopt and manage multiple PaaS offerings through a centralized approach. We will continue to contribute to the growing cloud development value chain.

Learn more on April 30!

CollabNet: Bringing Agile, DevOps and Cloud Computing Together

It’s been almost 11 years since the Agile Manifesto was drafted, signaling one of the biggest shifts in the software development industry. Improvements in how we develop and deliver software continue every day, week, month and year. One of the “cause and effect” impacts of Agile has been the emergence of DevOps into the software lifecycle mix. With software being developed at a much quicker pace, the need to bolster collaboration between previously disparate teams and automate “the last mile” has risen to the forefront.

At CollabNet, we increasingly see how development teams are bringing both Agile and DevOps to the cloud to streamline and automate the build and release process. Just as Agile, and, more recently, DevOps and Continuous Delivery, continue to mature and take hold in the enterprise, cloud development is quickly evolving to enable new levels of collaboration and automation for both small teams and, increasingly, larger distributed teams.

Be sure to join us next Monday, April 30, to learn more on how we will bring cloud development, Agile and DevOps together!

CollabNet Prepping for Cloud Development Alignment

These are exciting days here at CollabNet! As you’ll notice from our new “homepage teaser” now up on our website (www.collab.net), there are some serious cloud development announcements brewing on the horizon. In fact, a week from today you won’t want to miss out on some very exciting news and developments that will mark a major evolution in Agile, DevOps and, especially, cloud development.

Rest assured, this is a not a knee-jerk “we’re cloud too” event. CollabNet has been super busy working with customers, partners and the community at large to add some real value to the cloud development ecosystem.

Enough for today, onward and upward to April 30!

Git for the Enterprise: Promises and Pitfalls Webinar Q&A

On April 4th, I presented the webinar, “Git for the Enterprise – Promises and Pitfalls.” In the session, I talked about how CollabNet TeamForge remedies concerns for enterprises looking to adopt Git, the leading distributed version control system.

Specifically, I covered:

  • Why Git is vital for Enterprise Cloud Development strategies
  • What the top Git adoption challenges are for enterprises
  • How CollabNet TeamForge enterprise-readies Git

During the webinar, we encouraged our attendees to interact with us by participating in polls and by entering questions for the live Q&A session that we had at the end of the presentation. As a result, we received many great questions that we just couldn’t get to during the live event so we have provided answers to the audience’s questions below.

If you missed the session live, you can watch the recording and download my slides. For more resources and to sign up for updates and information about Git, visit www.collab.net/gotgit.

Don’t forget to register for our upcoming webinars. CollabNet offers multiple webinars a month that cover a variety of topics related to software development.

As promised, here’s the follow up to the live audience questions.

Q: How to approach the situation when you have all developers and testers barely trained into subversion and working with branches? How to pitch the DVCS principle to a development org that does not know it needs it?
A: I’d start by making sure I identified the business problem that DVCS is going to solve. It may be that there is no compelling reason for an organization to change. I’d really want to understand the current problems in the environment. If folks are struggling with branching and merging on SVN, then Git *may* be good answer. However if the root problem is a fundamentally flawed workflow, or lack of understanding around the “hows and whys” of branching strategy, then Git may just make things worse. It might be that training is your foundational issue; if it is, then changing tools may not be the right move. I’m painfully aware that this is a short answer to a complex question. Feel free to get in touch, and we can discuss in more detail: www.collab.net/gotgit

Q: Any thoughts / comparisons between CollabNet and Cloudbees?
A: They are actually a partner of ours (through CollabNet Cloud Services, Codesion) Here is some info about our partnership.

Q: How will you help us to migrate from Subversion on CollabNet?
A: CollabNet will be happy to help with a full range of migration services and training as needed. Take a look at www.collab.net/gotgit

Q: When Git will be available to use in CollabNet?
A: Available now! www.collab.net/gotgit

Q: Will it be possible to have custom server hooks?
A: Yes. As always, make sure that your hooks scale with your activity. I’ve been involved in more than one SCM performance issue on a variety of different platforms – where the problem tracked back to hook scripts. If you’re using a hosted service then the ops team who guarantees your SLA will definitely have an opinion on server hook.

Q: Git challenge:  Lack of UI front-end for merge operations. Thoughts?
A: Git ships with Git gui. See, http://linux.die.net/man/1/git-gui. It’s basic, but does a good enough job of visualizing branches and runs across all platforms. Based on the number of projects you can find when you search for “Git UI,” I think it’s fair to say there is no clear winner yet in this space.

Q: I realized we already use TeamForge for arbitrary projects, but the product I’m on is still using clearcase. We want to migrate to Git, could TeamForge help with that?
A: Absolutely. Git has rich support for branching and merging and it’s fairly straight forward to map ClearCase branching strategies to Git. The migration is probably a good time to take a look at how you’ve been managing your branches and replication strategies. Some of the concepts such as Branch Mastership, no longer apply. The initial thought is often to move all history and I’d think long and hard before doing that. As a rough rule of thumb, I would move history of code that you have worked on in the last 6-12 months at most. CollabNet Teamforge is the right place to host your Master (or integration) servers and can really simplify setting up your security and code review processes (just two simple examples).

Q: I’m interested in how to migrate subversion based continuous integration workflow to a Git based one. Do you have any further information about this?
A: In theory, it should be pretty straight forward. The Git SVN clone command will import a full SVN repo into a Git repo. From there, you need to modify your build scripts to pull from the new repo. If you’re using Hudson/Jenkins, install and configure the Git plugin, and away you go. The bigger challenge may be associated with ensuring that the Git repo you are pulling from is the true “master”. Git workflows can get very complicated and ad hoc if not carefully tended.

Q: Does git alter the price of TeamForge?  That is, is it an add-on?
A: There is a license option for the Git adapter, and related support.  Please discuss with your CollabNet account manager, or contact us at info@collab.net.

Q: Does TeamForge work well on Linux (both for server and for workstations)?
A: Yes. As always, make sure you scale up your resources, CPU, disc, memory, bandwidth etc. as you grow. Alternatively, let us worry about resource scaling for you, and consider a CollabNet hosted solution.

Q: What about other DVCS like bazaar, mercurial, AccuRev? Is integration with them considered in TeamForge?
A: We’re concentrating on Git at the moment as that’s where we see the most interest from our customers. If you have specific interest in other integrations I’d be very happy to learn more about your needs. www.collab.net/gotgit

Q: How to use Git with tools designed for code review?
A: The CollabNet TeamForge Git solution includes the Gerrit code review tool.

Q: How to use Git on continuous build server?
A: You can use Git in just the same way as any other SCM. The challenge is making sure you’re building the right code. If you’re coming from a single stable trunk workflow this might be a surprise. If you’re coming from an integration/promotion-workflow then it shouldn’t be that foreign.

Q: Do you recommend hybrid Git DVCS with central version management system (e.g. Perforce) serving as central repository?
A: Interesting question. I have been recommending the opposite approach. Have Git as your master Software Configuration Management tool and allow local teams to continue to use Perforce as needed. In general, I’m not a big fan of hybrids for long term production needs. They are great as transition plays, but in long term production they tend to be brittle with associated flame wars and finger pointing.

Q: Are many high-end customers actually using Git?
A: I meet a lot of Enterprise businesses as part of my role here at CollabNet. I have yet to meet a single Enterprise customer who isn’t either officially supporting Git – or worrying about how to manage the shadow Git environment being built by the developers.

Q: How do you manage windows support/differences comp with Linux and mac with respect to line endings, tools terminal functionality etc.
A: http://progit.org/book/ch7-1.html has a good discussion of the Git config options. You’re looking for core.autocrlf. It’s worth running a few tests to make sure that you’re getting the workflow that you’re expecting. Managing cross-platform CRLF issues can be a painful experience.

Q: Any concerns about Security and IP theft with the ability to have local repos?
A: There are some additional concerns to consider – I’m not sure they are an order of magnitude worse than the security concerns we should already have. I’ve seen a lot of workflows with a lot of version control systems. The default workflow a lot of folks adopt is, to check it all out to the workspace on the desktop. Even when you have the ability to do sparse checkouts of just a few files, it’s often not used.

I always assume the worst case, which is not a bad position to start from with security concerns. At a minimum, I worry about attached storage – flash drives, iPods etc. and theft/loss of mobile devices. A lot of us code on laptops these days. At a minimum, we should encrypt the hard drive. As for flash storage, that is a tricky one. Most companies are loath to impose a ban on our favorite music players, smart phones etc.

Git can make it harder to figure out where all your code is. It’s very, very easy to clone a repo and without good workflow you can end up with your code in some unexpected places. On the positive side, Git can make it much easier to segment your code base into “need to know” branches.

Q: Do you integrate with VersionOne?
A: Our Codesion Cloud Services has integrations into VersionOne: http://codesion.com/

Q: What is ALM
A: ALM: Application Lifecycle Management http://www.collab.net/products/ctf/

Q: How is TeamForge a better option over GitHub?
A: TeamForge has been built with the enterprise in mind, versus just individual workgroups. As such, TeamForge does provide cross-workgroup transparency and manageability, natively full application lifecycle management functionality, deep integration with 3rd party tools, and (last but not least) enterprise-grade 24/7 support. All this is provided at cost-effective price points for the enterprise, hosted or on-premises.

Q: Do you actually mean that in a distributed version control system there are no standard ways to impose who can change which parts of the source tree?
A: DVCS has security just like any other Version Control System. Properly implemented, this prevents people from making unwanted changes. The big difference with DVCS is the clone command. If you permit me to clone your Repo, then at that point in time, I now have a complete copy of the repo. I can make whatever changes I want. If you then permit, I can push changes back up to your repo. The worrying scenario is the so-called “hostile fork”.  I get a copy of your repo; I then make whatever changes I want in my repo, and then advertise my repo as the new master.