Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Brendon Hatcher Joomla for web developers


Published on

Published in: Technology
  • Be the first to comment

Brendon Hatcher Joomla for web developers

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