Tuesday, May 16, 2006

Software development and engineering manufacturing.

I came from manufacturing background. I grew up in an Industrial area in India. Since I was a kid I had tremendous interest in engineering manufacturing. I also worked in manufacturing industry for few years. I dealt with suppliers and contract manufacturers. It involved design of tooling and co-ordination with contract manufacturer to get it manufactured. All the specifications in engineering manufacturing are communicated through engineering drawing. Engineering drawing is very powerful specification tool. Once the idea is presented through engineering drawing, there is hardly any room for ambiguity. You can send any complex drawing to Singapore, Taiwan, India or any country for that matter, and get it done as you specified without much of a co-ordination. Most of the co-ordination is around dates, contracts and logistics.

I always wondered, if it is possible to get it produced as per the specification in engineering manufacturing then why it’s so difficult to get it done in software. I made an opinion that the engineering manufacturing is at least 300 years old industry and so the specifications are much matured. It will take some time for software to come up to that stage.

I asked this question to Dr. Mark Paulk. Mark is a Senior Systems Scientist at Carnegie Mellon University. He is currently working on the eSourcing Capability Model for Service Providers (eSCM-SP) and related sourcing topics for the IT Services Qualification Center. His research interests center on high maturity practices, statistical analysis and control of software processes, and agile methods. I met him in Carnegie Mellon’s west coast campus. He gave me very insightful answer. He said manufacturing and software development is not apple to apple comparison. Engineering design process can be compared with software development. You are constantly designing while you develop the software. The manufacturing equivalent in software is CD burning. CD burning is a very mature process and people can do it with zero defects. This sounded pretty trivial at face value but there was a tremendous insight behind it.

We all tend to consider software coding as if it’s a manufacturing process. We all try to manage software development as a production shop and we always fail. We need to understand that we are in design process till we cut the first CD for our customers. This means all stakeholders involved in development need to know what exactly customer needs. This means, all the people in development need to be very clear about product vision, market for the product, business aspect of product and of course the technology behind it. Most of the software development companies keep their developers away from business, keep their product people away from technology. This division of labor works fine in manufacturing when design is done. It really does not work during design where innovation is required.

Links :
Dr. Mark Paulk
http://west.cmu.edu/who_we_are/faculty_staff/directory/1772556.html

OpenSource software recommendations for mid sized company's IT

This blog is about a opensource software recommendations report for a mid sized company's IT . I have used a fictitious company called XYZ Semiconductors whose IT is willing to go for opensource software.

SugarCRM is one of the very mature business application within opensource software. SugarCRM customer list includes customers who are moving from salesforce.com to SugarCRM. I consider this as a significant achievement of opensource software.

Executive summary
XYZ Semiconductors needs CRM software for growing business needs. We recommend open source SugarCRM professional version to fulfill the needs. SugarCRM provides all the required CRM features for XYZ. It's very intuitive and easy to use for sales users and their management. It's very easy to customize the software for growing business needs.

Company profile
XYZ semiconductors Inc. is in the business of semiconductors design and distribution. They do chip designs and get the manufacturing done through contract manufacturers. The company started 5 years ago in 2001. It been growing 20% per year since then. The company's annual revenue for year 2005 was $ 200M.The company has IT department to support software applications used across business functions. Their IT has developed applications for finance and distribution over the past few years. These applications use Oracle database and Java/JSP as a technology stack.

CRM software need
As the company's business is growing they need CRM software to manage sales opportunities, promotions and pipelines effectively. They have potential 30 sales users who will use this software for day to day job. They also have some staff in marketing and sales who will need to have business intelligence functionality. They estimate that the number of users will go up to 60 users in next three years. Company needs a CRM software which can be implemented in two to three months time.

The software should be able to accommodate their changing business needs. The anticipated changes are due to changes in business processes, new product introduction etc. The software should be able to integrate with existing finance and distribution software. The software should scale for growth in number of users and number of transactions.

IT is looking for following functional features in CRM software.

1. Manage leads and opportunities generated through field sales and Tele-sales.
2. Manage sales pipeline.
3. Integration with existing finance and distribution system.
4. Marketing promotions and campaigns.

The IT management is open to use opensource software. The IT management is open for OpenSource software since they are using Bugzilla as a IT issue tracking tool.

