Jay Pipes is the Community Relations Manager for North America at MySQL. He joined MySQL in January, 2006, and is co-author of Pro MySQL (Apress, 2005). Frequently speaking at conferences about MySQL, Jay lives in Columbus, Ohio, with his wife Julie, and his extremely needy two cats and two dogs.
Webyog is the company behind the popular SQLyog GUI tool for managing and developing MySQL databases. They have a great history of partnership with MySQL and, recently, decided to open source part of their product line. I had a chance to interview Rohit Nadhani, co-founder of Webyog, about their decision to move to open source, the changes they've made to the code as a result of that move, and various other things. |
Jay:So, Rohit, tell me a little bit about Webyog. How and when did the company start, and how big are you today?
Rohit:My brother Ritesh was doing his college project on MySQL in 2001. He came from a MS SQL/Access background and was not impressed by the quality of MySQL GUIs available at that point in time. So he started developing his own tool. Suddenly I realized that it could become a serious business with the rising popularity of Open Source and MySQL in particular ... and here we are!
My wife Jyoti manages all non-technical aspects of the company.We had a few people starting recently. With those we are now coming close to ten people. But we do not intend to stop here. Actually the development and maintenance of the core 'SQLyog' program has been done mostly by two persons for quite some time. We are planning to 'double up twice' in next 6 months. And still have some resources to put into new projects. Further we outsource all website work, icon design and such things, so frequently we have people working for us that are not employees.
Jay:SQLyog is one of, if not the, most mature MySQL development and administration GUI tools out there. What big changes have happened to the code recently?
Rohit:We have been considering opening the source for the Free edition for quite a while. The decision was taken shortly after the last UC. I had the chance to discuss with MySQL people and a lot of other people there, and everybody was very positive about it. The only stumbling block was that some of the oldest code in our repository really needed a 'shine up'. So we needed this refactoring exercise before we could open the code. With open source there is the advantage that there is always a pressure on you to keep the code in good shape!
Every byte has been moved within the last couple of months! A lot of "black magic" has been fixed in the process but more importantly, it is now fully documented code with vastly improved structure. And we have a handful of people now that really understand every detail of it. It was a heavy and expensive process for us — but we believe we will benefit immensely in the long run.
Jay:(regarding going open source...) Excellent news! Tell me a little bit about what it was like for you and your company to decide to go open source, with a dual license model...
Rohit:We think we have nothing to hide! Since we are a part of the MySQL ecosystem – and most MySQL users love and support open source, it is a natural evolution for us. We are different from a lot of other startup companies who are going open-source just because open-source is so hot! Going open-source is not a marketing trick for Webyog to gain popularity. SQLyog Free Edition has already been downloaded more than a million times and the Enterprise Edition has more than 6000 customers across 90 countries.
And in financial terms it makes no difference as SQLyog (except for a very short period) always was a free tool in its basic configuration. Going Open Source means that as long as somebody needs it and somebody wants to maintain it, the code will always be available. We strongly believe that the Open Source version will contribute to our sales as users can have the confidence in the continued availability of the product. And of course, we hope to have contributions, ideas, and discussions from other developers.
Jay:What is your gameplan for supporting the SQLyog community edition?
Rohit:90% of the code that goes into the Enterprise Edition will be shared with the Community Edition. So in terms of code-base, it is really a part of the same repository.
Supporting our users has always been very high priority. In some situations we have had people working allnighters and weekends to sort out bugs and issues. Simple questions are normally answered in hours. We have an active Public Forum and a closed ticket system for those who do no feel comfortable with a Public Forum. And a rich FAQ that develops all the time. We believe we have the most complete and responsive support system in the MySQL world. We even spend a lot of time supporting non-registered users. They may buy one day! In case of a bug report or a very good and relevant request the 'registration status' of the user isn't important actually. It is the matter that matters!
Jay:How much community contribution are you hoping or aiming for?
Rohit:It is hard for us to tell at the moment. But we do intend to 'back up' anyone with appropriate information etc who wants to contribute. That is the main thing. And contributions need not be directly usable code. It can be design ideas and principles, structural things, testing, benchmarking, etc
By opening the source, people who have the ability to understand the code can contribute in their very own way: from coding the detail that they need most at the moment, testing and benchmarking different solution and code variations and so on.
Jay:So, where can everyone find the source code for SQLyog? Who are going to be the main developers of the product, from Webyog's side?
Rohit:The source code is available at our website www.webyog.com. It will also be available at forge.mysql.com.
Ritesh is on a sabbatical for pursuing his PhD - so he is no longer involved full time. Peter Laursen who works from Denmark will be responsible for Product Management. Peter will be the public face of SQLyog Community Edition. The lead developer of SQLyog is Manoj. He is currently leading a team of 3 fulltime developers and one tester. All of them work exclusively on SQLyog.
Jay:MySQL has undergone some dramatic codebase changes over the last few years, as I am sure you know! What kind of codebase refactoring did your group go through when deciding to open source SQLyog? Were there lessons you learned during the refactoring process that people might benefit from?
Rohit:SQLyog has been developed using C++ and Win32 APIs. No STL, MFC or ATL was used. This keeps the code very clean and people don't need to learn multiple technologies to contribute in SQLyog. The SQLyog binary is very compact and efficient without any external dependencies.
In hindsight, it was a great decision to develop even the most basic components in-house. I am sure many developers would relate with the fact that developing a rich grid control using Win32 GDI primitives is not a very pleasant experience! But it turns out to be a great decision. We don't have to worry about licensing issues while going open-source. Everything is under our control. We link SQLyog against 2 cross platform open source libraries - Scintilla for the editor and SQLite as the tiny embedded database for storing tags to support the autocomplete feature. Since it uses Win32 APIs at the lowest level only, it would not be very complex to port SQLyog to other platforms. In fact, many users are successfully using SQLyog on Linux with the basic WINE installation.
In short, I would like to advise everyone to use open source components for building applications. Even in the Windows world, you will get open source libraries for almost everything. This single decision could be a life-saver if you ever want to go open-source in future.
Jay:I think Webyog develops products exclusively for MySQL. Do you find it limiting? How was your experience with MySQL AB?
Rohit:Well, I think we are the only company in the world that develops products exclusively for MySQL. We believe that MySQL has a great future and we have bet our company on the success of MySQL!
Working with MySQL AB has been a very pleasant experience. For example, during the MySQL UC, Monty came in to our booth and we discussed how to build a 2-way query builder (one that generates the Visual diagram from SQL and vice-versa) for more than an hour. Now imagine the amount of confidence that the owner of an ISV from India gets when he is discussing SQL parsing nuances with the man who has written most of the SQL parser. There was always this confidence the even the core members of MySQL AB are always approachable. There was no fear that lack of documentation or absence of internal knowledge will affect our aspirations. Getting this kind of support is impossible with the big companies. I think the MySQL platform presents a great opportunity for ISVs to build products.
Jay:I have seen a lot of successful Indian companies in the projects/consulting space. I don't see many players from India in the product space. I can't even recall the name of a single software product from India.
Rohit:Yeah, it is unfortunately true. While India has been very successfully in providing IT solutions to big companies across the world, Indian companies have not been able to create popular software products.
I think it is a cultural issue. Indian companies find project work / consultancy work "low hanging fruits" because of high availability of low-cost manpower. Product development is a high risk/high reward business. I think that Indian companies will realize this soon and make serious contribution in the world of product development.
Webyog is concentrating fully on product development. Due to the popularity of our web-site and the quality of our products, we get numerous offers for "outsourced" project development. We politely refuse mentioning that project development and offshore delivery is not our core-competence area. In fact, our own website design was outsourced to a company in Colombia!
Jay:Hmmm, an Indian technology company outsourcing overseas... (smile). We have definitely reached a new global economy. Well, Rohit, I want to thank you so much for taking the time to talk with me! We wish you the best of luck in your open source and company endeavours.
Rohit:Thanks, Jay!
This interview was performed on August 23rd, 2006.