Building complex sites with Joomla


Published on

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

Published in: Technology, Education
  • Be the first to comment

  • Be the first to like this

No Downloads
Total Views
On Slideshare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

Building complex sites with Joomla

  1. 1. building complex sites with Joomla*<br />j and beyond 2010<br />paul delbar, delius<br />* and how not to get hurt doing it<br />
  2. 2. objectives<br />share experiences about handling complexity<br />how to do this with joomla<br />warning !<br />most of this presentation is not joomla-specific<br />
  3. 3. what do we mean by a complex site ? <br />
  4. 4. projects that tend to be complex<br />migrations from other CMSs<br />sites with complex content structures<br />strongly typed or interrelated content<br />online applications or platforms<br />sites with an extensive functional element<br />integrations with other (non-site) systems<br />anything with vague requirements<br />insufficiently clear and/or under constricted timelines<br />building things you have never built before<br />
  5. 5. customer issues that make it complex<br />lack of skills<br />low process maturity<br />unrealistic expectations<br />very complex requirements<br />poor communication and coordination<br />budget issues<br />timeline issues<br />lack of a strategic perspective<br />
  6. 6. example :<br />original project<br />someone’s first Joomla site<br />late and over budget<br />(really) badly coded<br />‘can you fix this ?’<br />customer had<br />bad experience<br />little technical knowledge<br />an unclear process<br />
  7. 7. example :<br />25th anniversary of REAB<br />academic session, press, …<br />discussed in March<br />started September<br />customer<br />had 5 weeks until the event<br />had no content available<br />runs web projects like any enterprise IT project<br />joint project with<br />
  8. 8. in general, areas of complexity are related to<br />the technical architecture chosen<br />how visitors wil experience the site<br />visual design and user experience<br />content and data to publish on the site<br />features and functional elements<br />other software solutions to integrate<br />operational parameters (speed, size, …)<br />the process driving changes to the site<br />architecture<br />navigation<br />visuals<br />content<br />functionality<br />integration<br />operations<br />process<br />
  9. 9. how to handle complexity<br />
  10. 10. 1. take the red pill<br />
  11. 11. 2. get to know your customer<br />
  12. 12. invest in effective communication<br />to understand your customer, you should<br />listen, listen, listen<br />observe and learn about their way of doing business<br />create a relationship<br />based on mutual respect<br />enabling open and factual discussions<br />focused on your customer’s success<br />
  13. 13. ways to mess this up<br />start the relationship by talking about yourself<br />make sure you demo at least three large sites<br />make technology the centerpiece of your offer<br />avoid discussions about budgets and timeline<br />ignore what happens after the site is live<br />do not challenge the customer’s requirements<br />assume content will be available on time<br />
  14. 14. the sales phase : foundation for success or …<br />establish the correct sequence of events<br />document and communicate your sales strategy<br />my favorite quote structure<br />background environment variables<br />problem definition what the customer needs<br />solution principle how you will fix it<br />statement of work what you will do to get there<br />estimate summary what efforts it will take<br />financial offer what it will cost<br />general conditions how you will do business<br />
  15. 15. develop a long-term plan<br />
  16. 16. 3. structure the project<br />
  17. 17. avoid heroic project targets<br />avoid big bang projects<br />use prototypes, pilots, phased rollouts<br />don’t be afraid to split the budget over phases<br />be clear on go/nogo milestones<br />cleanup jobs : fix one issue at a time<br />chances are you’ll discover more problems as you go<br />don’t kill the patient in surgery<br />do not let budget and time constraints rush you<br />walk away from the deal if you need to<br />
  18. 18. help the customer understand how you work<br />define each project phase <br />analysis<br />design<br />implementation<br />rollout<br />maintenance<br />by an explicit definition of<br />phase objectives and end conditions<br />deliverables<br />
  19. 19. example of a methodology summary<br />this approach agrees very well with Joomla<br />
  20. 20. example of a quote<br />
  21. 21. 4. take your time to analyze and design<br />
  22. 22. the purpose of analysis<br />to understand what the customer wants <br />develop a common terminology<br />not: teach them about components and modules<br />break this into content, function, visual, navigation, …<br />explain the process you propose to follow<br />make progress visible : document what you learn<br />use sketches, flipcharts, documents, …<br />share results and actively request feedback<br />
  23. 23. the purpose of design<br />to describe what you will build<br />must be some form of documentation<br />should cover all elements of the stack<br />try not to loose the customer in translation<br />ensure they feel comfortable sharing that you lost them<br />
  24. 24. analysis and design : navigation<br />discuss the intended target audience<br />translate this into a mindmap<br />evolve into menu items for each tpe of visitor<br />
  25. 25. analysis and design : navigation<br />complete the navigation design (Excel sheet)<br />build a ‘menu mockup’<br />will serve as an initial version once you start building<br />
  26. 26. analysis and design : visual<br />wireframes work well with Joomla<br />very clear separation into components and modules<br />our favorite: WireframeSketcher (Eclipse plugin)<br />prepare work sessions with customers<br />first, establish sample menu/component layouts<br />print empty pages and sketch or cut/paste modules<br />
  27. 27. analysis and design : visual<br />
  28. 28. analysis and design : content<br />discuss and document a conceptual content model<br />and here’s where Joomla doesn’t really shine ...<br />
  29. 29. 5. content: a matter of semantics<br />
  30. 30. example:<br />consortium of non-profits working in the south<br />original site<br />mambo 4.5.3<br />heavily hacked core<br />objective<br />upgrade to 1.5<br />migrate content<br />add functionality<br />
  31. 31. example:<br />initial analysis: 3 weeks <br />reviewing current site : what is being displayed<br />review database structure : how is it stored<br />conclusion<br />everything is an article, a category or a section<br />countries are categories<br />articles (real) are articles (j)<br />articles can describe multiple countries<br />com_content was hacked to link articles to multiple categories<br />
  32. 32. … and everything becomes an article !<br />
  33. 33. translating the semantic content structure<br />approach #1 : flatten into com_content<br />approach #2: build your own component<br />approach #3 : use a CCK extension<br />approach #4: use one|content<br />
  34. 34. do not make everything an article<br />
  35. 35. 6. architecture : use a strong foundation<br />
  36. 36. example :<br />
  37. 37. example :<br />three separate building blocks<br />crisp interface definitions<br />find a balance between<br />does this make the project more complex ?<br />does this make future modifications easier ?<br />live public information<br />data entry application<br />data cube<br />graph/grid<br /> API<br />
  38. 38. architecture matters<br />encapsulate and interface<br />use tried & tested design patterns<br />
  39. 39. 6. migrating: build the right tools<br />
  40. 40. example:<br />belgian nonprofit<br />original site<br />old-style CMS<br />provider bankrupted<br />here’s the data dump<br />we’ll get another one just before go-live<br />can you start building ?<br />now ?<br />
  41. 41. tools make your life so much easier<br />migration tools<br />script the entire conversion<br />improve as you discover errors<br />allows you to keep the live site running<br />and update content just before go-live<br />
  42. 42. 7. start small but plan to grow tall<br />
  43. 43. example :<br />
  44. 44. example :<br />J1.5 integrated with SugarCRM (one|content)<br />uses standard SugarCRM SOAP-interface for updates<br />lots of personalized, real-time content (no caching)<br />originally (NOV08) targeted at 500-1000 users<br />currently 7000+ users and climbing fast<br />2000 visits/day in a short time window<br />
  45. 45. how you can achieve scalability<br />decouple components and (sub)systems<br />makes it easier to replace/rescale a single element<br />helps to encapsulate low-level caching strategies<br />refactor often (evolution)<br />monitor performance, fix the bottleneck, repeat<br />be ready for a step change (revolution)<br />sometimes, it just gets too big<br />be prepared to question the initial architecture<br />in this case, dump SugarCRM<br />
  46. 46. good luck !<br />questions can be submitted at your own risk<br />
  47. 47. and on a lighter note …<br /><br />
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.