39
Old Dogs & New Tricks By [ a highly opinionated talk about the future of Plone from a Framework Team member, developer, project manager, consultant, loud mouth, and general advocate of change aka ] Elizabeth Leddy

Old Dogs and New Tricks

Embed Size (px)

DESCRIPTION

Overview of where we are going with Plone 4 and a visions for Plone 5. May contain adult content.

Citation preview

Page 1: Old Dogs and New Tricks

Old Dogs & New Tricks

By[ a highly opinionated talk about the future of Plone from a Framework Team member, developer, project

manager, consultant, loud mouth, and general advocate of change aka ]

Elizabeth Leddy

Page 2: Old Dogs and New Tricks

WARNINGAlthough this presentation seems to be filled with factoids, it is actally filled with lazily validated stats, graphs that are extrapolated far beyond mathematical reason, and pirated imagery. It is highly likely that I have misinterpreted historical results or became so blinded with anger about certain things that I did not Google sufficiently or give good thoughts to decent alternatives. Except any statements about Grok. I’m confident there.

More importantly, this is a very opinionated piece. Officially, much of this will theoretically be addressed by an official Roadmap Team who is busy providing you with the important fluff you need to sell to your customers, clients, and neighborhood dentist. Maybe there will even be widespread community use for this roadmap and upon its arrival people will cheer and eat cake.

In the meanwhile, I can only assume that I will firmly disagree with whatever comes out of this process because I am an asshole by nature and go full steam ahead with the contents of this presentation. There is no intention to ruffle feathers or miscommunicate. I encourage all of YOU to get up and talk/blog/vlog your vision for Plone, controvesy and all. Be loud, be proud, be Plone.

Page 3: Old Dogs and New Tricks

Plone 4.X

Page 4: Old Dogs and New Tricks

..... .....

4.[1,2,3] Trend‣ Modernizing the User Experience

‣ Commenting

‣ Theming (Diazo)

‣ Search

‣ Collections

‣ Content type creation

(Dexterity )

‣ Events

‣ Modernizing The Architecture‣ Performance++

‣ Repackaging Party

‣ Keep up with Zope releases

‣ Standardizing APIs

‣ HTML 5

‣ Python 2.7

4.1

4.2

4.3

Page 5: Old Dogs and New Tricks

New Release Process

0

15

30

45

4.0 4.1 4.2 4.3 4.4*

Proposed AcceptedMerged Incomplete

4.0

4.1

4.2

4.3*

0 100 200 300 400

Days from Last Release to AlphaDays from Alpha to Release

PLIPS Releases

* PLIP monster wants PLIPS

Page 6: Old Dogs and New Tricks

4.Future PLIP Potential

‣ Continue UI/Type Modernization‣ Form widgets

‣ Calendaring (solgema.fullcalendar?)

‣ Video (redturtle.video?)

‣ Related Content Browser

‣ Small Innovations in New Places‣ Tracking user activity/Reporting

‣ Pull significant awesome add-ons into

core

‣ Mobile Support OOB (responsive or

otherwise)

‣ AJAX/JSON anyone?

Modernizationmust be a continuing process

Innovationmust happen in small places

meh.

meh dog says...

Page 7: Old Dogs and New Tricks

3 Year Checkup

Page 8: Old Dogs and New Tricks

The Complexity of Plone

Does the steep learning curve pay off? Is

this complexity still justified today?I need a platform. Customers need a CMS.

You can't just start and say "If you want

to see the complexity of Plone,

you have to ask for it" when you don't

know the system good enough to plan.

Page 9: Old Dogs and New Tricks

What could justify the complexity of Plone?

‣ It's moving to a more modern architecture. It's bridging both the old and the new approach right now,

which adds some complexity until the transition is mostly complete. This is mostly to keep things

backwards compatible. Plone does not abandon it’s users.

‣ [Plone 4] starts up 3-4 times faster than the current version. and uses about 20% less memory

‣ There's a much easier types system in the works (Dexterity), which will reduce the complexity and speed

up the system a lot, while keeping the same level of functionality.

‣ If you want to use it as a "platform," then the platform is a stack of over one million lines of code which

implements a complete content management suite. No one knows it all. However, all those "acronyms"

and "files" are evidence of a software which is factored in components so that no one need know it all.

You can get as deep or shallow in it as you need. If there's something you need for some aspect of

content management, it's already there, you don't have to create it from scratch, and you can do it in a

way that's consistent with a wide practice and review.

Page 10: Old Dogs and New Tricks

Performance

If you can’t see the

performance

improvements, you

aren’t looking.

‣ Python 2.6, 2.7

‣ Catalog Optimizations

‣ DateTime Refactoring

‣ plone.app.caching

Page 11: Old Dogs and New Tricks

Dexterity‣ Flexible and fast

‣ Still no defined way out of

Archetypes

‣ Reusing other technologies

‣ Complexity remains

Page 12: Old Dogs and New Tricks

Meanwhile in dreamland...

‣Deco/Tiles

‣Usability

‣Performance

‣1 content type to

RULE THEM ALL! GLITTER+PONIES = UNICORNS=== Plone 5

blah blah blah.

meh dog says...

Page 13: Old Dogs and New Tricks

Facing Reality

???Deco Light?

CMSUI?The #1

framework of post apocalyptic

times?

2010?2011?

2012?

Grok?

Whatever the release manager says it is?

Page 14: Old Dogs and New Tricks

So, then, WTF is Plone 5?

Page 15: Old Dogs and New Tricks

Add Ons

2010

2011

2012*

0 125 250 375 500

New Updated

In January 2012, 29 new add-ons were registered on Plone.org. That is almost

one new add-on per day.

