Brendon Hatcher Joomla for web developers


Published on

Published in: Technology
  • Be the first to comment

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide
  • Urban slum -
  • Huge crowd -
  • Free hugs -
  • Robot -
  • Superhero -
  • Cake -
  • Parcel -
  • Approved -
  • Modify car
  • Mood board - or own image
  • Samurai -
  • Stubborn -
  • Detailed icing -
  • Keys -
  • Burnt computer -
  • Teamwork - link to : or
  • Recipe -
  • Pipes -
  • 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 />