2013-08 10 evil things - Northeast PHP Conference Keynote

126
Ten Evil Things Features Engineering at Wikipedia Terry Chay, Director of Features Engineering @ the Wikimedia Foundation Sunday, August, 18th, 2013 @ 3:30 PM Closing Keynote, Northeast PHP Conference 2013

description

This does not cover the animations or videos, because the Youtube (included) video has bugs related to the builds/transitions, it might be a good idea to download the slides separately and follow along in that window. (When the official conference video is available, I'll upload that instead.) Abstract: http://www.northeastphp.org/talks/view/156/Keynote-Ten-Evil-Things-Features-Engineering-at-Wikipedia A framework for understanding what, how, and why Features engineering is done on Wikipedia. Wikipedia is the 5th largest website on the internet. The problem: the community that builds the "sum of all knowledge" is shrinking. The goal of Features Engineering is to reverse that editor trend. This talk covers 10 concepts in the modern web that Wikipedia is leveraging to reverse the decline.

Transcript of 2013-08 10 evil things - Northeast PHP Conference Keynote

  • 1. Ten Evil Things Features Engineering at Wikipedia Terry Chay, Director of Features Engineering @ the Wikimedia Foundation Sunday, August, 18th, 2013 @ 3:30 PM Closing Keynote, Northeast PHP Conference 2013

2. Who Am I? 3. Teaching PHP & Web Development Larry Ullman How To Get There Larry Ullman 4. 3 Jobs 1.ZipAsia, 1999-2000 2.Qixo, 2001-2002 3.MyCasaNetwork, 2002-2004 4.Plaxo, 2004-2006 5.Tagged, 2007-2009 6.Automattic, 2009-2012 7.Wikimedia, 2012-current 5. Plaxo, 2004-2006 6. Tagged, 2007-2009 7. the Wikimedia Foundation, 2012- 8. Web Applications Engineer (Plaxo) Early Talks 9. Code Complete Software as Construction as the chief frame for software development 10. Software as Construction Do you believe you are like this? 11. Mythical Man- Month The myth is that people and time are interchangeable: Man-month is a concept from construction. 12. The nal goal of any engineering activity is some type of documentation. When a design effort is complete, the design documentation is turned over to the manufacturing team. If the design documents truly represent a complete design, the manufacturing team can proceed to build the product. Jack Reeves, C++ Journal, 1992 13. Correct Frame (Paradigm): We are Engineers (not construction workers) The Source Code is the Design (not the product) 14. Software Architect (Tagged) PHP without PHP 15. Dont Be STUPID, Grasp SOLID Anthony Ferrara UI Patterns: A Practical Toolkit Jim ONeill 16. Gang of Four Introduced Design Patterns to Programming (a.k.a Object-Oriented Design) 17. The Timeless Way of Building Dened Design Patterns for the Gang of Four 18. Each pattern describes a problem which occurs over and over again in our environment and then describes the core of the solution to that problem, in such a way that you can use this solution a million times over, without ever doing it the same way twice. Christopher Alexander, A Timeless Way of Building, 1979 19. Pattern vocabulary (name the pattern) solves a problem (describes a problemand the core solution) not an algorithm (million times over without ever doing it the same way twice.) has consequences (occursin our environment) 20. Introduction to Laravel Jonathan Barronville 21. A Pattern Language Software Architects need to use the same language as real architects. That is the language of Design Patterns. 22. Director??? of Features Engineering (Wikimedia Foundation) 10 Evil Things 23. #1 Middle Management http://en.wikipedia.org/wiki/Pointy-haired_Boss 24. Minions! 25. MY (NOT) EVIL MINIONS +5 Visual Editor/Parsoid Ori Livneh Matt Flaschen +1 Experimentation +2 Editor Engagement Fundraising Tech +1 26. Clean Application Development Adam Culp Agile in the Workplace Michael Stowe Designing software for the Agile generation Martin Kemp How to hire a good engineers Bryan Healey 27. Minions! 28. How to win (over) minions and inuence coders 29. As Lakoff notes, "On the day that George W. Bush took ofce, the words "tax relief" started coming out of the White House." Lakoff insists that liberals must cease using terms like tax relief because they are manufactured specically to allow the possibilities of only certain types of opinions. Tax relief for example, implies explicitly that taxes are an afiction, something someone would want "relief" from. Wikipedia, Framing (social sciences) 30. Somehow the combination of tacit, culture-dened agreements, and traditional approaches to well-known problems, insured even when people were working separately, they were working together, sharing the same principles. As a result, no matter how unique and individual the pieces were, there was always underlying order in the whole. Christopher Alexander, The Oregon Experiment 31. "We've given you a recipe," Warren told me. "We don't have to guide you, because you're guiding yourself. These habits become a new self-identity, and, at that point, we just need to support you and get out of your way."Warren needed to teach people habits that caused them to live faithfully not because of their ties, but because it's who they are. This is the third aspect of how social habits drive movements: For an idea to grow beyond a community, it must become self-propelling. And the surest way to achieve that is to give people new habits that help them gure out where to go on their own. Charles Duhigg, The Power of Habit 32. In 17 of the 18 pairs of companies in our research, we found the visionary company was guided more by a core ideologycore values and a sense of purpose beyond just making moneythan the comparison company was. A deeply held core ideology gives a company both a strong sense of identity and a thread of continuity that holds the organization together in the face of change. Jim Collins 33. Frames Dont Think of an Elephant! George Lakoff 34. Core Values Built to Last Jim Collins 35. Habits The Power of Habit Charles Duhigg 36. Design Patterns Timeless Way of Building Christopher Alexander 37. Why do Features at Wikipedia? 38. nearly 500 million uniques! 2008 2009 2010 2011 2012 2013 Europe Asia Pacic North-America Latin-America Middle-East/Africa India China 600 million 450 million 300 million 150 million 39. Scaling PHP to 40 Million Uniques Jonathan Klein Using Innodb and Memcached Plugin Sheeri Cabral 40. Imagine a world in which every single human being can freely share in the sum of all knowledge. Wikimedia Foundation Vision Statement Core Value 41. Imagine a world in which every single human being can freely share in the sum of all knowledge. Wikimedia Foundation Vision Statement 42. Numbers 7,000,000,000 2,200,000,000 500,000,000 80,000 43. We want Wikipedia to be around for the long haul, the long term, for our childrens children. Thats why we need a vibrant editing base Phoebe Ayers, Vice Chair, WMF Board of Trustees 44. 0 15000 30000 45000 60000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 Active Editors Oh shit! graph - better data for 1 year retention 45. #2 Heat Death 46. 0 15000 30000 45000 60000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 Active Editors 1 year retention 40% 30% 20% 10% Oh shit! graph 47. better stacked chart Pre 2007 made over half of all edits 48. stability stagnation & heat death every single human being? 49. but being stagnant without any data sucks. Even if staff doesnt want to be stagnant, community wants to be stagnant. former member, WMF Board of Trustees 50. Places in world that humans have named Based on data from the GeoNames database, >10 million entries. 51. Places in the world which have a geographically tagged Wikipedia article. Based on data extracted from 42 Wikipedia languages 52. builds to explain axes 53. What does Features Engineering do? 54. #3 Affordance 55. Dont Make Me Think Introduced affordances to Web UI and UX 56. Search 57. Bookmarking (Watchlists) 58. Non static 59. Ajax: You Can Do It Too Larry Ullman jQuery Mobile: Sites That Feel Like Apps Anna Filna Team Plaatjes: Building JS Applications with Vector Graphics 60. Numbers 7,000,000,000 2,200,000,000 500,000,000 80,000 0.016% 61. The Alpha Affordance 62. Testing UX Design with Reverse Card Sorting David Kelleher Usability Testing for the Common Man Heather ONeill Honest Empathy Heather ONeill watch Reid Hoffmans quote 63. Editing Wikipedia (pre-July 2013) 64. Todays Affordance: WordPress (TinyMCE) and Google Docs 65. & PARSOID +5 Visual Editor/Parsoid Ori Livneh Matt Flaschen +1 Experimentation +2 Editor Engagement Fundraising Tech +1 66. VisualEditor considerations support collaborative editing and playback be easily extensible support Turing complete templating languages support for 270+ languages not tied to MediaWiki or PHP (you can use this in your project) dirty diffs Visual Editor Data Model ContentEditable User Interface HTML +RDFa 67. Visual Editor Data Model ContentEditable User Interface HTML +RDFa Parsoid Serializer HTML +RDFa Wikitext Parsoid 68. HTMLWikitext PHP Parser PHP Parser 69. Parsoid Serializer HTML +RDFa Parsoid Parsoid Wikitext 70. How and use regular expressions in PHP and why use them Joel Lord Coding the Semantic Web with HTML5 David Kelleher Web Scraping with Node.ioMark Henderson 71. Adding Features to make it easier to be more human doesnt turn [Wikipedia] into Facebook, it just makes it more like the rest of your life and I think we should be doing that. Kat Walsh, Former Chairwoman of WMF Board of Trustees 72. Modernize Design Affordance freely share? 73. Introduction to User Experience (UX) Design Meghan Reilly Layout on the Web Brian Del Giudice The UX of URLsRyan Freebern 74. #4 The Habit Loop Cue Routine Reward 75. Alchoholism Exercise Social Gaming Editing Wikipedia Habits (Various Examples) Cue Routine Reward 76. Not a (real) loop Cue Routine Reward 77. Where to make the change? 78. #5Viral Growth 79. Understanding Virality signup send e-mails read e-mail click link new user 80. viral growth force multiplication 81. #6 Gameication 82. Gameication (Habit) Loop Cue: See Wall Post/Tweet Routine: Click on stuff Reward: Brag on social network different user Cue: See Wall Post/Tweet = Routine: Click on stuff Reward: Brag on social network 83. EDITOR ENGAGEMENT +5 Visual Editor/Parsoid Ori Livneh Matt Flaschen +1 Experimentation +2 Editor Engagement Fundraising Tech +1 84. Echo & Flow Cue Routine Reward Friday, July 13, 12 85. Pragmatic API Development Andrew Curioso Building a REST API Michael Stowe 86. Echo (Notications) 87. Increase criticism, decrease praise 0 0.225 0.45 0.675 0.9 2005 2006 2007 2008 2009 2010 2011 criticism teaching praise/thanks warning 88. Notications Talk Page messages Edit Revert User Block Page Review Page Link Mentions Thanks (Welcome) 89. Flow (Discussion) 90. Rise of the Machines 0 10000 20000 30000 40000 2004 2005 2006 2007 2008 2009 2010 2011notool_total twinkle_welcome twinkle_warnings twinkle_other huggle friendly self other_tool_total cluebot bot_other 91. Package Management in PHP: Better Late than Never! 92. Jimmy Wales, Founder of Wikipedia Our tools are pushing us to bad behaviors[We should be] identifying behaviors and make sure the software gives a pathway for making that easy. 93. gameication habits 94. When to pull the lever? 95. #7Viral Marketing 96. #8 A-B Testing (Measurement) https://commons.wikimedia.org/wiki/File:Soft_ruler.jpg 97. E3 (EDITOR ENGAGEMENT EXPERIMENTATION) +5 Visual Editor/Parsoid Ori Livneh Matt Flaschen +1 Experimentation +2 Editor Engagement Fundraising Tech +1 98. GuidedTours (Affordance) Event Logging (Measurement) ACUX (viral funnel) Post Edit Feedback (Reward) Onboarding (Cue) 99. Getting Started & Guided Tour 0 25 50 75 100 % of total Baseline Getting Started Edit Edit To reverse the editor decline would take between 1000-2000 additional active editors per month If this 2% activates at the same rate as the baseline, this gets us halfway there 100. Data-Driven 101. data-driven data-informed 102. FUNDRAISING ENGINEERING +5 Visual Editor/Parsoid Ori Livneh Matt Flaschen +1 Experimentation +2 Editor Engagement Fundraising Tech +1 103. #9 Quantity vs. Quality Virality (People) Gameication (Time) Commercial (Money) Imagine a world in which every single human being can freely share in the sum of all knowledge.That's our commitment. every single human being freely share sum of all knowledge 104. product-driven consensus-oriented 105. there are three disciplines that go into product-based founders: there is design, product-management, and then there is engineering. Ideally you should have all three. Reid Hoffman, found of LinkedIn 106. Core disciplines Product Engineering Design Data Community (for Wikipedia) 107. Cracking the Code of Content Development Jason Rubin You can UX Too: Avoiding the Programmers User Interface Eryn ONeill 108. #10 Responsive Design 109. Practical Responsive Web Design Jonathan Klein Berserk for Responsive Design Frameworks! Jen Kramer Up and Running with Twitter Bootstrap Jen Kramer Mobile-First Design Katelyn Sessions watch Reid Hoffmans quote 110. reactive responsive 111. Who? (1) Middle Manager Why? (2) Heat Death What? (3) Affordance, (4) Habit Loop (5) Viral Growth Where? (6) Gameication, (7) Viral Marketing When? (8) A-B Testing (9) Quantity/Quality (10) Responsiveness How? Create frames and use them! 112. Victors Story 113. Invincible not timid, bold not policy, system community not obstacle, empowered not automated or reactive, responsive 114. Prescription 1. Find the things holding the organization back like a bad habit 2. Do not directly ght against the frame (dont think of an elephant) 3. Instead look to the core values that form the successful social agreements and name them (patterns) 4. Instill the habits religiously to give people a sense of purpose 5. Be consistent! Allow people to use them to be self- directed and make it a self-propelling movement. 115. PHP: A Fractal of Bad Web Design 116. But I'm also here to tell you [it] doesn't matter. The TIOBE community index I linked above? It's written in PHP. Wikipedia, which is likely to be on the rst page of anything you search for these days? Written in PHP. Digg, the social bookmarking service so wildly popular that a front page link can crush the beeest of webservers? Written in PHP. WordPress, arguably the most popular blogging solution available at the moment? Written in PHP. YouTube, the most widely known video sharing site on the internet? [Originally] written in PHP. Facebook, the current billion-dollar zombie-poking social networking darling of venture capitalists everywhere? Written in PHP. Notice a pattern here? Jeff Atwood 117. Complaints PHP is full of surprises: mysql_real_escape_string, E_ALL PHP is inconsistent: strpos, str_rot13 PHP is not concise: error-checking around C API calls, === PHP is aky: ==, foreach ($foo as &$bar) PHP is opaque: no stack traces by default or for fatals, complex error reporting so is Javascript! so is HTML/CSS! so is Design! so is producing software! so is the English language! 118. Developing For the Cloud, In the Cloud David Duggins Git Essentials Matthew Barlocker Preparing for Zend 5.3 Certication Peter MacIntyreMagic Methods: Spilling the secret Matthew Barlockercclean