Experience with a Cluster JVM Philip J. Hatcher University of New Hampshire [email protected].
Brendon Hatcher Joomla for web developers
-
Upload
joomla-day-south-africa -
Category
Technology
-
view
981 -
download
6
Transcript of Brendon Hatcher Joomla for web developers
Joomla!
for Web
Developers
The business
case and process for u
sing
Joomla
Brendon HatcherTechnical Director: BrilliantWeb
Introduction
PerspectivesAbstractOur position
Perspectives
Adoption of Joomla by professional, commercial web development agencies
Transition from non-CMS web site development to the Joomla CMS
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
Our position
BrilliantWeb is a Joomla-only development firm– We no longer build HTML sites– We apply only Joomla solutions to meet our client needs
If 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
Outline
Business case for using Joomla Business model and best practice Joomla web development processes Shameless advert for BrilliantWeb’s services
The business
case for using Joomla
Safety in numbersProfitability
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
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
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
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
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
Business model
and best practice
Project scoping and pricingManaging messinessJoomla-optimised hosting serviceSecurity upgradesExtension upgradesClient access to the backendBackups!
Project scoping and pricing
Tier 1: – A package offering
Tier 2: – The package with pre-approved
extensions
Tier 3:– Custom Joomla-based solution
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
Scoping / Tier 2:
Package + pre-approved extensions Selected extension for each commonly-requested
site feature– Our Joomla distro + pre-approved extensions
Simplicity and extensibility– Quickly match features to client requirements without
lots of additional research– Costing and contractual elements– Scoping forms
Scoping / Tier 3:
Custom Joomla-based solution Custom scoping, installation and configuration
– Our Joomla distro + 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
Scoping
Layout 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
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
Scoping
Managing 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
Scoping / Managing messiness
Simple = 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!)
Scoping / Managing messiness
Maybe 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
Scoping / Managing messiness
Not 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
Scoping / Managing messiness
1 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
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
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!
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
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
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?
Backups are essential
CMS sites change more frequently than static sites
CMS sites are more vulnerable to catastrophic failure
Backups
A 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
Backups
A 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
Joomla web
developmentprocesses
Everybody, follow the recipeSpeeding up developmentLocal vs online developmentParallel development
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
Speeding up development Start with a distro MassContent page and menu creator Data import tools
– SQL and CSV
Template frameworks JCE
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
Parallel development
System installation and configuration
Content insertion
Templating
Rela
ted
off
eri
ng
s Joomla distros 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 |
We are currently exploring selling access to our distro and to our extension scoping forms– Contact us if you are interested
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