Building complex sites with Joomla

  • Published on

  • View

  • Download


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


<ul><li> 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 /></li> <li> 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 /></li> <li> 3. what do we mean by a complex site ? <br /></li> <li> 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 /></li> <li> 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 /></li> <li> 6. example :<br />original project<br />someones 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 /></li> <li> 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 /></li> <li> 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 /></li> <li> 9. how to handle complexity<br /></li> <li> 10. 1. take the red pill<br /></li> <li> 11. 2. get to know your customer<br /></li> <li> 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 customers success<br /></li> <li> 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 customers requirements<br />assume content will be available on time<br /></li> <li> 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 />backgroundenvironment variables<br />problem definitionwhat the customer needs<br />solution principlehow you will fix it<br />statement of workwhat you will do to get there<br />estimate summary what efforts it will take<br />financial offerwhat it will cost<br />general conditionshow you will do business<br /></li> <li> 15. develop a long-term plan<br /></li> <li> 16. 3. structure the project<br /></li> <li> 17. avoid heroic project targets<br />avoid big bang projects<br />use prototypes, pilots, phased rollouts<br />dont 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 youll discover more problems as you go<br />dont 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 /></li> <li> 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 /></li> <li> 19. example of a methodology summary<br />this approach agrees very well with Joomla<br /></li> <li> 20. example of a quote<br /></li> <li> 21. 4. take your time to analyze and design<br /></li> <li> 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 /></li> <li> 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 /></li> <li> 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 /></li> <li> 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 /></li> <li> 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 /></li> <li> 27. analysis and design : visual<br /></li> <li> 28. analysis and design : content<br />discuss and document a conceptual content model<br />and heres where Joomla doesnt really shine ...<br /></li> <li> 29. 5. content: a matter of semantics<br /></li> <li> 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 /></li> <li> 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 /></li> <li> 32. and everything becomes an article !<br /></li> <li> 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 /></li> <li> 34. do not make everything an article<br /></li> <li> 35. 6. architecture : use a strong foundation<br /></li> <li> 36. example :<br /></li> <li> 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 /></li> <li> 38. architecture matters<br />encapsulate and interface<br />use tried &amp; tested design patterns<br /></li> <li> 39. 6. migrating: build the right tools<br /></li> <li> 40. example:<br />belgian nonprofit<br />original site<br />old-style CMS<br />provider bankrupted<br />heres the data dump<br />well get another one just before go-live<br />can you start building ?<br />now ?<br /></li> <li> 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 /></li> <li> 42. 7. start small but plan to grow tall<br /></li> <li> 43. example :<br /></li> <li> 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 /></li> <li> 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 /></li> <li> 46. good luck !<br />questions can be submitted at your own risk<br /></li> <li> 47. and on a lighter note <br /><br /></li> </ul>


View more >