Eric Light@[email protected]
Audience Check
Developers? (Duh...)
Entrepreneurs?
Project Managers?
Audience Check
Developers? (Duh...)
Entrepreneurs?
Project Managers?
How to suck at developing a web app, when you’re
not a web shop.
On contracts, missed deadlines, and working with friends
Eric Light@[email protected]
A bit about Eric
(Apple ][e) BASIC
A bit about Gravity
Small team (techs == Jordan & Eric)
Software development (still mostly in BASIC
omg)
IT Support, Server installs, etc.
...
Web Development conspicuously absent
The Root of the Problem
Typical ‘technician-founded’ company› No systems.
NoneSeriously, folks!
Eric was every role› Sales, Marketing, HR, Accounts, ZOMFG,
FML
The Inspiration
“I need you to call Geoffrey, and find out what he means by Ђξμδ.”
Need a tracking system
Brilliance!
Wait a minute... we’re developers!
“Let’s build our own!”
<trumpets>
The Plan
Develop a web app for job tracking
We were the target market
Must be simple, fast, cheap
Implementation
Brought it to a web dev
Quoted 100hrs max(accepted reluctantly)
2 deadlines:› Prototype – 6 wks› To Market – 12 wks
“Begin!”
<more trumpets>
All was hopeful...
The month passed...
Welcome to Hell
“Each time I re-readthe scope I noticesomething new..”
“I’ve hit a bitof a snag..”
“I can’t figure out how to do this bit here...”
*crickets*
...Half way to deadline
...1 day before due
...3 days overdue
...2 weeks overdue
The Meeting
Me, the dev, plus 2 business partners
Another month, guaranteed
def quit_date:return mid-feb
My blunder:“We’ll make these bits part of the final”
Quick Recap
Now well overdue
Still on prototype
100 hours, max
33% due on delivery
D-day
Not really finished
He said it was(remember: “prototype”)
Payments / Billing -> final stage
Demanded $$ for delivered prototype
déjà vu!
My expenses:About $6000+GST
His effective rate:
$10 per hour
What did we do right?
Understood the problem clearly
Kept a lid on scope creep
Knew the target market
Calculated commercial viability
Defined a quit date (finally!)
Where we went wrong
Failure to plan for failure› No milestones› No fallbacks› For either party
No prototyping
Working with a friend, sans contract
LoremIpsum
The Road Ahead
Early Warning Signs
Your wife says it’s not going to work
You haven’t done a paper prototype
You don’t have a dated chart for functionality delivery dates
Professionalism slips
*crickets*
A haiku
On a pre-planned date /if milestones aren’t yet met /inspect the darn code!
So remember...
Plan for failure – have a graceful exit!
Set clear milestones, with CRUD.› This lets you track progress very finely!
Your dev’s estimates are wrong.› So are yours.
Hofstadter’s Law
Communicate›CommunicateCommunicate!
Say: If I don’t enforce a term, it doesn’t change the contract, and I can still enforce it any time in the future.
Resources
These slides are at pycon.ericlight.com› Contractor template – email me
GettingITRight.co.nz
Business Technology Resource Centre› “Avoiding Project Failure”, 2003
CIO Magazine› “Lessons in Defeat”, 2011
Thanks
David Richardson› Additional critical brain
Jordan Schwab › learning SilverStripe to resurrect the
project Stock.XCHNG (www.sxc.hu)
› Imagery Grant Paton-Simpson & Roger Smith
› Letting me present to them
“I love deadlines. I like the whooshing sound they make
as they fly by.”
Actual quote from my developer... As well as Douglas Adams
Question Time!