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.

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

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 />