kamon ayeva antipatterns, patterns, and rules of thumb for successful plone projects

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

If you can't read please download the document

Upload: wooda

Post on 16-Apr-2017

2.265 views

Category:

Technology


0 download

TRANSCRIPT

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 ?