How to develop a killer package
Lee Kelleher / Matt Brailsford
Intro - (5 mins)
How to make killer packages (ideas) - (10 mins)
How to make killer packages (shouldn'ts) - (10 mins)
How to make killer packages (shoulds) - (10 mins)
Q&A - (10 mins)
Total time: 45 mins
Who are we?
Lee Kelleher
Umbrella Inc
Matt Brailsford
The Outfield
You may remember us from...
Lee
Between us we have been involved with 69 packages.
and have a over a million karma points.
What this talk is NOT about
Lee
It's not about how to create a package
No Angular JS or C#
To learn the mechanics of package creation, watch this: (umbraco.tv link)
How to develop a killer package
1. Killer Ideas!
2. Things you shouldn't do!
3. Things you should do!
Think!
What are your motivations?
Matt
Try to solve a real problem, think of what pains you on a regular basis.
Think beyond your own needs.
JUST DO IT!
Have a "world view".
Think beyond your own needs, think generic.
Share!
Discuss your ideas with others
Lee
Getting a second viewpoint is way more valuable.
Don’t be afraid to share, and idea on it’s own is worth nothing.
Ideas are a multiplier of execution
sivers.org/multiply
Lee
The point I want to make here is that ideas are cheap, it’s the execution that makes them killer … and is rewarded with karma.
Is it a better idea for the Umbraco core?
Lee
Should you send a PR to the core instead of a package?
Case study: Recycle Bin Restore
Think outside the box
Editor's Manual
uHangout
Skrift.io
Matt
Editor's Manual is a successful "package", (but it's not a "package")
Translated into 7 languages - lots of contributors.
Don't write hacky code
Case in point...
"Favourite Content" package
Favourite Content hacky code
Don't use fancy tech
Case in point...
"Desktop Media Uploader" package
Matt
Don't expect everyone to know your tech.
Prevents people from contributing
Anyone remember IronPython or IronRuby?
DMU used Flex (ActionScript)
DMU unfixable bug
Don't force a framework
Show of hands...
Who actively uses Dependency Injection?
Lee
Entity Framework instead of PetaPoco
DI/IoC and fancy design patterns are all well and good, but don't force people to follow them.
Better to have a library that fits all workflows.
Don't chase the karma*
* yes, we see the irony
Lee
Don't do it for the karma... (and we are karma whores)
"Don't chase karma; karma will come to you"
Do what's best for Umbraco / others.
GIVE IT THE RIGHT NAME
Make it short
Make it relevant
Make it easy to spell
Avoid gimmicks
Matt
Courier is a good name, but grouped with other HQ packages: Contour, Courier, Concierge
long name: uCssClassNameDropdown
MAKE IT EASY TO INSTALL
Our Umbraco (NuGet/MyGet)
Automate config settings (Package Actions)
MAKE IT A CONSISTENT DESIGN
Case in point...
Merchello
Matt
Make it look nice
Make it fit in and look seamless
HQ plan to provide pattern library
DOCUMENT IT
README file
Markdown,
HTML,
PDF,
Word doc,
etc...
GitHub Pages
readthedocs.org
OPEN SOURCE IT
F.U.D.
GitHub, Bitbucket , CodePlex
Lee & Matt
Don’t fear writing bad code… we still write bad code!
It’s how you deal with it and move on
You want to learn from mistakes so you can be a better developer / community member.
We could say that it doesn't matter where you open-source it, but we'd be lying, we have noticed most collaborations happening at GitHub.
Issue Tracker
Discussions (on forum)
Chat (Gitter? Slack?)
AUTOMATE IT
AppVeyor, TeamCity, build script
GET COMMUNITY SUPPORT
Case in point...
uComponents
Lee
Better to collab than do it alone - leverage the community.
Package ideas can come from community collab.
Don’t say “Yes” to all suggestions - stay true, stay golden.
Collab helps solve bad code … “peer review”.
SUPPORT IT
Be prepared for support
PROMOTE IT
YouTube videos
Collaboration
uHangout
Skrift.io
Twitter
EVOLVE IT
Keep refining your ideas
Get others involved in the project
Invest time
Stay classy!
IN SUMMARY
Learn the basics
Think
Share
Invest
Support
How to developa killer package
Lee Kelleher / Matt Brailsford
Intro - (5 mins)
How to make killer packages (ideas) - (10 mins)
How to make killer packages (shouldn'ts) - (10 mins)
How to make killer packages (shoulds) - (10 mins)
Q&A - (10 mins)
Total time: 45 mins