“Distributed development, ALM platforms and cloud computing” – Interview with Collabnet
Hello everyone and welcome to the Producteering forum’s Interview Podcast series. I’m Selina D’Souza from Aspire Systems – your host for today’s interview session. Today, we have with us, Karthi Swaminathan, Sr. Director from CollabNet, who heads Collabnet’s Engineering operations at its Chennai development centre. Karthi has 18 years of software industry experience and has spent a considerable amount of that time working in the US. He has been with CollabNet for the last 4 years and prior to that, has held various development and management roles with large enterprises and startup companies.
Selina: Hi Karthi, how are you doing today?
Karthi: Hi Selina, how are you, I’m doing good.
Selina: Thanks, I’m doing well too. So, let’s get started. Although Collabnet is pretty well known, for the benefit of our listeners, I’d like to give you a brief introduction. Collabnet is the leader in application life cycle management platforms for distributed software development teams. With more than 1.8 mn developers using the Collabnet platform, Collabnet supports more than 800 companies in their distributed development, offshoring, outsourcing and partner co-development efforts.
CollabNet has been founded upon open source principles and is also the company behind Subversion, the next-generation Software Configuration Management (SCM) solution. Today we’ll be talking with Karthi Swaminathan about some of Collabnet’s products, how they are engineered for distributed teams and agile development. We’ll cover some of the best practices that Collabnet uses in its’ development efforts, discuss about their development culture, release cycles and so on.
Selina: Karthi, Subversion was ranked as the sole leader in the standalone Software Configuration & Change Management space by the Forrester Wave report in May 2007. However, there are many SCM tools in the market from reputed software firms like IBM, Microsoft, Borland and Serena Software. Do you think Subversion will retain its current market leadership position? Can you share with us your insights into where the SCM market is moving?
Karthi: Yes Selina, before I begin, thanks for the introduction about the company and me.
Selina: You’re welcome.
Karthi: Yes, Subversion is the sole leader in SCM space. We have more than 5 mn users worldwide using it. They have made Collabnet-sponsored Subversion as the new standard for version control and Software Configuration Management (SCM). With its recent release 1.5 and 1.6 , subversion has all the features which an enterprise customer looks for in any SCM tool. Subversion adoption commands 40+% of the market share and it is growing very rapidly. SVN community is also working towards every 6 month releases to bring in new features into the market. So with all of these things, I’m sure, it will not only help Subversion to retain its market leardership position but also consolidate it further.
Selina: OK,that’s good. So its nice to see that you are very confident of Subversion’s growth.
Collabnet has distributed development teams located across several continents, I believe and also leverages open source communities for its product development efforts. How do you communicate between these teams?
Karthi: CollabNet has distributed development teams for its core product development across continents. The teams use our own product, a distributed development platform (CollabNet TeamForge) to develop and communicate amongst various teams and partners. We have also open sourced a few of our products and integrations. We leverage open.collab.net as the collaboration platform to communicate to open source teams and customers. This site contains pretty much all the information related to all of our products – like features, downloads, faqs, roadmap, etc. It also has free and open forums where customers and users can join, and ask questions and interact with the developers and as a community help each other out.
Selina: OK, so everything is pretty much in the open in terms of product roadmaps and features. That’s interesting. So how is TeamForge engineered for distributed teams?
Karthi: GDD (Global Distributed Development), you must know, is gaining momentum. For GDD to be effective, traditional disconnected and incompatible development tools and approaches can no longer help to deliver an end-to-end solution, primarily for end-to-end application life cycle management. So enterprises need centralized SCM, issue tracking, project management and collaboration platform. Basically if you look at it, the platform should facilitate seamless coordination among disparate groups and distributed operations. It should also enable faster innovation, of course reduce cost, increase TTM, drive code reuse, control and secure your IP and software assets, and also simplify your regulatory compliance. This is, it may sound a lot, but this is very much the need of every GDD team. The CollabNet TeamForge platform takes care of all of these needs.
CTF (as we call the Collabnet TeamForge platform) is the only integrated and open ALM platform. GDD teams benefit heavily with our product CTF’s web based delivery infrastructure when compared to traditional LAN based products. If you look at traditional LAN based products,they suffer from obsolete architecture and do not easily scale to provide global access. They are not simply designed for distributed development. CTF’s centralized object-data model enables on-demand, secure, role based access to all components and objects. Its flexible association framework allows users to link any object with other objects (like documents can be linked with issues and source code, discussions can be linked with source code etc) and this also improves traceability and visibility. It also has integrated development and collaboration tools, all the mailing lists and wikis and everything inbuilt, collaboration becomes easier. Teams can get e-mail alerts on artifact changes or code commit. Overall, with CTF the users get an end-to-end solution in one, single platform.
Selina: Ok, like you said, it does seem like a lot of things, but as you said, an end-to-end solution as well- and you know, the agile movement has gained momentum..Does TeamForge support agile development? Considering that Collabnet’s SourceForge and TeamForge have been in the market for quite sometime and agile management is a reasonably new phenomenon, how did you bring about this change?
Karthi: Yes, CollabNet TeamForge supports agile development. Internally,CollabNet’s development teams follow agile methodology and we use our own product, CollabNet TeamForge as the development platform. We are constantly adding/enhancing features in CTF to better support various development methodologies. Agile is one of the development methodologies supported, traditional methodologies like Waterfall are also supported. In the recently released version of CTF, we have integrated Hudson and CollabNet’s cloud management tool called Lab Management into the product so this brings in continuous build and test functionality which is the need for any agile development team. So, as a product, we support Agile development.
Selina: So you mentioned Collabnet has Lab management/cloud management and offers cloud services to your users. Is this more of a fad or a real need that was felt and how is the adoption of cloud computing among your customers/developers?
Karthi: It’s interesting that this question of whether it is a fad or real, is still coming up. CollabNet strongly believes that many organizations will have Cloud Computing as a key IT strategy, if they don’t have it already. So, its not a fad. CollabNet Lab Management, one of our products, is a cloud based service that enables IT users to configure environments, upload software assets, set up and tear down lab environments, and manage projects. Lab Management provisions from a pool of virtual and physical servers in your private corporate data center – it could be a private cloud or a public cloud, like Amazon EC2 or CollabNet’s OnDemand.
As an integrated option to CollabNet TeamForge, the Lab management solution is the industry’s only lab management solution completely integrated into an ALM tool suite offered from a single vendor, that is Collabnet. CollabNet has been running SaaS business since its inception. We are pioneers in that. We currently have 1.5 million users in our cloud. There is an increasing adoption of agile development, particularly test driven development and continuous code, build and test options. So this generates a need for cloud based infrastructure where you can provision and take down servers on-demand. We are seeing a good level of adoption among our customers. We use it for our own internal development as well. Its easy for any enterprise, even if they haven’t tried out, to try it out with a simple setup on some public cloud to realize the benefits first hand.
Selina: That’s very interesting ! As a product development company, can you just give us quick insight about the top 3 best practices that you enforce among your development teams?
Karthi: Sure. As a company, we follow a hybrid approach. We are founded upon open source principles, we are an enterprise company also. So we follow a hybrid of open and enterprise development cultures internally. We support open communication and discussion on public forums as against one-on-one emails. That’s one of the best practices we have. All important issues and decisions get discussed on public forums. This is very healthy for the organization and creates an opportunity for people to learn, you can just be a silent spectator on the forums and learn from that, or also contribute effectively to the discussions and the decisions. I find this to be one of the best practices that’s helping Collabnet.
We have also adopted agile methodology for our development. Agile methodology’s user-story based approach helps developers to understand and develop to the exact requirement of the story – we always hear about scope creeps and doing more but with Agile approach, you want to deliver to the base requirement of the story, nothing more or nothing less. That keeps the focus better.
We also do code reviews. That is another important practice we follow to make sure that the code is of high quality. It is not only for quality aspect but also helps to share the knowledge.
Selina: Thanks for sharing that. I think that’s interesting and more development teams should follow these practices as well.
You must be adding new features also regularly to your products/platform, how do you pick which features to add; and how often do you interact with your customers regarding the product roadmap?
Karthi: That’s a good question..We maintain an active backlog of stories, we get feature requests from teams within the company and also from customers, which forms the pool for new feature additions. Being a SaaS company, we keep regular contact with our customers, our association with customers is much more – it is not like we sold the product and you are on your own. Also, as part of a product management initiative, we have formed customer councils and meet with customers frequently to get their inputs on feature priority. You might have a huge pool of backlog – any product company will – how do you prioritize, you get that input from your customers.
We listen to our customers very often. We also use our open.collab.net (OCN) site to engage with our customers, end-users and partners. As I said, it is an open forum, anyone can come in to discuss requirements (we also have a free download of the product, anyone using it – small teams – if they have a feature request, they can add that, and we discuss that also). We also keep an eye on the technology and market trends and take that into our product roadmap decisions.
Selina: Ok. Typically, how many iterations do you have for every release, what is your release cycle? And how do you ensure quality?
Karthi: This varies by the release. Typically, we focus on having 6 to 8, two week long iteration cycles per release. Our plan is to have two or three major releases in a year. Quality is an integral part of our development effort. We rely heavily on unit tests and automation tests. CTF has integrated Hudson for continuous build and test needs. We have our entire suite of unit tests run on our daily builds. Also, every release goes through various rounds of rigorous testing in our QA and performance labs.
Selina: So can you tell me a bit about the development culture within Collabnet?
Karthi: As I said earlier, we have a hybrid of open source and enterprise culture at CollabNet. The working atmosphere is friendly and informal, which encourages open communication among the developers and all the teams. All the technical discussions happen in public discussion forums. Developers also use public chat rooms (IRC) when they need quick clarifications. Also, all the developers are notified through email whenever code is committed into the development repository, which can be viewed by all the developers. So this encourages post-commit code reviews, one of the best practices, which again happens through public discussion forums. Thus knowledge is easily shared among the developers. We use our own distributed development platform, TeamForge as our primary development platform. Besides CTF also supports integration with desktop development environments, like Eclipse and Visual Studio and MS Projects which are very dear to the developers, so this makes the life of the developer easier to interact with the CTF application in an environment that’s very familiar to them, so that is our culture – that’s what we use.
Selina: Ok – so personally how has been your experience working in a company that sponsors opensource projects compared to working in proprietary software company? And do you have any advice for developers who want to contribute to open source platforms/tools?
Karthi: I’m glad you asked this question. Personally, this is one of the best decisions I’ve made – to work for a company which has closer ties with the open source world. The benefits are manifold. In my own personal experience, CollabNet as a company is able to attract and retain world-class talent because of its open source association. Employees are much more independent and entrepreneurial. This minimizes or eliminates micro management and control. Its a very friendly and informal environment. A lot of important issues and discussions happens on public forums. We also have a lot of opensource initiatives.
If you ask for advice for developers – there are tons of open source initiatives. You don’t have to pick the latest one – I would say pick the one that interests you most, or the one product that you are using the most and start contributing. There are many areas for one to contribute – you don’t always have to be committing code – there are unit tests, documentation and bug fixes. Its not very hard to get interested, join a community and start contributing.
Selina: That’s interesting for me because I always had this impression that when you contribute to open source it’s mostly you develop code, test it yourself. So I didn’t know that you could work on specific areas.
What will be your advice to companies who want to leverage open source communities?
Karthi: As a company if you’re planning to integrate a new tool to your core product and if you don’t mind making the tool an open source one, then you can make best use of the open source community. You kickoff the project as an open source intiative and have your key developers lead the roadmap and design/development efforts. If the product you’re trying to develop is of interest to other small companies as well, you’re likely to get contribution from other developers. Also you can leverage the open source community to get help in testing and documentation.
So the key here is, even though the tool you are going to develop or have developed is an open source one, you’ll still have proprietary integrations that makes the tool work seamlessly with other tools of your core product. Others can still get the tool but they can use it only as a standalone application unless they invest effort in integrating with their own product. So you don’t have to be concerned about IP on certain aspects of it.
CollabNet as a company has open sourced many integration and desktop products such as CollabNet Connector Framework (CCF), CollabNet Desktops – like Eclipse desktop and Visual Studio desktop – these are some of the open source initiatives that we have on our open.collab.net site
Selina: Ok! So thanks, Karthi for that interesting conversation today. It was great talking with you.
Karthi: Thanks Selina. Thanks for the opportunity.
Selina: To our listeners, thanks for joining us. There’s also a transcript of this interview on the Producteering forum. You can read more about software development best practices, issues and trends on the forum and share your comments with us there. Once again, thank you all for your time.