Vishwas Mudagal, CEO, Castle Rock Research India, talks to Vanisha Joseph about the pearl and thorns in open source domain for companies and developers.
Vanisha: Open source is being hailed as the next big wave for developers and the IT industry. What’s your take on the promise open source holds for the IT industry and for FOSS and Linux experts?
Vishwas: Open source sure is emerging as a promising area for the IT industry and developer community. Be it startups or innovation-oriented companies, it’s fast becoming a favourite pick. While startups are flocking in due to the cost benefit attached to open source, innovators are pinning high hopes on open source for the freedom it provides to build upon, experiment and innovate. Considering open source communities are working on up to date technologies and addressing current problems faced by the industry, it offers a good playing field for potential innovators.
Alongside, the emergence of successful revenue models around open source technologies is also grabbing eyeballs of both IT companies and the developer community. For instance, earlier no one would think of experimenting with open source for mobile computing solutions, but after the rise of Android, many IT majors are working on Android-based solutions. Similarly, our own project called Solaro.com is a good example of a successful open source business model wherein we provide educational content free of cost. We plan to initially allow publishers to upload content for free and thereafter charge them a commission for students they get through us, etc.
There are numerous successful business stories in open source domain which is wooing IT companies across segments and even attracting developers who now see open source technologies as not merely a passion but a progressive career opportunity.
What are the advantages of using open source for project development?
The main advantages of using open source technologies for project development is faster time to market, lower cost, freedom and flexibility. Speaking from our own experience, we use Ruby on Rails extensively and it has helped us cut the time to market for our products. Using open source technologies one can reduce the effort that goes into coming up with a basic product in the market as you don’t have to start from scratch. Further, the community support associated with a mature platform like Ruby on Rails is huge. The community provides incredible support in the form of plugins, gems and entire frameworks around the platform.
Open source also lowers the license cost. However, this advantage can get diluted if one chooses a premature platform. Lastly, open source provides a lot of freedom making it ideal match for innovators like us. Unlike a proprietary product wherein you have to play by the rules, open source platforms changes the way you work. Be it memory or scaling up, you can change it as per your needs, providing immense flexibility which is indeed the pulse for innovation.
You mentioned Ruby on Rails. What other FOSS tools do you use?
For software development, we use mainly Ruby on Rails. Further, we follow the test driven development method for testing wherein instead of developing the design, writing the code and then testing, we follow a reverse cycle wherein we first test and then build code. This makes testing crucial for us and we use open source testing tools like RSpec, Webrat, Cucumber, Factory Girl, Capistrano and Selenium for our testing needs. We also use Pivotal Tracker for project management, MySQL for our database needs, Apache as our Web server and Ubuntu as our operating system.
How have your developers being contributing back to the community.
At Castle Rock Research India, we home innovators. We encourage our developers to contribute back to the community and they have been doing so extensively with respect to tools/application built around Ruby on Rails. One of our technical architects, Hemant Kumar, is the current maintainer and author of a Ruby library called BackgrounDrb that lets one execute background jobs and schedule them from Rails. He is also the author of an event driven network programming library called Packet that lets you attach callbacks for various networking events; a network programming library Eventfax for Scala; Octave GTK library. Like him, many of our developers have contributed to Ruby on Rails projects like Rubinius, EventMachine, etc.
At what levels has the community helped Castle Rock?
The community has supported Castle Rock extensively. We follow Ruby’s philosophy of “Don’t Repeat.” Whenever we have an idea, we first approach the community knowing the high possibility of someone having worked on the issue earlier and putting it out as a plugin or gem. If we find something as per our need, we use it. We specially use the community’s help to build something not that critical. Anything we build on Ruby on Rails will have atleast 5-6 plugins contributed by the community. Further, we extensively use community forums for finding solutions to our crucial issues as many minds working together are more likely to come up with a solution.
Do you have a dedicated team working on R&D at Castle Rock?
Castle Rock Research India was started with the intention of evolving into an Innovation Hub, with a strong focus in the Open Source and agile development domains. We invest extensively on Open Source software, particularly Ruby. We have a lot of research and development work being carried around mobile computing solutions using open source technologies. Currently, we have about 35-40 people in the R&D team working on open source technologies.
How do you ensure your developers remain up to date with latest advancements/updates to FOSS? Do you provide training programmes?
Yes, we conduct training at various levels. To begin with, we provide training in the LAMP environment during induction. Further, we provide training to people working on GIT [version control system]–this is an extremely is powerful tool but can be a disaster if you don’t know how to use it. We provide similar training on other open source tools.
Basically we see a project as having two important parts: how you run a project (called the development methodology of a project) and how you implement a project. For those involved in implementation, we provide extreme programming training wherein we train them on test driven development, behavioural development, pair programming (as we believe two mind are better than one) and continuous integration. For those involved in the development methodology of a project, we encourage them to participate in the scrum master training from Scrum Alliance which happens once a month.
Further, we provide on-the-job training by assigning mentors. We also encourage people to go for Barcamps, tech fest, hack fests, etc, to remain updated on happenings in the fraternity.
Read the complete interview here on Linuxforu.com magazine.