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

More Related Content

ODP
Jared Whitlock Open Source In The Enterprise Plone @ Novell
PDF
Francesco Ciriaci Get Plone To Business!
PDF
Joomlaplatform en
PDF
Setting up your development environment
PPTX
How to customise Joomla
KEY
Writing Your First Plugin
PDF
Learning Joomla! in a weekend (for developers)
PDF
Making the Most of Plone's Content Types - Dan Jacka
Jared Whitlock Open Source In The Enterprise Plone @ Novell
Francesco Ciriaci Get Plone To Business!
Joomlaplatform en
Setting up your development environment
How to customise Joomla
Writing Your First Plugin
Learning Joomla! in a weekend (for developers)
Making the Most of Plone's Content Types - Dan Jacka

What's hot (19)

PPTX
Whats new in joomla 3.5 & whats coming in future
PPTX
Meet Windows PowerShell
PPTX
Joomla SEO basics 2016
PPTX
06 integrating extra features and looking forward
PDF
Going native with html5 web components
PPTX
PhoneGap
PDF
WordPress Plugin - Chameleon
PDF
Extended slow parts
PPTX
Extension developer secrets - How to make money with Joomla
PPT
Buzzword, How'd They Build That?
PPTX
What’s new in joomla 3.7
PPTX
Rapid application development for WordPress using AWF
PDF
Introduce Bootstrap 3 to Develop Responsive Design Application
PPTX
Cross CMS plugin development using AWF
KEY
Modular plugins
KEY
Modular plugins
PDF
Moving from Wordpress to Joomla
PPTX
Joomla SEO June 2015 - Sydney Joomla User Group
PPT
PS error handling and debugging
Whats new in joomla 3.5 & whats coming in future
Meet Windows PowerShell
Joomla SEO basics 2016
06 integrating extra features and looking forward
Going native with html5 web components
PhoneGap
WordPress Plugin - Chameleon
Extended slow parts
Extension developer secrets - How to make money with Joomla
Buzzword, How'd They Build That?
What’s new in joomla 3.7
Rapid application development for WordPress using AWF
Introduce Bootstrap 3 to Develop Responsive Design Application
Cross CMS plugin development using AWF
Modular plugins
Modular plugins
Moving from Wordpress to Joomla
Joomla SEO June 2015 - Sydney Joomla User Group
PS error handling and debugging
Ad

Similar to Kamon Ayeva Antipatterns, Patterns, And Rules Of Thumb For Successful Plone Projects (20)

PDF
Using alfresco share as a corporate intranet
PDF
Implimenting and Mitigating Change with all of this Newfangled Technology
PDF
Justin French Web Directions07
PDF
Surviving a Hackathon and Beyond
KEY
ACES Survive Redesign 2012
PDF
13 Signs Your UX Needs an Exorcism
PPTX
MagmaRails - Passionate Programmer
PPTX
Software Engineering Primer
PDF
Software development is hard
PPTX
UX Edmonton - Pattern Libraries
PPTX
WebVisions: ISITE Design and CCLI on Platformication
PPTX
Passionate Programmer
PDF
Cost Effective Web Development Techniques
PPTX
How to manage web projects without setting your hair on fire
PPT
Arch factory - Agile Design: Best Practices
PPTX
Project Management and Beyond
PPTX
CMS Implementation: Things to do before writing a single line of code
KEY
Production process presentation - drupalcamp Toronto 2010
PPT
Open / Drupal Camp Presentation: Brent Bice
PDF
Designing for User Experience (UX) with Atlassian Tools
Using alfresco share as a corporate intranet
Implimenting and Mitigating Change with all of this Newfangled Technology
Justin French Web Directions07
Surviving a Hackathon and Beyond
ACES Survive Redesign 2012
13 Signs Your UX Needs an Exorcism
MagmaRails - Passionate Programmer
Software Engineering Primer
Software development is hard
UX Edmonton - Pattern Libraries
WebVisions: ISITE Design and CCLI on Platformication
Passionate Programmer
Cost Effective Web Development Techniques
How to manage web projects without setting your hair on fire
Arch factory - Agile Design: Best Practices
Project Management and Beyond
CMS Implementation: Things to do before writing a single line of code
Production process presentation - drupalcamp Toronto 2010
Open / Drupal Camp Presentation: Brent Bice
Designing for User Experience (UX) with Atlassian Tools
Ad

More from Vincenzo Barone (20)

