3. Perspectives Adoption of Joomla by professional, commercial web development agencies Transition from non-CMS web site development to the Joomla CMS
4. Abstract Using Joomla to build client web sites makes business sense Ease of use Wide range of functionality available through extensions Speed of site development Building a business around Joomla Relationship between business processes, design processes, contractual arrangements etc on the one hand, and Joomla on the other Structure your web development offerings and processes around the Joomla framework
5. Our position BrilliantWeb is a Joomla-only development firm We no longer build HTML sites We apply only Joomla solutions to meet our client needsIf a client wants a 1-page web site, we build it in Joomla! Focusing on a single development platform (Joomla) allows for broad and deep expertise
6. Outline Business case for using Joomla Business model and best practice Joomla web development processes Shameless advert for BrilliantWeb’s services
8. Safety in numbers Pre-Joomla: ad hoc hodgepodge of separate PHP and Perl scripts, cobbled together to suit a client’s specifications With Joomla: extensions Large centralised repository of extension Mostly work well together
9. Safety in numbers Sheer size of the Joomla user and developer community Sufficiently large user communities to contribute to support, code fixes, workarounds etc Main Joomla support forum users can often support extensions Abandoned extensions are often adopted by other developers Security vulnerability alerts
10. Profitability Development budget allocation As development budgets get squeezed the “mostly free” aspect of Joomla makes a big difference to your bottom line Entirely free GPL extensions Commercial GPL extensions Remain affordable due to their “single fee for unlimited use” approach Extensions under a pay-per-use model Tend to be really powerful components
11. Profitability Speed of development and maintenance Many maintenance aspects are simpler using a CMS You add an article and Joomla (plus extensions) automatically: Adds the title to the sidebar under“Recent Articles” Adds the title, summary and automatically generated thumbnail to the blog page Pushes the summary to twitter and facebook Adds the entry to the RSS feed and Google sitemap Sends the summary out to subscribers via email
12. Profitability Increasing numbers of clients specifically seek web developers with Joomla experience/expertise Growing commercial opportunities within the Joomla ecosystem Template development Joomla-oriented SEO Commercial extension development Joomla technical support etc
13. Business modeland best practice Project scoping and pricing Managing messiness Joomla-optimised hosting service Security upgrades Extension upgrades Client access to the backend Backups!
14. Project scoping and pricing Tier 1: A package offering Tier 2: The package with pre-approved extensions Tier 3: Custom Joomla-based solution
15. Scoping / Tier 1:A package offering A set of core functions provided for in our distro Joomla core + selected extensions + a template framework Simplicity Really easy to scope simple sites Development processes are well understood, documented and correctly costed Contract with suitable terms and conditions Live sample of our distro Vertical markets Powerful packages
16. Scoping / Tier 2:Package + pre-approved extensions Selected extension for each commonly-requested site feature Our Joomladistro + pre-approved extensions Simplicity and extensibility Quickly match features to client requirements without lots of additional research Costing and contractual elements Scoping forms
17. Scoping / Tier 3:Custom Joomla-based solution Custom scoping, installation and configuration Our Joomladistro + pre-approved extensions + other extensions/custom code etc Reducing scoping effort by passing the burden and responsibility to the client Complex scoping = separate mini-project
18. ScopingLayout and design Really challenging to scope layouts without seeing final content Any ideas? Goes well beyond template selection Overall look and feel Content structure Landing pages Component-specific layouts
19. Scoping / Layout and design Template challenges Free templates Poor styling for some elements No support forum Commercial templates Demo: Fantastic images and content constructed to fill all the myriad sliders and modules on the page Client: Crappy images and most modules turned off! Custom templating Huge effort, huge costs Poor starting graphic Cross browser compatibility issues Endless scope creep Template framework
20. ScopingManaging messiness “A battle plan seldom survives contact with the enemy” Helmuth von Moltke the Elder “A project scope seldom survives contact with the site content” Me
21. Scoping / Managing messinessSimple = No problem Standard UI switches Simple template tweaks During development explain scope creep make change After launch make change (engage with client and sell them something!)
22. Scoping / Managing messinessMaybe simple, Maybe no problem Addition of new modules Restructure menus Template output overrides (here be dragons) We try to push this work to after site launch If we don’t, we regret it! Cost is usually not the factor, it is project delays
23. Scoping / Managing messinessNot gonna do it Hacks to the PHP code Circumvent security Break things in non-obvious ways Get overwritten during upgrade Or, prevent extension or core upgrade
24. Scoping / Managing messiness1 pixel to the right, please Fussy clients are a productivity black hole Assert your expertise in a way that they can trust Use financial constraints to rein them in
25. Joomla-optimised hosting service Server and site security is really important Scripting language (PHP), database (MySQL), CMS (Joomla), user behaviour The ideal setup Managed, dedicated server with full SSH access & WHM access Customise the server Avoiding hosting issues Incentivise clients to use your Joomla-optimised hosting service Reduced Service Level Agreements if they host elsewhere
26. Security upgrades You need a clear business model Issues Client resistance to costs Tracking vulnerable sites Service levels and effort Major version upgrades (especially at End Of Life)? Similar issues with non-security upgrades for extensions Annual service plan When client requests / When we have spare retainer hours!
27. Client access to backend Restructuring revenue streams You need to find other ways to make money from these clients Training Cover the costs of training clients Have the necessary resources (training facilities and training manuals) to do so Security issues Clients leaving passwords lying around Use an insecure PC or browser for site administration Install insecure extensions without telling you
28. Client access to backend A little knowledge is dangerous Clients hack the PHP or template, move system folders around etc, and then get really surprised when the site breaks! Damage to developer reputation I remove my design imprint from the footer after client trashes the site Broken sites and the blame game Clients paste Microsoft code from MS Word, mess with file systems etc and break the site
29. Client access to backend Restricting access to specific aspects of the backend Usually runs into boundary issues, where the proposed solution allows access to something that should be restricted, or blocks something that they do need to access Editing from the frontend Not universal – most extensions don’t have frontend editing Restricted – those extensions that do have frontend editing often restrict what can be done Any better in Joomla 1.6?
30. Backups are essential CMS sites change more frequently than static sites CMS sites are more vulnerable to catastrophic failure
31. BackupsA shared responsibility System backup (host provider) Daily Entire cPanel account Separate drive, or separate server Full backup, not differential Supplemented with weekly and monthly backups Downloaded backups (by client) Ad hoc backup (using Akeeba Backup) Files, database and custom installer Reduces our liability somewhat
32. BackupsA shared responsibility Daily database backups (automated) Database changes much more frequently than the file system Database to remote location or email inbox System restore points (automated) Backup automatically as you start to install something Remote backups (automated) Host provider backups may fail Move a daily or weekly backup to cloud-based storage Restore the backup to any server, not just the current one
34. Everybody follow the recipe Using a distro and pre-approved extensions Easier and easier to document the site development process Devolve activities to lower-skilled employees
35. Speeding up development Start with a distro MassContent page and menu creator Data import tools SQL and CSV Template frameworks JCE
36. Local vs online development Build online The local development environment is seldom a perfect match with the live server configuration Share work in progress with the client Distributed team needs access from their home offices Firebug and extPlorer simplify development on a live server Once a site is published, your live and local copies are going to diverge rapidly anyway Always build on dev, not live server http://newclient.brilliantweb.co.za
38. Joomladistros and Joomla site security I cover these in much more detail in separate talks later in the Joomla Day SA 2011 programme Other Joomla topics see the archive on the www.joomladay.co.za site BrilliantWeb provides scoping, consulting and other services to other Joomla web developers Contact Ingrid: 083 783 317 | sales@brilliantweb.co.za We are currently exploring selling access to our distro and to our extension scoping forms Contact us if you are interested Related offerings
39. Credits Brendon Hatcher is the compiler of this presentation The presentation is released under the Creative Commons Licence – Attribution, Non-commercial, No derivatives If you don’t know what this licence means, find out about it at creativecommons.org