Businesses that were quick to adopt Joomla soon discovered that options are limited for people with no Joomla programming experience. Lay people may be able to work with templates and set up simple features, but customization requires at least an intermediate understanding of PHP, with some additional experience in CSS, mySQL and database architecture. Businesses wishing to save money on programming costs quickly found themselves mired in special needs they were poorly equipped to handle, and the specialized field of Joomla development was born.
The open source nature of Joomla's code makes it endlessly extensible; anyone can write modules to adapt and customize the system, and many developers offer modules on their own websites. However, even utilizing prewritten code, integration and customization can be tricky. Ready-made components include common features like photo albums, guestbooks, forums and event calendars. Since every business has different requirements for collecting and reporting customer information, a plugin component that addresses the specific needs of a business would be nearly impossible.