PDF
Sally Kleinfeldt - Plone Application Development Patterns
PPT
Where's the source, Luke? : How to find and debug the code behind Plone
PDF
ItalianSkin: an improvement in the accessibility of the Plone interface in or...
PDF
How to market Plone the Web2.0 way
PDF
Lennart Regebro What Zope Did Wrong (And What To Do Instead)
PDF
Wichert Akkerman Plone Deployment Practices The Plone.Org Setup
PDF
Philipp Von Weitershausen Untested Code Is Broken Code
PDF
Duco Dokter - Plone for the enterprise market: technical musing on caching, C...
PDF
Rocky Burt Subtyping Unleashed
PDF
Alec Mitchell Relationship Building Defining And Querying Complex Relatio...
PDF
Wageindicator Foundation: a Case Study
PDF
Tom Lazar Using Zope3 Views And Viewlets For Plone 3.0 Product Development
PDF
Xavier Heymans Plone Gov Plone In The Public Sector. Panel Presenting The...
PDF
Brent Lambert Plone In Education A Case Study Of The Use Of Plone And Educa...
PDF
Wichert Akkerman - Plone.Org Infrastructure
PDF
Philipp Von Weitershausen Plone Age Mammoths, Sabers And Caveen Cant The...
PDF
Denis Mishunov Making Plone Theme 10 Most Wanted Tips
PPT
Duncan Booth Kupu, Past Present And Future
PDF
Jeroen Vloothuis Bend Kss To Your Will
PDF
Paul Everitt Community And Foundation Plones Past, Present, Future
Sally Kleinfeldt - Plone Application Development Patterns
Where's the source, Luke? : How to find and debug the code behind Plone
ItalianSkin: an improvement in the accessibility of the Plone interface in or...
How to market Plone the Web2.0 way
Lennart Regebro What Zope Did Wrong (And What To Do Instead)
Wichert Akkerman Plone Deployment Practices The Plone.Org Setup
Philipp Von Weitershausen Untested Code Is Broken Code
Duco Dokter - Plone for the enterprise market: technical musing on caching, C...
Rocky Burt Subtyping Unleashed
Alec Mitchell Relationship Building Defining And Querying Complex Relatio...
Wageindicator Foundation: a Case Study
Tom Lazar Using Zope3 Views And Viewlets For Plone 3.0 Product Development
Xavier Heymans Plone Gov Plone In The Public Sector. Panel Presenting The...
Brent Lambert Plone In Education A Case Study Of The Use Of Plone And Educa...
Wichert Akkerman - Plone.Org Infrastructure
Philipp Von Weitershausen Plone Age Mammoths, Sabers And Caveen Cant The...
Denis Mishunov Making Plone Theme 10 Most Wanted Tips
Duncan Booth Kupu, Past Present And Future
Jeroen Vloothuis Bend Kss To Your Will
Paul Everitt Community And Foundation Plones Past, Present, Future

Recently uploaded (20)

PPTX
Cloud computing and distributed systems.
PDF
Approach and Philosophy of On baking technology
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PPTX
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
PDF
Empathic Computing: Creating Shared Understanding
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PDF
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
PDF
Network Security Unit 5.pdf for BCA BBA.
PDF
KodekX | Application Modernization Development
PDF
NewMind AI Weekly Chronicles - August'25 Week I
PDF
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
PPTX
Programs and apps: productivity, graphics, security and other tools
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PDF
Review of recent advances in non-invasive hemoglobin estimation
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PPTX
MYSQL Presentation for SQL database connectivity
PDF
Encapsulation theory and applications.pdf
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
Cloud computing and distributed systems.
Approach and Philosophy of On baking technology
The Rise and Fall of 3GPP – Time for a Sabbatical?
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
Empathic Computing: Creating Shared Understanding
Reach Out and Touch Someone: Haptics and Empathic Computing
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
Network Security Unit 5.pdf for BCA BBA.
KodekX | Application Modernization Development
NewMind AI Weekly Chronicles - August'25 Week I
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
Programs and apps: productivity, graphics, security and other tools
“AI and Expert System Decision Support & Business Intelligence Systems”
Understanding_Digital_Forensics_Presentation.pptx
Digital-Transformation-Roadmap-for-Companies.pptx
Review of recent advances in non-invasive hemoglobin estimation
Building Integrated photovoltaic BIPV_UPV.pdf
MYSQL Presentation for SQL database connectivity
Encapsulation theory and applications.pdf
How UI/UX Design Impacts User Retention in Mobile Apps.pdf

Kamon Ayeva Antipatterns, Patterns, And Rules Of Thumb For Successful Plone Projects

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