Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Drupal.org in 2015

Oliver Davies
December 29, 2015

Drupal.org in 2015

Oliver Davies

December 29, 2015

More Decks by Oliver Davies

Other Decks in Technology


  1. Where we are coming from in 2014 • Hiring a

    CTO • Hiring a technology team • Infrastructure improvements • Removing technical debt • Quick wins • User Research Study • Working Groups Ideation and Prioritization Planning and preparation for change

    NOV DEC ? 2013 2014 Growing a Drupal.org team Project Manager is our last position to fill for 2015 A small team, but big enough for a little specialization We go to 11.5. That’s 1.5 louder than 10. Nigel Tufnel is jealous OCT NOV DEC Before October 2013, we had 2 staff to maintain Drupal.org
  3. Wins • CDN for worldwide delivery • APIs: REST and

    JSON • Semantic versioning and Drupal 8 release blockers • Supporting localize.drupal.org upgrade Increasing stability, performance, options
  4. Wins • Launch of ◦ DrupalCon Amsterdam ◦ Drupal Jobs

    ◦ DrupalCon Latin America ◦ Drupal Store • Upgrade of ◦ api.drupal.org ◦ localize.drupal.org ◦ groups.drupal.org plan Building momentum
  5. Wins • Fighting the spammers ◦ Ongoing… a lot of

    our user “growth” over the years is affected by spam accounts. • Improving new user experience ◦ Bakery customizations ◦ Only allow new accounts on Drupal.org ◦ Increasing our use of Mollom and spam detection ◦ Changing the steps to “trust” a user Reducing velocity killers
  6. Wins • Documented what we have ◦ Both what we

    will support and where we will rely on volunteer support • Change notifications • Introduced Scrum project management • Introduced product planning and lifecycle • Tracking time to allow ROI calculations • Support ◦ Less open issues, answered more quickly ◦ Zendesk and Twitter are new channels for support Becoming “enterprise”
  7. www.drupal.org Projects, issues, profiles, documentation, case studies forums, marketplace and

    planet D7 api.drupal.org Detailed documentation of how Drupal works (versions 4.6+ are documented) D7 security.drupal.org Used by Drupal security team to coordinate their work. D7 localize.drupal.org organizes the translation and localization of all Drupal modules core and contributed D6 (upgrade in progress) DrupalCon sites 20+ sites represent the history of DrupalCons. (We need to figure out a better archival strategy.) DNS redirects, static “archive”, D6, D7 assoc.drupal.org The home of the Drupal Association and tied to the CiviCRM membership database. Users can purchase an association membership and read blog posts/news about the community. D7 jobs.drupal.org Job posts, company pages, job seeker profiles D7 drupalstore.org Buy Drupal gear Shopify groups.drupal.org Community hub for Drupal Organic groups permissions Events are mostly outside of g.d.o in places like meetup.com. D6 (needs upgrade) Sites and services hosted and maintained by the Drupal Association Technology Team Infrastructure Hosted at the Open Source Labs at Oregon State University and Amazon Web Services qa.drupal.org Testbot infrastructure Parts of this service live on AWS. D6 (pending upgrade to drupalci.org) devdrupal.org staging and dev environments Dev and Staging OpenStack Dev server host (4TB of storage, 32 core, 100 GB RAM) Staging server host (TBD) Production (lots of physical servers) 4 webnodes apache, varnish, php-fpm, memcache, etc. 2 file servers DRBD, HA NFS 4 database servers MariaDB 2 git servers 2 Solr Search Servers 2 Load Balancers Nginx, ipvs 1 Util server Git daemon, Jenkins, mailman 3 nodes for ftp.drupal.org in United States Corvallis, OR; New York, NY; Chicago, IL CDN through EdgeCast Configured for D.o and all subsites updates.drupal.org Service allows Drupal sites to check and see if they are up to date. Logs are used to compile Drupal usage stats. infrastructure.drupal.org The site will organize Drupal.org development, ideation, changes, infrastructure tools and documentation Elastic testbot workers OSL SuperCell and Amazon EC2 drupalcode.org web interface for Drupal.org Git repositories drupalcamp.org 10+ sites We host DrupalCamp archives for the community on request. (We need a better archival strategy.) Static sites Dreditor Browser extension/plug-in for adding functionality to Drupal. org Drupal Ladder Tutorial for contributing to Drupal.org Community supported search.drupal.org login.drupal.org SimplyTest.me On demand sites for testing. Drush Helps users build with Drupal through command line tools. Druplicon IRC bot Says nice things to us and helps IRC users with issues and projects. Drupical Shows events from groups. druplal.org on a map
  8. Know thyself • Developer Tools • Community Tools • Search

    and Discovery • Documentation Tools • Localization Tools • Communication Tools • Hosting Systems and Infrastructure • Commerce and Operations • Drupal Association Technology Defining the programs and products
  9. Drupal Association Tech Programs Drupal.org Content Working Group Drupal Association

    Staff Drupal.org Infrastructure Working Group Drupal.org Software Working Group Developer Tools Projects Issue Queues Releases & Packaging Scripts Version Control Git repos integrations drupal.org code Testbots: serve client qa.drupal.org drupalCI.org Change records Community Tools Forums Planet User Profiles User Dashboard Groups.drupal.org Camp Archives Localization Tools Localize.drupal.org Localization server module Translation template update extractor D.o Integrations: client, module, update module Other tools api.drupal.org Docs on D.o Commerce and Operations and Revenue jobs.drupal.org drupalstore.org assoc.drupal.org (civicrm) DrupalCon sites Hosting and Infrastructure Network equipment Servers CDN Colocated space (OSL hosting) Cloud instances (AWS) Git repository hosting (bitbucket) infrastructure.drupal.org secuity.drupal.org updates.drupal.org QA/BDD Association Technology hardware office tech internet accounts security backups Communication Tools D.o Homepage Landing pages Marketplace Organization pages Case Studies Outgoing communications: email lists Twitter Facebook Content on D.o Advertising Search & Discovery Tools Search Pages Search infrastructure
  10. Prioritizing our efforts • 16 production Drupal websites • Nearly

    as many production services integrated with sites • Infrastructure that pushes 20 TB of data per month • Easy to lose focus • Volunteer teams are still critical • 11.5 staff helps • Working groups need to help keep the focus It can be difficult to divide one’s attention
  11. What we CANNOT affect • Association staff cannot build Drupal

    8 faster ◦ but we can remove blockers • Also, we cannot do all the things at once ◦ Prioritize ◦ Plan ◦ Focus Learning our limitations
  12. What we CAN affect • Make Drupal.org (and subsites) easier

    to use • Make our sites easier to integrate • Generate revenue to invest back into development • Make Drupal.org more secure • Make Drupal.org more performant Learning our capabilities
  13. Drupal.org objectives 1. Be the home of the Drupal community.

    Central source of relevant info/answers, collaboration, education and talent. 2. Provide learnable, efficient tools to help coordinate the advancement of Drupal ecosystem. 3. Encourage people to develop themselves, their Drupal proficiency, their careers & build human connections over time Note: these objectives were developed during the Austin user research workshop, refined at July staff meeting. What do we want the website to do?
  14. User research Interviews We conducted 30 user interviews, part in-person

    during DrupalCon Austin, part remote in the weeks following the conference. Participants included: Full versions of the user personas and research summary. • people new to Drupal • Drupal users • long-term community members • ex-Drupalistas • developers • site builders • designers • content strategists • project managers • and many more • from North America • South America • Europe
  15. User research • Drupal users acquire increased skills (modified Dreyfus

    Model of Acquisition) User Personas Because skills are acquired through time and exposure, fewer individuals exist further up the model. Newcomer Learner Skilled Expert Master
  16. User research • We need to increase the number of

    successful developers with Drupal. Where to focus our efforts Time and exposure Newcomer Learner Skilled Expert Master
  17. Learner Silvia Goal: To quickly build a website without starting

    from scratch. Behaviors • Also works with WordPress, Sitecore, custom non-CMS sites for multiple clients at the same time • Doesn’t always use Drupal terminology (e.g. “plugins” instead of “modules”) • Goes to Google first when has a question, asks a friend for help when is stuck • Visits Drupal.org when she is working on a Drupal project, primarily to look up documentation, download modules • Does not have a Drupal.org user account: “I don’t need to log in for anything yet.” Motivations • Wants to build a website with less work • Wants to be able to quickly spin up new content heavy sites • Wants her clients to have less work maintaining their websites “There’s so much to learn. Where do I even begin?”
  18. Learner Silvia “There’s so much to learn. Where do I

    even begin?” Attitudes • Likes that Drupal is flexible, it’s quick and easy to build sites for clients • Thinks that WordPress is for simple sites, Drupal for everything else • Would like to attend Drupal event in the future • Wants to know “who is who” in the community • Has little awareness of the Drupal Association • Does not see the benefit of Drupal.org user profile Frustrations • Finds it hard to build and upgrade a simple site with Drupal • Finds it hard to find modules that are relevant for her needs and are actively developed • Does not want to look naive, when asking questions on Drupal.org, and is frustrated by lack of responses to asked questions • It takes a lot of time to teach new people to use Drupal • Dissatisfied by visual layout and IA of D.o, “it’s hard to find what you are looking for”
  19. Skilled Matt Goal: To find the most accurate information and

    get to know the right people to build websites more efficiently. “Picking a module is a lot like picking a recipe. Both freeing and frustrating” Behaviors • More than 80% of his day to day work is Drupal related, but doesn’t tend to contribute modules • Tries to find an answer on his own if able, then turns to someone else (usually an Expert) • Always starts with Google, often times ends up finding answer at StackExchange • While working on a Drupal project is constantly in the issue queues and on module pages • Occasionally comments on issues, but never submits or reviews patches • Attends some kind of Drupal event • Teaches other non-technical people about Drupal “to make it less scary” Motivations • Wants to find the most accurate and reliable resources from the most credible people • Wants to build his personal network in the community • Wants to gain credibility in the community • Wants to remain connected to the community to always know what is coming next for the project • Wants to support open source projects
  20. Skilled Matt “Picking a module is a lot like picking

    a recipe. Both freeing and frustrating” Attitudes • Values Drupal community, thinks it’s a big benefit of the project • Finds people in the Drupal community to be friendly and willing to help • Sees personal network that people have in the community as a huge asset • Likes that he can assemble a Drupal website rapidly • Thinks it’s both the benefit and the drawback that Drupal can be used for such diverse use cases • Likes the standards focus of Drupal Frustrations • Finds it hard to decide which module to use for a specific task • Thinks that Drupal has a steep learning curve, it took him awhile to learn • Finds it challenging to figure out the health of the module/theme from the info on the project page • Has not enough name recognition in the community to get answers to his questions fast enough • Frustrated by Drupal.org search being ineffective • Issue queue comments with a correct answer are not easily identifiable • Thinks Drupal.org has poor information architecture and visual design
  21. Goal: To build a best-in-class Drupal website while giving back.

    Expert Anna “Use Wordpress when you want to build a website. Use Drupal when you want to build a Wordpress.” Behaviors • Almost 100% of her work is Drupal • Is actively using issue queue, submits and reviews patches, has a few core patches • Writes custom modules/themes, writes and edits documentation • Answers questions in issues, forums and IRC • Attends local and national Drupal events, has spoken at a few • Goes to Drupal.org for module or docs; visits api.drupal.org • Often looks at other’s profiles on D.o, especially when hiring someone • Responsible for explaining Drupal to non-tech stakeholders, helps them better understand the complexity of their requests Motivations • Dreams to build a best in class, $1.5 million Drupal site, worthy of being featured on Drupal.org and pointed to by members of the community • Wants to contribute more, get more involved with core/contrib development • Wants knowledge of Drupal to be spread across her team • Wants to figure out how to do things better and constantly improve the structure of her web properties • Wants to stay up-to-date with core development
  22. Expert Anna “Use Wordpress when you want to build a

    website. Use Drupal when you want to build a Wordpress.” Attitudes • The greatest benefit of Drupal is the community, because someone else has probably run into your problem before • Community gives you an opportunity to collaborate with people, find friends • Open source is a big benefit of Drupal and a selling point to stakeholders • Modules and themes that exist empower her to do more and faster than she could on her own • Looking to hire self-starters, eager to learn • Feels her Drupal.org profile was beneficial when looking for jobs or clients • Thinks that Drupal is all-encompassing, can be crafted into anything you want it to be, flexible, integrates with everything Frustrations • Has many frustrations with Drupal as a product, but believes Drupal 8 will fix most. • But... is frustrated she has to learn it all again for Drupal 8 • So hard to find good Drupal talent to hire • It takes too much time to get something into core • No clear product guidance for Drupal • Finds the process of becoming project maintainer or co-maintainer to be extremely hard • Unmaintained projects and unstable releases. It is useless to ask for help in their issue queue • Wishes her profile was more robust and included more of the things she has built • Frustrated it is not easy to get involved in core development
  23. User research lessons learned • What does this mean? ◦

    Learners: ▪ understand a lot and can build sites well ▪ are still confused by Drupalisms ◦ Skilled users: ▪ earn a living with Drupal ▪ increase the usage of Drupal ▪ help build Drupal in the future Focusing on increasing proficiency
  24. User research lessons learned • Masters know how to work

    around issues on Drupal.org. • If masters are frustrated, they feel it is the process/people rather than tools. • There is still room for improvements, but they should not come at the expense of improvements for the learner-to- skilled transition. We should not build for masters
  25. User research lessons learned • Newcomers need some basic information

    to get started. ◦ Newcomer content can be focused on their role in an organization: CEO, developer, designer, etc. • Newcomers can become competent quite quickly with the current tools—advancing to Learner—but are daunted by the effort to become Skilled. We should not build tools newcomers
  26. Where we are going in 2015 • Capacity • Velocity

    • Sustainability Drupal Association Technology Team
  27. Capacity • People ◦ Hiring highly qualified staff • Hardware

    ◦ Increasing our use of the public cloud for R&D and testbots • Process ◦ Understanding the workload and estimating our time ◦ Tracking our time to know where we spend it Ability to do more work for the community
  28. Velocity • People ◦ Building up knowledge of the Drupal.org

    ecosystem ◦ Sharing knowledge between team members real time • Hardware ◦ Development environments and deployment process • Process ◦ Agile project/product management ◦ Incremental focused improvements Increasing the pace of change on Drupal.org
  29. Sustainability • People ◦ Building team bonds with community and

    working groups • Hardware ◦ Buying less hardware to reduce footprint • Process ◦ Ideation, prioritization, execution, change notification, and maintenance planning Planning for the long term
  30. Where we are going in 2015 • Focus on developers

    • Make the project successful by promoting it with great content and tools • We need to “get off the island” with our tools • Highlight organizations and individuals that are helping move the project forward Themes from the board
  31. Where we are going in 2015 • Increase community engagement

    • Grow adoption of Drupal • Make it easier to build Drupal and to build with Drupal • Make Drupal.org the home of the community by increasing repeat visitors • Improve the maintainability of Drupal.org Themes from the working groups
  32. Working groups • We have done ideation for several years

    • This year focused on ideas from the working groups • Similar themes from previous years with a few new twists Ideation from those in the know
  33. Prioritized top 10 projects 1. Improve project browsing 2. Issue

    page improvements 3. "Pull Requests" 4. Topic pages 5. Make Drupal.org search usable 6. Ability to follow any entity (documentation, project, user, etc.) 7. Port groups.drupal.org to Commons 8. Responsive default theme for Drupal.org 9. Build support system on Drupal.org 10. Support Drupal 8 translations on localize.drupal.org DSWG
  34. Prioritized top 10 projects 1. Improved project page and project

    browsing 2. Responsive theme for Drupal.org 3. Q&A support system on Drupal.org 4. Make Drupal.org search usable 5. Improved user profiles 6. Reviews and ratings for projects 7. Curated documentation on select landing pages 8. Better documentation on Drupal.org 9. Curated tutorials 10. Documentation connected to project There is a lot of overlap. User research/persona ratings
  35. Research and the DSWG overlap Makes sense… they care about

    users Working groups • Issue page improvements • "Pull Requests" • Topic pages • Ability to follow any entity (documentation, project, user, etc.) • Port groups.drupal.org to Commons • Support Drupal 8 translations on localize. drupal.org User Research • Improved user profiles • Reviews and ratings for projects • Curated documentation on select landing pages • Better documentation on Drupal.org • Curated tutorials • Documentation connected to project • Improved project browsing • Responsive theme for Drupal.org • Make Drupal.org search usable • Q&A support system on Drupal.org
  36. We also need to think about revenue Overlap is small,

    but the importance is recognized Working groups User Research Topic pages Curated documentation Newcomer tutorials Revenue Drupal Jobs Drupal Store DrupalCon sites Advertising Supporting partners *New revenue*
  37. Key initiatives in 2015 What we heard What we’ve heard

    before Solutions We listened. Now, here is a plan. “We finally have a full-time team to do this work.”
  38. Sustaining the ecosystem • Monitor key performance indicators ◦ Page

    response, testbot test time, uptime • Keep up with issue queues ◦ Issue response time, office hours • Incrementally improve testing • Development and deployment • Maximize the hardware (OSL, AWS, CDN, FTW) • Relaunching the Drupal.org newsletter (57,000 subscribers; last newsletter in 2008) Pay yourself first
  39. Funding all this great work... • Improving our commerce sites

    ◦ DrupalCon sites ◦ Drupal Jobs ◦ Drupal Store • Monetization efforts ◦ Advertizing ◦ New monetization products It’s not a lot of time… but we cannot forget this stuff. revenue, revenue, revenue
  40. Top 7 Drupal.org projects (CTO’s list) 1. Better account creation

    and login 2. Organization and user profile improvements 3. Responsive Redesign of Drupal.org (device agnostic) 4. Issue workflow (Git) improvements 5. Make Drupal.org search usable 6. Improved tools to find and select projects 7. Groups moves to Drupal 7 and gets integrated with Drupal.org Based on capacity, velocity, sustainability This list is a little aggressive at the current staffing level, but feasible for 2015 if we focus on these efforts now. Tech Team Board Board DSWG DCWG Board DSWG Board DSWG DCWG DSWG DCWG Research Research DSWG Research Research Security Research Infrastructure
  41. Better account creation and login • Triggers: July spammer attack,

    Jobs account workflow, September spammer attack • Workflow is hard on newcomers and learners • Spammers love how easy it is to get started • Roles and permissions should reflect growth in community • Key to security Never a priority… until it breaks
  42. Better account creation and login • Newcomers to Drupal.org need

    a simple registration experience. • Spammers should be stopped. • Principle of least privilege (roll and permissions review) • Users should have unified login for all Drupal.org sites. • Users should not enter the same information over and over on each Drupal.org site. Specific improvements
  43. Improved profiles (orgs and users) • I want to know

    what this contributor is mostly doing in the community • I want to know if this contributor knows what they are doing/saying • I want to know if this community member has expertise in specific area • I want to know how long this person is a member of the community • I want to connect with other members of the community • I want to show the community what my skills and expertise are • I want to show the community that they can trust my answers and my code What we heard in user research
  44. Organizations are key to our growth • We need to

    highlight companies that contribute. • We need to highlight success stories with professional case studies. • We need organizations to be tied to their (current) users and their (ongoing) credit. Both providers and customer organizations
  45. Responsive Redesign of Drupal.org • Redesign ◦ User research [done]

    ◦ Content strategy and IA [RFP] ◦ Design library [in progress] • We need to go bigger and go smaller ◦ Big screen optimization for features like the issue queues ◦ Small screen optimization for documentation and marketing materials Being responsive is more than a theme
  46. Canonical Project Repo Issue Workspace Repo Patch File Inline Edit

    Contributor Repo Issue Queue Conversation Contributor Repo Contributor Repo Testbots diff Issue workflow (Git) improvements
  47. “Pull requests” or “Fix Git” or “Migrate!” • Core contributors

    did not feel pull requests as implemented on Github would work for the current workflow • But, they recognized that a better workflow would help build proficiency in new contributors. • Basically, it works, but it could be better. What we heard in user research
  48. A major git change challenge • Status Quo (not really

    an option) • Move to Github • Switch to a new internal software tool (Gitlab/Phabricator etc) • Modernize Drupal.org workflow Options
  49. “Pull requests” • Provide better integration of sandboxes and parent

    projects (February 2012) • Use gitlab for all projects (August 2013) • Implement pull requests (March 2014) • Commerce Kickstart: “Development now takes place in a public Github repository.” • Move Git repositories to Github (August 2013 - skip right to webchick’s write up to save time) We’ve heard this before…
  50. Github vs. Drupal.org There are myriad differences in features, however

    the most fundamental differentiator between Github’s pull request workflow, and Drupal.org’s patch based workflow is primarily a difference between our respective data models surrounding change management. We cannot control the data model Github uses. Pull Requests vs Issues
  51. The great Git change challenge • Github has become the

    de facto repository for many developers as the pull request process is seen as easier • “Just” migrating to Github would be a huge project. User accounts are not compatible and the workflow learning curve would fundamentally change core development. • Installing new Git tools with pull request capability still requires us to integrate that tool to Drupal.org. • We are not “on an island” because we are not on Github. For example, this is so difficult that Wordpress is still on Subversion rather than tackling the migration. None of the options are “just” or easy
  52. We can do this • Issue workspaces are modernized versions

    of our current workflow, which maintains the collaborative data model we currently use. • It is not a new idea, but new solutions to some of the challenges have emerged since the original proposals. • Similar to “per-issue repositories” • Updating the issue queues to support pull requests and inline editing is not impossible. • As a bonus, we can build it so that the patch process doesn’t break. This means no loss in project velocity while people learn the new tools. Issue workspaces!
  53. HEAD Real life example from https://www.drupal.org/node/1740492 dawehner creates issue workspace,

    clones it, and pushes a change to his branch. (1) xjm sees some text cleanup, and fixes in the inline editor (5) dawehner pulls xjms changes, and adds commits, (18,19,22) dawehner rebases HEAD back onto his workspace master, and adds more changes (28/29) dawehner pulls damienklops changes and makes another fix (37) damienklop makes some more fixes (35,36) damienklop makes a personal branch based off of latest, pulls head (34) dasjo posts another commit (42) dasjo creates a branch based on the latest (dawehners) (39) jhodgdon fixes documentation via inline edit. other questions asked in the issue. (*) dawehner doesnt need dasjo’s changes and keeps working on the issue(68-74 dawehner incorporates jhodgdons suggestions, meanwhile pulling in the project HEAD. (74-128) alexpott takes dawehner’s final commit and does a git merge --squash adding one commit back to the HEAD of project development
  54. Make Drupal.org search usable • I want to quickly find

    the information I'm looking for • I want to see what modules may be available to help me build this feature on my website • I want to figure out if this module is worth using on my website What we heard in user research
  55. Make Drupal.org search usable • Better Solr or Elastisearch settings

    • Search displays that show just what you need • Better facets that are contextual • Make organizations and users searchable It is not rocket surgery
  56. Improve tools to find and select projects • I want

    to find the right module that will help me build this feature my users need • I want to see what modules may be available to help me build this feature on my website • I want to figure out if this module is worth using on my website • I want to find the best answer to a question about this module What we heard in user research
  57. Improve tools to find and select projects • Prairie Initiative:

    better project pages and project listings (March 2011) • Projects Quality Initiative (May 2012) • Highlight Projects that Follow Best Practicies (February 2014) • …and more that go back to Drupal.org version 6, 5, 4... We’ve heard this before…
  58. Improve tools to find and select projects • Ratings and

    reviews for modules, themes, and distributions • Health metrics on the search results that influence search ranking • Project comparisons • Reference case studies on project pages • Better tagging and classification of projects Common themes and possible solutions
  59. Groups.drupal.org • I want to find out when there will

    be Drupal events happening near me • I want to connect with other members of the community • I want to communicate with the members of my local user group • I want to receive news and updates from my local user group • I want to find out when/where is the next LUG meetup What we heard in user research
  60. Groups.drupal.org • Deciding if the path is to migrate to

    Drupal Commons (80/20 rule) • While planning migration, we need to start thinking about integration with Drupal.org • There is data in Groups that we need to better understand our community It’s all about the features