SugarCRM recommendation
We strongly recommend SugarCRM1 open source software – professional version to fulfill CRM needs of the business. SugarCRM is the most significant open source player in the CRM market (other names include Anteil, Compiere, and OhioEdge). To build their CRM suite of products, SugarCRM has been able to galvanize and leverage a community of 3,000 developers2 SugarCRM includes features such as workflow management, user-interface themes, access control, mail merge, as well as customizable dashboards and advanced reporting. The workflow automation feature should bring SugarCRM closer to the more established SMB market players. Since Sales Automation is typically the first foray a company makes into CRM, lead assignment automation, alert generation, and other workflow automation are important features. Further notable features of SugarCRM include its availability in 24 languages, as well as the ability to define, launch and measure e-mail marketing campaigns, then transfer the campaign leads into the sales pipeline.

In addition to the features already mentioned above, SugarCRM also has support for wireless capability, accounts, contacts, leads, opportunities, tasks, emails, case management, and calendaring with call scheduling and meeting planning. Included is also Project Management, a non-typical SFA module. Furthermore, an additional module called Sugar Collaborate adds tools like document management, employee directory, and calendar synchronization.

Business benefits
We do see following benefits to XYZ.

1. Potential savings in license cost and support cost compared to established ERP vendors like Siebel.
2. All required feature are supported in professional version.
3. Availability of source code and no license restriction to modify the source code for customization needs. They need not to unnecessary alter their business processes simply because software can not support it.
4. SugarCRM is based on LAMP technology stack. It's very easy to find skills in this technology stack.

Licensing
The company needs to purchase SugarCRM under SugarCRM public license. It comes with unlimited online and email support and free software updates. Customer gets source code and they can modify it as per their requirements. The license cost as of 4/23/2006 is $239 per user per year. The license is called SugarCRM public license2 or SPL in short.


Support
Support is available through lot of product related information on SugarCRM website. We can classify support as free support and paid support. Here are the details.

Free support
1. Discussion forums available at http://www.sugarcrm.com/crm/index.php?option=com_network
There are dedicated forums for individual product features. All forums are very active. There are some forums for foreign languages.
2. Software updates, documentation, user manuals are available at http://www.sugarcrm.com/crm/download/sugar-suite.html.
3. We can look at the bug database through http://www.sugarcrm.com/crm/?option=com_sugarbugs&Itemid=&task=search. We can search bugs by different attributes.
4. SugarCRM has comprehensive FAQs (Frequently asked questions) available at http://www.sugarcrm.com/forums/faq.php

Paid support
It's provided by SugarCRM. Customers need to buy annual support which costs around $100 per year per licensed users. Customers can get support in the areas of installation, features and customization. Customers can access sugarNetwork for Microsoft plug-ins and training material.

We encourage XYZ to buy a support subscription for the first year. XYZ developers and business analysts can make use of free support and evaluate if the paid support subscription is required from next year. Please note, software updates are available to customers even if they do not subscribe to support services.

Consulting services
Professional consulting service is also available through Olliance group3. SugarCRM and Olliance group have strategic partnership. They offer complete consulting and technology solution packages for enterprises evaluating or running open source business applications.

XYZ's IT staff will be able to implement and maintain SugarCRM without the help from outside consulting firms. XYZ uses standard CRM processes from lead generation to order booking. These processes are supported by SugarCRM at a business process level. However there will be some customization required. SugarCRM is based on LAMP (Linux-Apache-MySQL-PHP) technology stack . It's very easy to find development skills in this technology stack as well as current development team familiar with database and web programming can come up to speed in this technology stack after sufficient training. There are lot of training courses available on web.

SugarCRM references
The references and case studies are available at http://www.sugarcrm.com/crm/customers/index.html. We encourage XYZ IT management to go through the case studies and contact customers to get more references

Recommendations for future
XYZ can make use of more features such as mobile connectivity in another phase. XYZ can also evaluate open source software in other domain
Most of the OpenSOurce software in the other domain areas like project management, content management, ERP applications are based on LAMP technology stack. Once XYZ gains experience in maintaining LAMP stack, it will easier for IT to adopt more open source software from other domains.
1http://www.sugarcrm.com/crm/
2http://www.sugarforge.org/content/developer-zone/
2http://www.sugarcrm.com/SPL/
3 http://www.olliancegroup.com