Today, Ray Stoeckicht explains the whys and hows behind the creation of Zurmo, a new open source CRM (Customer Relationship Management) system.
Zurmo is an open source CRM application that is mobile, social, and gamified. It is written in PHP utilizing jQuery, Yii Framework, and RedBeanPHP. Although located in Chicago, Zurmo has an international footprint with contributors and end users all over the world. Language support includes English, Spanish, French, German, and Italian.
In 2010, the founders of Zurmo saw an opportunity to build a better open source CRM application based on better technology and progressive user adoption methodologies. Zurmo is developed using an agile method, so tests play a very important role in development. Without tests it would be very difficult to develop an application of this complexity and be sure that everything works correctly. We have unit tests (with code coverage of about 85%), functional tests, and walkthrough tests (a mix between unit and functional tests, used to test if controller actions are executed correctly).
We developed our custom continuous integration environment (http://build.zurmo.com/), which covers unit tests, functional tests, code violation, checking for missing translation messages, performance, and more. With an almost religious zeal for testing, you will find that our obsession with Test Driven Development (TDD) means a more stable application. Gone are the days of ‘upgrade and pray’. Now it is ‘upgrade and test’. With the testing infrastructure in place, you can create and maintain a custom-built CRM system with the assurance that future updates are not going to break your installation.
The Yii Framework was chosen as a base framework because its components tie tightly together, it is very fast, and has a strong community. Although Yii is a solid PHP framework and fit the best to our requirements, we still have had to modify it heavily. Yii Active Record did not satisfy our database abstraction plan, so we decided to use the RedBeanPHP ORM system, which is a lightweight system. It is not as popular as Doctrine or Propel, but it satisfies our needs. RedbeanPHP can work in two modes: unfrozen, where the database structure is not fixed, and frozen where database structure cannot be changed. During development, unfrozen mode should be used, and once database development is done, frozen model should be used. Frozen mode is much faster than unfrozen, so it should be used on production servers. With this approach, we just define the model’s metadata and the table is created automatically.
Yes, we know there are a lot of CRM applications out there. Why another one? Through our many years in the CRM industry, we still see companies struggling to implement a CRM application. The objective of Zurmo is to provide an easy-to-use, easy-to-customize CRM application that can be adapted to any business use case. We have taken special care to think through many different use cases and have designed a system that provides a high degree of flexibility, covering a wide variety of use cases out of the box.
Zurmo challenges the way people approach CRM. Traditionally, CRM systems have failed end users. We seek to correct this. For our end users, our mission is to make the system intuitive, easy to understand, natural, (and dare we say fun?). Gaming mechanics, training and guidance should be embedded in the application so people can accomplish their goals effectively. Our project is built on an honest open source model, supported by a diverse community passionate about engineering the highest quality CRM on Earth. Our ultimate goal is to create a CRM that everyone will actually use. Gamification and socialCRM functionality have increased user adoption and transitioned a dull system that sales/marketing people view as “the data entry thing” to an engaging, enchanting, and fun system that end users enjoy using.
Ray Stoeckicht (Co-Founder)