41
building complex sites with Joomla* j and beyond 2010 paul delbar, delius and how not to get hurt doing it

Building complex sites with Joomla

Embed Size (px)

DESCRIPTION

How to survive complex web projects, tips and tricks for joomla sites

Citation preview

Page 1: Building complex sites with Joomla

building complex sites with Joomla*

j and beyond 2010paul delbar, delius

* and how not to get hurt doing it

Page 2: Building complex sites with Joomla

objectives

share experiences about handling complexityhow to do this with joomlawarning !

most of this presentation is not joomla-specific

Page 3: Building complex sites with Joomla

what do we mean by a complex site ?

Page 4: Building complex sites with Joomla

projects that tend to be complex

migrations from other CMSssites with complex content structures

strongly typed or interrelated contentonline applications or platforms

sites with an extensive functional elementintegrations with other (non-site) systemsanything with vague requirements

insufficiently clear and/or under constricted timelinesbuilding things you have never built before

Page 5: Building complex sites with Joomla

customer issues that make it complex

lack of skillslow process maturityunrealistic expectationsvery complex requirementspoor communication and coordinationbudget issuestimeline issueslack of a strategic perspective

Page 6: Building complex sites with Joomla

example : simplantacademy.org

original projectsomeone’s first Joomla sitelate and over budget(really) badly coded

‘can you fix this ?’customer had

bad experiencelittle technical knowledgean unclear process

Page 7: Building complex sites with Joomla

example : avrr.belgium.iom.int

25th anniversary of REABacademic session, press, …discussed in Marchstarted September

customerhad 5 weeks until the eventhad no content availableruns web projects like any

enterprise IT project

joint project with

Page 8: Building complex sites with Joomla

in general, areas of complexity are related to

the technical architecture chosenhow visitors wil experience the sitevisual design and user experiencecontent and data to publish on the sitefeatures and functional elementsother software solutions to integrateoperational parameters (speed, size, …)the process driving changes to the site

architecture

navigation

visuals

content

functionality

integration

operations

process

Page 9: Building complex sites with Joomla

how to handle complexity

Page 10: Building complex sites with Joomla

1. take the red pill

Page 11: Building complex sites with Joomla

2. get to know your customer

Page 12: Building complex sites with Joomla

invest in effective communication

to understand your customer, you shouldlisten, listen, listenobserve and learn about their way of doing business

create a relationshipbased on mutual respectenabling open and factual discussionsfocused on your customer’s success

Page 13: Building complex sites with Joomla

ways to mess this up

start the relationship by talking about yourselfmake sure you demo at least three large sitesmake technology the centerpiece of your offeravoid discussions about budgets and timelineignore what happens after the site is livedo not challenge the customer’s requirementsassume content will be available on time

Page 14: Building complex sites with Joomla

the sales phase : foundation for success or …

establish the correct sequence of eventsdocument and communicate your sales strategy

my favorite quote structurebackground environment variablesproblem definition what the customer needssolution principle how you will fix itstatement of work what you will do to get thereestimate summary what efforts it will takefinancial offer what it will costgeneral conditions how you will do business

Page 15: Building complex sites with Joomla

3. structure the project

Page 16: Building complex sites with Joomla

avoid heroic project targets

avoid big bang projectsuse prototypes, pilots, phased rolloutsdon’t be afraid to split the budget over phasesbe clear on go/nogo milestones

cleanup jobs : fix one issue at a timechances are you’ll discover more problems as you godon’t kill the patient in surgery

do not let budget and time constraints rush youwalk away from the deal if you need to

Page 17: Building complex sites with Joomla

help the customer understand how you work

define each project phase analysisdesignimplementationrolloutmaintenance

by an explicit definition ofphase objectives and end conditionsdeliverables

Page 18: Building complex sites with Joomla

example of a methodology summary

this approach agrees very well with Joomla

Page 19: Building complex sites with Joomla

