How to suck at developing a web app, when you’re not a web shop. (Subtitled “Friends, contracts, and missed deadlines.”). Eric Light is managing director of Gravity Computing, a software development firm in Hamilton, who specialise in bringing efficiency to business processes with clever software design. He is an active member of the Waikato Chamber of Commerce, a member of the NZ Open Source Society, Associate Member of the New Zealand Computer Society, and is also Chairman of the branch committee of the Waikato branch of the NZCS.
An overview of some of our most blatant failings when we attempted to develop a cloud-app through an external contractor, coming from a suitably-embarrassed business owner and ex law student.
4. 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 @RhyvenNZ ContactMe@EricLight.com
5. How to suck On contracts, missed deadlines, and working with friends Eric Light @RhyvenNZ ContactMe@EricLight.com
8. 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
9. The Root of the Problem Typical ‘technician-founded’ company No systems. None Seriously, folks! Eric was every role Sales, Marketing, HR, Accounts, ZOMFG, FML
10. The Inspiration “I need you to call Geoffrey, and find out what he means by Ђξμδ.”
20. ...Half way to deadline ...1 day before due ...3 days overdue ...2 weeks overdue “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*
21.
22. 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”
23. Quick Recap Now well overdue Still on prototype 100 hours, max 33% due on delivery
24. D-day Not really finished He said it was (remember: “prototype”) Payments / Billing -> final stage Demanded $$ for delivered prototype
27. 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!)
28. Where we went wrong Failure to plan for failure No milestones No fallbacks For either party No prototyping Working with a friend, sanscontract
31. 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*
32. A haiku On a pre-planned date / if milestones aren’t yet met / inspect the darn code!
33. 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
34. Communicate Communicate Communicate! 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.
35. 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
36. 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
37. “I love deadlines. I like the whooshing sound they makeas they fly by.” Actual quote from my developer ... As well as Douglas Adams
Note this talk is mostly around a failure in a contractual & business sense, not so much in a technical sense.
I heart skiing, hiking, and my famiyTechie & coder, turned managerWrote first program at age 8 (in BASIC)Very involved in the NZCS & heaps of Waikato business groupsManaging Director of Gravity Computing
I heart skiing, hiking, and open sourceTechie & coder, turned managerWrote first program at age 8 (in BASIC)Very involved in the NZCS & heaps of Waikato business groupsManaging Director of Gravity Computing
No idea that things were going wrong until it was WAY too lateNo logical way to fix the situation once things had gone wrong