Core Conversation

DrupalCon Los Angeles

Presented by Larry Garfield (@Crell)

The Crab who's ready to be committed

The most powerful word in the English language...

No

Focus

People think focus means saying yes to the thing you've got to focus on. But that's not what it em at all. It means saying no to the hundred other good ideas that there are. You have to pick carefully. I'm actually as proud of the things we haven't done as the things I have done. Innovation is saying no to 1,000 things.

—Steve Jobs

The client of doom.
As a tech lead I see my primary contribution as saying "no" to features that co-workers think are important but can’t justify. The real trick is knowing when a new feature adds linear complexity (its own weight only) or geometric complexity (interacts with other features). Both should be avoided, but the latter requires extra-convincing justification.

Lawrence Kesteloot

How do you make a statue of an elephant? Get the biggest granite block you can find and chip away everything that doesn’t look like an elephant.

Bejeweled

Bejeweled got focus right

F-35

The F-35 Epic Fail

The Homer-mobile

The Homer-Mobile

No one told Homer…

No

Optimize/
Prioritize

In case of conflict, consider users over authors over implementers over specifiers over theoretical purity.

—HTML5 Working Group

(Drupal's audience priorities, 2010)

Laptops

The Lenovo X1 Carbon Ultrabook

Laptops

The new Macbook has only one port
This knife is not optimized
This tool does one thing well

Databases

  • Consistency
  • Availability
  • Partition Tolerance

Pick 2

Drupal theming

  • Theme an object (via preprocess)
  • Theme some variables (via template)
The Drupal 7 theme system

Drupal look-and-feel

Who choses the markup?

  • Template author?
  • Module developer?
  • Site builder?
Do you want a comprehensible output system?… No

Lead

Could doesn't mean should
Unless you use Goto
Just say NO to Velociraptors

Bad behavior

Don't tolerate this behavior

No!

Deletion API, 2007

  • Chad Phillips (hunmonk)
  • Collect deletion queries, batch, save
  • Committed!... For 10 minutes

Didn't say No soon enough

Sometimes we can say no...

  • Backward compatibility
  • OOP Procedural
  • $5 hosting
  • Code style violations (too much?)

Not Invented Here

Proudly Invented Elsewhere

Proudly Invented Elsewhere is tasty.

Functional programming
/Dependency Injection

  • No to state
  • No to implicit dependencies
  • No to "quick and easy"

But YES to testing/maintainability

Who is Drupal for?

"Everybody" is a coward's answer

Who is Drupal not for?

Saying No should always be a deliberate, explicit action.

Deciding what not to do is as important as deciding what to do.
No

Discuss

And say no...