example of a quote

Page 20: Building complex sites with Joomla

4. take your time to analyze and design

Page 21: Building complex sites with Joomla

the purpose of analysis

to understand what the customer wants

develop a common terminologynot: teach them about components and modulesbreak this into content, function, visual, navigation, …

explain the process you propose to followmake progress visible : document what you learn

use sketches, flipcharts, documents, …share results and actively request feedback

Page 22: Building complex sites with Joomla

the purpose of design

to describe what you will build

must be some form of documentationshould cover all elements of the stacktry not to loose the customer in translation

ensure they feel comfortable sharing that you lost them

Page 23: Building complex sites with Joomla

analysis and design : navigation

discuss the intended target audiencetranslate this into a mindmapevolve into menu items for each tpe of visitor

Page 24: Building complex sites with Joomla

analysis and design : navigation

complete the navigation design (Excel sheet)

build a ‘menu mockup’will serve as an initial version once you start building

Page 25: Building complex sites with Joomla

analysis and design : visual

wireframes work well with Joomlavery clear separation into components and modulesour favorite: WireframeSketcher (Eclipse plugin)

prepare work sessions with customersfirst, establish sample menu/component layoutsprint empty pages and sketch or cut/paste modules

Page 26: Building complex sites with Joomla

analysis and design : visual

Page 27: Building complex sites with Joomla

analysis and design : content

discuss and document a conceptual content model

and here’s where Joomla doesn’t really shine ...

Page 28: Building complex sites with Joomla

5. content: a matter of semantics

Page 29: Building complex sites with Joomla

example: 11.be

consortium of non-profits working in the south

original sitemambo 4.5.3heavily hacked core

objectiveupgrade to 1.5migrate contentadd functionality

Page 30: Building complex sites with Joomla

example: 11.be

initial analysis: 3 weeks reviewing current site : what is being displayedreview database structure : how is it stored

conclusioneverything is an article, a category or a sectioncountries are categoriesarticles (real) are articles (j)articles can describe multiple countries

com_content was hacked to link articles to multiple categories

Page 31: Building complex sites with Joomla

… and everything becomes an article !

Page 32: Building complex sites with Joomla

translating the semantic content structure

approach #1 : flatten into com_contentapproach #2: build your own componentapproach #3 : use a CCK extensionapproach #4: use one|content

Page 33: Building complex sites with Joomla

6. migrating: build the right tools

Page 34: Building complex sites with Joomla

example: broederlijkdelen.be

belgian nonprofitoriginal site

old-style CMSprovider bankrupted

here’s the data dumpwe’ll get another one

just before go-livecan you start building ?now ?

Page 35: Building complex sites with Joomla

tools make your life so much easier

migration toolsscript the entire conversionimprove as you discover errors

allows you to keep the live site runningand update content just before go-live

Page 36: Building complex sites with Joomla

7. start small but plan to grow tall

Page 37: Building complex sites with Joomla

example : biketowork.be

Page 38: Building complex sites with Joomla

example : biketowork.be

J1.5 integrated with SugarCRM (one|content)uses standard SugarCRM SOAP-interface for updateslots of personalized, real-time content (no caching)

originally (NOV08) targeted at 500-1000 userscurrently 7000+ users and climbing fast2000 visits/day in a short time window

Page 39: Building complex sites with Joomla

how you can achieve scalability

decouple components and (sub)systemsmakes it easier to replace/rescale a single elementhelps to encapsulate low-level caching strategies

refactor often (evolution)monitor performance, fix the bottleneck, repeat

be ready for a step change (revolution)sometimes, it just gets too bigbe prepared to question the initial architecturein this case, dump SugarCRM

Page 40: Building complex sites with Joomla

good luck !

questions can be submitted at your own risk

Page 41: Building complex sites with Joomla

and on a lighter note …

http://www.youtube.com/watch?v=XgoKh-QbOMQ