Page 16: Old Dogs and New Tricks

Active Core Contributors

A Culture of Suburbanites

Page 17: Old Dogs and New Tricks

A Different Focus

"If you want a platform to be successful, you need

massive adoption, and that means you need

developers to develop for it. The best way to kill a

platform is to make it hard for developers to build on

it. Most of the time, this happens because platform

companies ... don't know that they have a platform

(they think it's an application)." ~ Joel Spolsky

Page 18: Old Dogs and New Tricks

..... .....

Framework Core Values

‣ XML Configuration

‣ Easy debugging

‣ Extensibility/Pluggability

‣ 100% test coverage

‣ Best in class code

‣ More documentation

‣ Hard things easy

‣ Code next to config

‣ Syntactic Sugar

‣ The custom folder

‣ Happy end users

‣ Clear and simple APIs

‣ Better documentation

‣Easy things easy

Page 19: Old Dogs and New Tricks

Programming, Motherfucker

Page 20: Old Dogs and New Tricks

Teaching Python Web‣ Task: Make a TODO list

‣ Audience: New to Python

‣ 3 frameworks, 3 hours

per framework

‣ web2py, flask, DjangoInterfaces? I’ll just use PHP then.

meh dog says...

Page 21: Old Dogs and New Tricks

The patient suffers from a severe deficiency of

Syntactic Sugar(Hypoglycemia)

Page 22: Old Dogs and New Tricks

Simple Syntax

@route(‘/contact’)

@render(‘contact.pt’)

class Contact(View):

def getContactInfo(self):

return {phone=”999-999-9999”}

@route(‘/support-request’)

def ProcessSupport(View):

# submit to 3rd party here

return redirect(url_for(ThankYou))

Page 23: Old Dogs and New Tricks

Hypoglycemia

‣ Getting the site root

‣ 6 files and ~20 lines of code to add a

new stylesheet

‣ Touching so many files and modules:

impossible to move quickly without

referencing documentation

constantly

Using Recommended Practices:

Page 24: Old Dogs and New Tricks

Documentation

Page 25: Old Dogs and New Tricks

Developer Driven Development

‣ Think about the API first

‣ Obsess about developer

efficiency

‣ Use documented examples/

recipes to prove ease of use

‣ Contribute shortcuts from your

everyday process and share

them with coworkers,

communityMake documentation less important with intuitive code!

Page 26: Old Dogs and New Tricks

Spanky Certified

✓ Internationalized

✓ Unit tests

✓ End-user documentation

✓ Internal documentation

✓ Existed and maintained for at least 6 months

✓ Installs and uninstalls cleanly

✓ Code structure follows best practice

✓Usable by Spanky

Page 27: Old Dogs and New Tricks

Plone [5?] has the potential to make

Happy Developers!

Page 28: Old Dogs and New Tricks

... makes hiring easier

‣ Plone is not hip

‣Dangerously high levels of

frustration in the blood

‣ Little interest in long term career

investments (see: not hip)

‣ “At least it’s not Java”

“plone means getting hands dirty and

drinking away your sorrows once you finish the day”

supton, #plone, January 2012

A thriving community of happy developers...

Page 29: Old Dogs and New Tricks

‣ Plone developers cost much more

than the competition because they

are highly skilled + scarce

‣ Ramp up is expensive and risky

‣ Clients have the right to a saturated

developer market should they move

on to a different company

‣ Investing in Plone without the backing

of a major company is still too risky

‣Diversity in quality of developers

... makes firing easier

A large community of happy developers...

Page 30: Old Dogs and New Tricks

Redefining Sexy Too many packages rely on

too few [brilliant] maintainers;

the code is so interesting and

innovative, people are afraid

to touch it.

We need to nurture a culture

where code is usable and

“maintainable” by the

average Plone developer.

Page 31: Old Dogs and New Tricks

Plone is from Mars, Drupal is from Venus

‣ Persisting complexity is a result of poor

communication in the community

‣ Core devs are not scapegoats

‣ Be loud, clear, present use cases

‣ Less complaining, more enabling

‣ “I feel like .... when I have to ...”

Page 32: Old Dogs and New Tricks

EXCUSES

Plone 5 code name: No Excuses

Page 33: Old Dogs and New Tricks

..... .....

Summary

‣Plone 4

Modernizing the Plone

user experience

‣Plone 5

Modernizing the Plone

developer experience

Page 34: Old Dogs and New Tricks

Fin.(no questions is the new black)

Page 35: Old Dogs and New Tricks

Extra Content

Page 36: Old Dogs and New Tricks

CompatibilityData migrations from Plone

2.5 to 4 were very successful.

Data compatibility will always

be important but in general

are caring less about API

compatibility. The worst of

the storm is over if you have

migrated.

Page 37: Old Dogs and New Tricks

References

Page 38: Old Dogs and New Tricks

‣ Full details of how to document in Plone

‣ Full details of new plip process

‣ Link to a shared repo for sprint

Attachments

Page 39: Old Dogs and New Tricks

๏ seniordogsacrossamerica.com

๏ http://nagonthelake.blogspot.com/2011/06/nancy-levines-portraits-of-senior-

dogs.html

๏ http://davisfreeman.com/blog/tag/portraits

๏ flickr.com/photos/mrtopf/372006971/

๏ wordl.net

๏ manyniches.com/windows-phone/happy-developers/

๏ sodahead.com/fun/have-you-ever-been-dog-tired/question-2352589/?

link=ibaf&q=&imgurl=http://3.bp.blogspot.com/-OLnmi8bqkHE/TZvcjjU2liI/

AAAAAAAABPs/lbG2f0wwuAE/s1600/Dog%252520Tired%252520Dog.jpg