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

Scaling Documentation and Team Practices

Ahmad Nassri
February 22, 2018

Scaling Documentation and Team Practices

Talk at GitHub Constellation Seattle 2018.

Ahmad Nassri

February 22, 2018
Tweet

More Decks by Ahmad Nassri

Other Decks in Technology

Transcript

  1. Ahmad Nassri Syrian-Canadian, Entrepreneur, Hacker, Developer, Open Source Advocate &

    Dog Lover. Principal Architect at TELUS digital, Founder at Bench CI, Founder at Tech Masters, Mentor at NodeSchool Toronto, Board Member at Full Stack Toronto, Organizer at Functions Conf, NodeDay Toronto, Editor at The RESTful Web.
  2. Our Mission Enable customers and team members to do what

    they want to do, easily Our Principles… • Focus on Customer First • Value data over opinions • Deliver outcomes over outputs • Take risks and be lean • Be an owner • Build for quality and reuse • Attract and develop leaders • Embrace inclusivity • Strengthen communities around us
  3. Humble Beginnings • First solid attempt at digital transformation: My

    Account • Enable customers to check their bills, usage, call history, etc... • Our first Agile/Scrum, Cloud, DevOps & IaaS project • Mobile-first experience, delivered just in time for the smartphone explosion • Highly accessible site; WCAG 2AA compliant • Highest customer satisfaction of the big 3 Canadian Telcos
  4. CONSUMER BUSINESS MY ACCOUNT RUBY ON RAILS ENGINE YARD AWS

    (PaaS) TELUS DIGITAL AWS CMS (COMFY) PHP ON CODEIGNITER (PRIME) PHP ON CODEIGNITER (PRIME) BTO SERVICE CMS (LIGER) BTO SERVICE TELUS DIGITAL AWS BTO SERVICE JAVA CMS HS (LIGER) CMS (WMD) TELUS DIGITAL AWS TELUS DIGITAL AWS PHP ON CODEIGNITER (PRIME) COMMERCE (DRUPAL) BTO SERVICE ... CMS (WMD) FROGGER | HYDRA | JSP FROGGER | TWIGGY ANGULAR | REACT BUSINESS CSS | HAML FROGGER | TWIGGY | ANGULAR RUBY ON SINATRA TELUS DIGITAL AWS VUE BTO SERVICE ... TELUS DIGITAL AWS NODEJS CMS (CONTENTFUL) THORIUM | REACT TELUS DIGITAL AWS JAVA ON SPRING BOOT THORIUM | VUE BTO SERVICE ... • Team grew quickly • Moved quickly • Operating model evolved without strong architectural oversight • Many disparate technical stacks • What made us successful to date isn't what will work at scale 2015 - 2016: Growth
  5. • Multiple tech stacks • Multiple overlapping CSS files •

    No single source of code or design truth • Teams reinvent the wheel • Inconsistent customer experience • Builds and updates take longer Growing Pains Many teams are building TELUS experiences without an easy way to reuse work, share ideas, or receive and consume design / code updates.
  6. Land of broken toys • Disjointed customer experience • Very

    complicated technical landscape • Large effort required to deliver quality experiences Which leads to … • Unhappy Developers • Unhappy Customers • Unhappy Business
  7. Digital Architecture - 2017 INFRASTRUCTURE (Amazon Web Services) DESIGN SYSTEM

    (React) WEB (React, Redux) NATIVE (iOS, Android) API (Node.js / Express) MONITOR (Kibana) SCALE (Kubernetes) DEPLOY (OpenShift) BUILD (Docker) PIPELINE (Jenkins) DEVELOPMENT DELIVERY ANALYTICS (Adobe Analytics) TRACKING (Adobe DTM) DMP (Adobe AEM) PERSONALIZATION (Adobe Target) DATA LAKE (Hadoop / Cassandra) INSIGHTS AI (TensorFlow) ACCESSIBILITY (aXe) END-2-END (Nightwatch) FUNCTIONAL (Jest) SECURITY (Contrast, NSP) PERFORMANCE (Artillery) TESTING SEGMENTATION (Adobe Audience Manager) A/B TEST (Adobe Target) ORCHESTRATION (GraphQL) SEO (Lighthouse) CONTENT (Contentful)
  8. A more systematic approach to development and design will enable

    us to build at scale, leverage the collective wisdom of our teams and partners, and more easily deliver consistently great experiences to customers.
  9. path to production Assess your value chain and kick-start your

    culture of architecture by mapping your path to production.
  10. STRATEGY, DESIGN & TECH PORTFOLIO & INSIGHTS OPERATIONS (accessibility, security,

    ops) PEOPLE OPS OUTCOME TEAMS ENABLEMENT TEAMS MOBILITY BUSINESS MY ACCOUNT HOME SOLUTIONS
  11. Improving our Practices: #MeetingMondays Why: Respect Maker Time! We’ve observed

    so many meeting taking place throughout the week, leaving little time for makers to focus on their work. What: An evolution of our habits, a consolidation of our Design, Content, Development, PO, Architecture, and Platform specific meetings into one full day of activities How: • Showcases: share updates, Q&A, collect feedback • Architecture Forum: Introduce new standards or improve existing ones • Breakout Sessions, Deep Dives: ◦ Increase collaboration ◦ Encourage culture of sharing • Guest Speakers (internal & external): ◦ Increase expertise in key areas (SEO, Content Strategy, Design, Marketing, etc...) ◦ Visibility into key lines of business
  12. • Hosted on Github • Open for Everyone • Issues

    and Comments as tools for Collaborative Discussion • Historical & Decision Record • Design, Tech, Process & Strategy Architecture Forum
  13. Improving our Practices: Training & Workshops Workshops: • Platform Product

    Tours across Montreal, Toronto, and Vancouver • Design Training • Analytics and Data Training • Hackathons Self Directed Courses (Video): • API Platform: API Gateway 101 • Design Platform: Invision + Sketch Training • Device Farm 101 • Automated Testing 101 • Delivery 101
  14. Improving our Practices: Slack Channels Primary: Digital Platform: #t-digital-platform Digital

    Services: #t-digital-services Secondary: Content Platform: #g-content-platform API Platform: #g-api-practice Testing Platform: #g-testing TELUS Design System: #tds-guild Global Elements: #s-global-elements Delivery Platform: #g-delivery Analytics Platform: #g-personalization
  15. Reference Architecture • Open Contribution Model • Design Standards •

    Development Standards • Accessibility Standards • Security Standards • Process Standards • Testing Standards • Delivery Standards • Performance Standards
  16. Friendly and Open Contribution Model • No Ivory Towers! •

    No Sacred Cows! • Everybody can contribute (including non-makers) • Design, Tech, Process, Strategy & more! • Introduce New Ideas • Evolve Existing Standard • Dedicated Time to discuss • Experiment, Build, Measure, Repeat
  17. Focus on Knowledge Sharing → Always Start with “Why” →

    Provide Context & Evidence → Least important part is the “How” → Use the Architecture Forum to discuss → Use #MeetingMondays to Build
  18. Codify Standards into Starter Kits • TELUS Isomorphic Starter Kit

    • Koodo Isomorphic Starter Kit • API Starter Kit • Node Starter Kit • Ruby Starter Kit • Java Starter Kit • Spring Boot Starter Kit • Starter Kit - Starter Kit!
  19. • Full End to End Testing ◦ (unit, functional, integration,

    seo, security, performance, accessibility, analytics, ...) • Automated Deployments • High Threshold gating (we don’t compromise on quality) Codify Standards into Automated Pipelines
  20. TELUS digital Products, Practices, Standards, Code and Governance to enable

    our teams at scale More than just Practices Standards Products Practices Governance • High Reusability • Build or Buy • No Sacred Cows • Detailed Roadmaps • Visible Catalogues • Enablement Tools • Collaborative model • Agile Workflow • Documentation • Education • Guild meetings • Slack channels • Standards • Change management • Acceptance criteria • Contribution model
  21. 1 Onboard 2 Design 3 Code 4 Updates USE 5

    Feedback 6 Design 7 Code CONTRIBUTE Contribution Framework
  22. We do all of this in public to truly embrace

    our customer first commitment github.com/telusdigital/reference-architecture