5 Essential Questions for Great Design

From Kim Goodwin:

  1. What is the user trying to accomplish?
  2. What does the user need to know to accomplish their goal?
  3. How should the user feel as they accomplish it?
  4. How does the current design (or alternative) currently make them feel?
  5. What did they do to accomplish it?

source

WordPress › Taking WordPress to War

 

 

WordPress › Taking WordPress to War.

Powerful video – recorded at San Francisco Wordcamp 2011 - of a photo journalist working in Afghanistan, and how he used WordPress to connect a particular group of soldiers to their families back home and to the rest of the world.

Success

“It’s my firm belief that one of the keys to success is avoiding the artificial, uniform face that most companies present. Success means being an accessible collection of genuine people that incidentally comprise a company.”

- Bill DeRouchey [source]

Notes from WordcampTO 2011

Child (Daughter) themes

Make changes to existing themes without modifying them directly

Child themes:
Allow you to brand themes for clients in admin area

To build:

  • Template: (parent)

Parent themes don’t have template tag in comment header

  • Theme name: (your name)

First line in your child theme imports (parent’s) stylesheet

  • Include screenshot.png to get WordPress to use it in admin appearance area

Eg. Copy footer.php into daughter theme folder to change copyright footer

  • WordPress prefers php files in daughter folder over parent

Exception function.php – both parent and daughter are loaded (daughter first, parent second)

Functions.php

Don’t hack framework code ;)
Prefer extension-plugin mechanisms, Apis

WordPress alternatives:

  • Child themes: changes that go away if your theme changes
  • Site plugin: changes that shouldn’t go away – ever

Plugins:
Wp-content/plugins
Create a dir (eg. akismet)
Create a file (eg. a.php – no filename restrictions)
Can create a header in the plugin’s php file that provides info to admin backend
Note: Plugins load before themes

Theme development best practices

Documentation standard: phpdoc

  • Page-level
  • Function-level
  • Think about copyright and license restrictions documentation

Use child themes

  • get_stylesheet_dir – files intended to be overridden by child themes
  • get_template_dir – files not intended to be overridden by child themes
  • get_template_part – graceful fallback mechanism for including template fragments (eg. header-404.php)

Stylesheets & scripts

  • Use wp_enqueue_scripts

Gravity forms?

add_*_page to insert admin pages into we backend

  • Eg. add_theme_page(…) adds subpage to Appearance menu
  • For special admin panel configuration for a theme

Multisite

Multi-tenant wp installation
Make.wordpress.org
Buddypress.org

Multisite examples:

  • Bestbuy
  • Universities/colleges
  • Businesses
  • WordPress.com
  • Liberal association?

Pm101 – project management for small business

Think on time, on budget… but much more to it

Flexible but firm
Deadlines are important but inherently arbitrary

3 stages of a project: starting, work, finishing

Starting

Define 4 things:
Scope
Budget
Timeline
Objectives – kpi

(may need discovery step – who, where and why. Identify project roles: who has go, no-go decision, who’s the Pm. Business model, overall objectives, marketing strategy)

Best projects have fixed and flexible characteristics. Eg. scope and budget are fuzzy but have to be ready for demo next Tuesday

Interesting/revealing questions:
What browser do you use daily?
“I don’t know, whatever’s on my computer?”
Gauge tech savvy

Work

Communicate what you need and when
Feedback
Follow up

Set expectations as you go
Browser limitations
Unknowns…
Wordpress.com/.org

More important to keep things moving than to be right

Read Dan Pink’s drive

Finishing

Launch party (do something to acknowledges effort of team)
Maintenance
Evolve/enhance

Code reading

Josh Bloch’s Effective Java is easily one of the earliest deeply technical books I can remember that really help nudge me along the road to becoming a more conscientious programmer. Language mastery, he says, is a play in 3 parts:

  • Grammar
  • Vocabulary
  • Common usage

#1 and #2 are fairly narrow in scope – usually taking no more than 2-3 weeks – and are what I consider to be every language’s cover charge. The bare minimum you simply must know to get in the door. #3 on the other hand is a bit more nebulous and often takes anywhere from months to years.

The good news is picking up a good sense of common usage has never been easier thanks to the likes of github, bitbucket et. al. Start reading somebody else’s code! Many somebody else’s actually.

Just this morning I had an hour free before rolling into work – the perfect opportunity to start poking around in WordPress’s codebase. :)