What is a use case?
According to Alistair Cockburn, use case captures a contract between stakeholders of a system about its behavior.
Why use cases are important?
Use cases depict all possible interaction of users with the software system. In any project, capturing use cases is a useful step. It helps us to think in direction of end user’s perspective. We tend to capture significant exceptions conditions in requirements stage itself. It helps development team to understand the system from user perspective. Use case also helps project managers to set milestones and come up with estimations.
User interaction might be very small percentage of total requirements, but all the requirements revolves around user interaction. Consider user interaction as a hub of requirement wheel and the spokes are resulting requirements in all direction. If we can capture most of the user interactions then we can assume that we have captured most of all requirements.
Use cases are not perfect. We write use cases based on current understanding of system and domain knowledge. In all software projects teams’ understanding of domain, requirements and technology improves as time passes. It’s a natural process. Some use cases might sound stupid towards the end of the project, but you need to appreciate that those stupid use cases lead you towards right path. We need to strive to make use cases sufficient.
Reference
I would recommend a book called “Writing Effective Use Cases” by Alistair Cockburn. Author discusses various use cases formats and their applicability in different situations.
Hello, this is Prashant Motewar. Thank you for visiting this blog. I am passionate about using new technology to solve real business problems. I love everything related to software development. I worked on IT Management, ERP implementations, Product strategy, Product management, Architecture, and development. This blog is reflection of some Aha! moments during my career.
Sunday, May 28, 2006
Friday, May 19, 2006
Contextual design
Any successful system improves its users’ work practice. The improvement means increase in efficiency and accuracy. One should be able to deliver in less amount of time without any errors. Technology in software really does not matter. People decide to use jazzy user interfaces because they look good during demo and they look “cool” to your developers. But, if that extra graphics is killing the performance and not adding any convenience to end users then it’s incorrect technology to use. If particular software is going to improve the system then it will get revealed during design phase itself. If we are not sure about it after completing high level design then do not start coding. It’s time to revisit your design.
Contextual design as described by Hugh Beyer and Karen Holtzblatt promises successful software. The process of contextual design drives work redesign if required. Work redesign brings the designers together to discuss the consolidated data and how technology can improve the work. This focuses the conversation on how technology helps people to get their jobs done, rather than on what could be done with technology without considering the impact on people’s real lives.
For more details on contextual design, I would recommend you to go through book called “Contextual design – Beyer/ Holtzblatt”.
This book is available on Amazon.com
http://www.amazon.com/gp/product/1558604111/qid=1148032519/sr=2-1/ref=pd_bbs_b_2_1/102-4335525-3001724?s=books&v=glance&n=283155
Contextual design as described by Hugh Beyer and Karen Holtzblatt promises successful software. The process of contextual design drives work redesign if required. Work redesign brings the designers together to discuss the consolidated data and how technology can improve the work. This focuses the conversation on how technology helps people to get their jobs done, rather than on what could be done with technology without considering the impact on people’s real lives.
For more details on contextual design, I would recommend you to go through book called “Contextual design – Beyer/ Holtzblatt”.
This book is available on Amazon.com
http://www.amazon.com/gp/product/1558604111/qid=1148032519/sr=2-1/ref=pd_bbs_b_2_1/102-4335525-3001724?s=books&v=glance&n=283155
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
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
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
Saturday, May 13, 2006
Installation of commonly required opensource software on Linux
I strongly feel that all software will become open source in next ten years. As the software become commodity, source code really does not matter. How you create business around your software matters a lot. Opensource software on Linux is a persuading combination for computer adoption by common people from developing countries like India, China etc. Most of the middle class educated people can not afford Microsoft products. There are tons of small scale businesses in India who are willing to go for back office automation but the hurdle is license cost and support cost. Hardware cost is really not a big deal.
I thought, let's install commonly used openSource software on Linux and see how mature is the market in this domain. I found lot of interesting information around business models based on OpenSource software. I will post that information in next blogs.
I will focus on installation part in today's blog.
1. Introduction
------------------
This document talks about creating Linux partition on laptop and installation of followings software:
Linux distro Ubuntu 5.10
Apache, PHP and MySQL (Great gift for small-medium size business IT)
SugarCRM (Successful opensource customer relationship management)
Drupal (Content management opensource software)
2 Creating new partition on laptop
-------------------------------------------
Before install, I used QTParted on a Knoppix CD to resize my WinXP partition to 80GB from 90GB.
3 Installation of Ubuntu Linux distro
---------------------------------------------
3.1 Ubuntu 5.10 installation
----------------------------------
CD image for Ubuntu 5.10 (ubuntu-5.10-install-i386.iso) is available at http://mirror.mcs.anl.gov/pub/ubuntu-iso/CDs/5.10/
I burned a CD with above image and installed Ubuntu on remaining 10GB partition.
3.2 Updating installation
-------------------------------
I updated installation by issuing following command
# sudo apt-get update
3.3 Activating wireless connection
-----------------------------------------
We need to first make sure that the wireless card on laptop is recognized by Ubuntu installation. I confirmed it from network settings as follows:
1. Go to System -> Administration -> Networking
2. Click on ÂWireless connection and then click on ÂPropertiesÂ.
3. Select Network name from list of available networks.
4. In ÂConnection settings section, set configuration to ÂDHCPÂ.
5. Click OK.
This will set up a wireless connection.
3.4 Configuration of Printer
----------------------------------
Follow the steps for printer configuration:
Go to System-> Administration-> Printing
Click on ÂNew PrinterÂ
Select ÂNetwork PrinterÂ
Specify URI. In my case, it was a printer within my company.
4 Installation of Apache2
-------------------------------
Ubuntu has provided apt-get utility for installing standard packages like Apache, PHP and MySQL. We can install these software by issuing following commands:
# sudo apt-get install apache2
It installed Apache version 2.0.54
You can re-start apache for sanity check by following command
# /etc/init.d/apache2 restart
Forcing reload of web server (Apache2)...
We can confirm the installation by going to http://localhost/apache2-default/ through browser.
5 Installation of PHP
-------------------------
PHP version 5.0.5-2 was installed using following command.
# sudo apt-get install php5
In order to test PHP, I created a small testphp.php page as follows:
Copied testphp.php to /var/www. It was viewed through http://localhost/testphp.php.
6 Installation of MySQL
-----------------------------
I followed instructions on MySQL's website http://dev.mysql.com/doc/refman/5.0/en/Linux-rpm.rpm.html to install MySQL server 5.0.19.
Later I followed post installation steps from http://dev.mysql.com/doc/refman/5.0/en/unix-post-installation.html for validating and testing installation.
7 Installation of sugarCRM
---------------------------------
I went through following steps for installation of sugarCRM.
1. Download latest stable version of suagarCRM from http://www.sugarforge.org/frs/download.php/1104/SugarSuite-4.0.1e.zip
2. Copy SugarSuite-4.0.1e.zip to apache2's public html directory. In my case, I copied to /var/www
3. Unzip SugarSuite-4.0.1e.zip
4. Rename SugarSuite-4.0.1e to sugarCRM for convenience.
5. Restart apache2
root@prashant:~# /etc/init.d/apache2 restart
* Forcing reload of web server (Apache2)...
6. Go to http://localhost/sugarCRM. It starts the installation wizard on browser itself. This wizard will take you through license acceptance and registration.
7. Continue following the wizard. It does a system acceptance check. It asks you to perform certain tasks if the system is not ready for installation. In my case, I had to do following corrections:
- I needed to give write permissions to following directories and their1 sub-
directories in /var/www/sugarCRM:
custom, modules, data, cache,
- I needed to give write permissions to /var/www/sugarCRM/config.php
- It asked me to increase PHP memory limit to 20M or larger. This was done
by modifying /etc/php5/apache2/php.ini file. We need to search for word
'memory_limit' and set it to 20M as follows
memory_limit = 20M
8. The next step is to do database configuration. It was done with following parameters
- Host Name : localhost
- DatabaseName : sugarCRM
- User Name for SugarCRM : sugarcrm
- Password for SugarCRM : welcome
- SugarCRM admin password : welcome
9. With these steps, I was supposed to be done with installation but I faced one hurdle. SugarCRM was not connecting to MySQL database. It gave me following error:
Database admin user name and/or password is invalid (Error 1251: Client does not support authentication protocol requested by server; consider upgrading MySQL client).
I restarted MySQL database and restarted Apche2 but the error did not go away. I went to SugarCRM help forum and posted this question twice but I did not get any response. Finally, I found some information in MySQL documentation http://dev.mysql.com/doc/refman/5.0/en/old-client.html
This documentation explained the configuration steps for old client. The error was due to the fact that the sugarCRM latest stable version uses older MySQL client. We need to update MySQL root password using ÂOLD_PASSWORDÂ API.
mysql> UPDATE mysql.user SET Password = OLD_PASSWORD('welcome')
-> WHERE Host = 'localhost' AND User = 'root';
mysql> FLUSH PRIVILEGES;
This step resolved the issue with database connection and I was able to complete installation.
8 Installation of Drupal
I followed the instruction on http://wiki.clug.org.za/wiki/Drupal_CMS_on_Ubuntu_5.10_(Breezy)
for drupal installation. Drupal installation was very straightforward and I could complete it without any hurdle. Here are the steps used :
1. Download Drupal in some directory
wget http://drupal.org/files/projects/drupal-4.6.5.tar.gz
2. Extract the contents of above archive.
tar -zxvf drupal-4.6.5.tar.gz
3. Move Drupal into web server's root directory
sudo mv drupal-4.6.5/* /var/www
sudo nv drupal-4.6.5/.htaccess /var/www
4. Create the Drupal database:
mysqladmin -u root -p create drupal
5. Set database access rights for Drupal database:
# mysql -u root -p
mysql> GRANT ALL PRIVILEGES ON drupal.* TO root@localhost IDENTIFIED BY 'welcome';
mysql> FLUSH PRIVILEGES;
mysql> quit
6. Load Drupal database schema.
mysql -u root -p drupal < database/database.mysql
7.Configure Drupal to access MySQL
cd /var/www/sites/default
sudo vi settings.php
Search for word mysql and modify db_url as follows:
$db_url = 'mysql://root:welcome@localhost/drupal';
We need to remove previous index.html (if any) from /var/www directory.
8. This completes the Drupal installation. Drupal does not create any sub-directory in apache's public html. In other words, we can log on to Drupal by going to http://localhost. We need to remove previous index.html (if any) from /var/www directory.
I thought, let's install commonly used openSource software on Linux and see how mature is the market in this domain. I found lot of interesting information around business models based on OpenSource software. I will post that information in next blogs.
I will focus on installation part in today's blog.
1. Introduction
------------------
This document talks about creating Linux partition on laptop and installation of followings software:
Linux distro Ubuntu 5.10
Apache, PHP and MySQL (Great gift for small-medium size business IT)
SugarCRM (Successful opensource customer relationship management)
Drupal (Content management opensource software)
2 Creating new partition on laptop
-------------------------------------------
Before install, I used QTParted on a Knoppix CD to resize my WinXP partition to 80GB from 90GB.
3 Installation of Ubuntu Linux distro
---------------------------------------------
3.1 Ubuntu 5.10 installation
----------------------------------
CD image for Ubuntu 5.10 (ubuntu-5.10-install-i386.iso) is available at http://mirror.mcs.anl.gov/pub/ubuntu-iso/CDs/5.10/
I burned a CD with above image and installed Ubuntu on remaining 10GB partition.
3.2 Updating installation
-------------------------------
I updated installation by issuing following command
# sudo apt-get update
3.3 Activating wireless connection
-----------------------------------------
We need to first make sure that the wireless card on laptop is recognized by Ubuntu installation. I confirmed it from network settings as follows:
1. Go to System -> Administration -> Networking
2. Click on ÂWireless connection and then click on ÂPropertiesÂ.
3. Select Network name from list of available networks.
4. In ÂConnection settings section, set configuration to ÂDHCPÂ.
5. Click OK.
This will set up a wireless connection.
3.4 Configuration of Printer
----------------------------------
Follow the steps for printer configuration:
Go to System-> Administration-> Printing
Click on ÂNew PrinterÂ
Select ÂNetwork PrinterÂ
Specify URI. In my case, it was a printer within my company.
4 Installation of Apache2
-------------------------------
Ubuntu has provided apt-get utility for installing standard packages like Apache, PHP and MySQL. We can install these software by issuing following commands:
# sudo apt-get install apache2
It installed Apache version 2.0.54
You can re-start apache for sanity check by following command
# /etc/init.d/apache2 restart
Forcing reload of web server (Apache2)...
We can confirm the installation by going to http://localhost/apache2-default/ through browser.
5 Installation of PHP
-------------------------
PHP version 5.0.5-2 was installed using following command.
# sudo apt-get install php5
In order to test PHP, I created a small testphp.php page as follows:
Copied testphp.php to /var/www. It was viewed through http://localhost/testphp.php.
6 Installation of MySQL
-----------------------------
I followed instructions on MySQL's website http://dev.mysql.com/doc/refman/5.0/en/Linux-rpm.rpm.html to install MySQL server 5.0.19.
Later I followed post installation steps from http://dev.mysql.com/doc/refman/5.0/en/unix-post-installation.html for validating and testing installation.
7 Installation of sugarCRM
---------------------------------
I went through following steps for installation of sugarCRM.
1. Download latest stable version of suagarCRM from http://www.sugarforge.org/frs/download.php/1104/SugarSuite-4.0.1e.zip
2. Copy SugarSuite-4.0.1e.zip to apache2's public html directory. In my case, I copied to /var/www
3. Unzip SugarSuite-4.0.1e.zip
4. Rename SugarSuite-4.0.1e to sugarCRM for convenience.
5. Restart apache2
root@prashant:~# /etc/init.d/apache2 restart
* Forcing reload of web server (Apache2)...
6. Go to http://localhost/sugarCRM. It starts the installation wizard on browser itself. This wizard will take you through license acceptance and registration.
7. Continue following the wizard. It does a system acceptance check. It asks you to perform certain tasks if the system is not ready for installation. In my case, I had to do following corrections:
- I needed to give write permissions to following directories and their1 sub-
directories in /var/www/sugarCRM:
custom, modules, data, cache,
- I needed to give write permissions to /var/www/sugarCRM/config.php
- It asked me to increase PHP memory limit to 20M or larger. This was done
by modifying /etc/php5/apache2/php.ini file. We need to search for word
'memory_limit' and set it to 20M as follows
memory_limit = 20M
8. The next step is to do database configuration. It was done with following parameters
- Host Name : localhost
- DatabaseName : sugarCRM
- User Name for SugarCRM : sugarcrm
- Password for SugarCRM : welcome
- SugarCRM admin password : welcome
9. With these steps, I was supposed to be done with installation but I faced one hurdle. SugarCRM was not connecting to MySQL database. It gave me following error:
Database admin user name and/or password is invalid (Error 1251: Client does not support authentication protocol requested by server; consider upgrading MySQL client).
I restarted MySQL database and restarted Apche2 but the error did not go away. I went to SugarCRM help forum and posted this question twice but I did not get any response. Finally, I found some information in MySQL documentation http://dev.mysql.com/doc/refman/5.0/en/old-client.html
This documentation explained the configuration steps for old client. The error was due to the fact that the sugarCRM latest stable version uses older MySQL client. We need to update MySQL root password using ÂOLD_PASSWORDÂ API.
mysql> UPDATE mysql.user SET Password = OLD_PASSWORD('welcome')
-> WHERE Host = 'localhost' AND User = 'root';
mysql> FLUSH PRIVILEGES;
This step resolved the issue with database connection and I was able to complete installation.
8 Installation of Drupal
I followed the instruction on http://wiki.clug.org.za/wiki/Drupal_CMS_on_Ubuntu_5.10_(Breezy)
for drupal installation. Drupal installation was very straightforward and I could complete it without any hurdle. Here are the steps used :
1. Download Drupal in some directory
wget http://drupal.org/files/projects/drupal-4.6.5.tar.gz
2. Extract the contents of above archive.
tar -zxvf drupal-4.6.5.tar.gz
3. Move Drupal into web server's root directory
sudo mv drupal-4.6.5/* /var/www
sudo nv drupal-4.6.5/.htaccess /var/www
4. Create the Drupal database:
mysqladmin -u root -p create drupal
5. Set database access rights for Drupal database:
# mysql -u root -p
mysql> GRANT ALL PRIVILEGES ON drupal.* TO root@localhost IDENTIFIED BY 'welcome';
mysql> FLUSH PRIVILEGES;
mysql> quit
6. Load Drupal database schema.
mysql -u root -p drupal < database/database.mysql
7.Configure Drupal to access MySQL
cd /var/www/sites/default
sudo vi settings.php
Search for word mysql and modify db_url as follows:
$db_url = 'mysql://root:welcome@localhost/drupal';
We need to remove previous index.html (if any) from /var/www directory.
8. This completes the Drupal installation. Drupal does not create any sub-directory in apache's public html. In other words, we can log on to Drupal by going to http://localhost. We need to remove previous index.html (if any) from /var/www directory.
Subscribe to:
Posts (Atom)