Slideshow transcript
Slide 1: Anti-patterns and Patterns for successful projects Things to avoid and things to do in a difficult content management world ! Speaker: Kamon AYEVA
Slide 2: Me Kamon AYEVA Ingeniweb Zope/Plone solutions & training
Slide 3: Introduction (Why care ?) Any website project is a ”software” project ... at some level !
Slide 4: People User - Project Manager - Developer
Slide 5: Successful project ? Success depends on how the 3 parties work together
Slide 6: The main challenge Each party has his own priorities !
Slide 7: The first tip ! Better understand each other !
Slide 8: The Developer It's a though game here ! CMS, DMS, Web 2.0 Frameworks, Flex, AjaX, JavaFX Python, Java, Ruby, .Net Trying hard to get the CMS right !
Slide 9: The Project Manager Speaks with User... then speaks with Developer... then... Manages the budget.
Slide 10: The User The tool should address my needs. The tool should be easy to use. I don't want to change my habits !
Slide 11: By the way... User should be put first !
Slide 12: When a project works... User is happy. Project Manager can have better sleeps. Developer is creative, and can leave the office early.
Slide 13: Huh ? So it's possible ?
Slide 14: Me thinks so ! A way of living: Avoid things that don't work, a.k.a. ”anti-patterns” Apply rules and patterns that work !
Slide 15: Anti-patterns Things to avoid !
Slide 16: #1 Re-inventing the wheel Reinventing systems that are already good at the job: File Server, DMS, Mail Server...
Slide 17: #2 If You Build It, They Will Come What problem are you trying to address ? For who ?
Slide 18: IYBITWC trap Building interesting tools that the Enterprise users ● are not yet ready for Groupware / Sharing tools Web 2.0
Slide 19: #3 Gaz Factory You really want to avoid this one !
Slide 20: GF example Publishing workflow that maps the organization ● hierarchy ”I need N reviewing steps because the Author has a boss – who has a boss who has a boss...” This is Web -1.0 ●
Slide 21: #4 The input of the field is a selection Incomplete specification !!! List of values or unique value ?
Slide 22: There are more... Software bloat ● Design by committee ● Golden hammer ●
Slide 23: Principles & Patterns Better live with some principles !
Slide 24: #1 The Pareto principle 80% of the effects come from 20% of the causes a.k.a. the 80-20 rule
Slide 25: The 80-20 rule in action Identify and focus first on delivering your 20% part of the message, content, system...
Slide 26: #2 KISS Keep It Simple Stupid !
Slide 27: Kiss, Kiss, Kiss... Whenever possible, choose a simple solution
Slide 28: KISS' friends Simple is better than complex ● Flat is better than nested/hierarchical – Complex is better than complicated ●
Slide 29: #3 YAGNI You Ain't Gonna Need It !
Slide 30: Typical ”YAGNI” ”The discussion forum”
Slide 31: Oh my gosh ! ”I want a forum within each teamspace”
Slide 32: YAGNI ? BKIS ! Better Know It Soon ! Avoid potential bugs with non-needed stuff.
Slide 33: #4 The Right Thing The design should be right ! (MIT)
Slide 34: #5 Worse is better Simplicity is more important than rightness
Slide 35: Advices Principles and patterns put into action
Slide 36: #1 Don't rethink the CMS Just extend it !
Slide 37: Extending ? Focus on UI : Tweak things for your needs ● Make compromises !!! ● Adapt existing logic... ● Plug additional logic ●
Slide 38: #2 Standardize or perish ! Use the tools/approaches adopted by others
Slide 39: The Community's best practices Infrastructure: Linux, ZEO... ● Content types: Archetypes, ATCT, ● ArchGenXML... Add-ons for OOTB services: PloneArticle, ● PloneFormGen, etc...
Slide 40: #3 Play with the Community Find help ! ● Give back ● code – documentation – testing, reviewing... –
Slide 41: #4 Seperate concerns Content vs. Presentation ● Models - Data storage - DB – Views - Templates – CSS ● Site structure vs. Site navigation ● Containers – Navigation Views - Topics - Relations ●
Slide 42: #5 Requirements User stories Use cases
Slide 43: #6 Use a tracker Better communication Give access to users so they can report bugs
Slide 44: #7 Quality Unit & Functional tests Documentation Build for scaling
Slide 45: More on scaling Optimization Caching ZEO + load-balancing
Slide 46: #8 Migrations A migration project is a normal project, with additional difficulties
Slide 47: Dump and reload ! Set up a new Plone site. Dump ”configuration & content” from old site and load it in new site.
Slide 48: #9 Use Plone 3 ”Best Plone Ever”
Slide 49: Thank You ! Questions ?




Add a comment on Slide 1
If you have a SlideShare account, login to comment; else you can comment as a guest- Favorites & Groups
Showing 1-50 of 1 (more)