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

Scaling Documentation and Team Practices

Scaling Documentation and Team Practices

Presented at Github Constellation Toronto 2018

https://githubconstellation.com/toronto/

Ahmad Nassri

June 14, 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 - 2018 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. Today, every company is becoming a software company and developers

    are at the center of digital transformation; they drive business processes and functions across organizations from customer service and HR to marketing and IT. And the choices these developers make will increasingly determine value creation and growth across every industry. Satya Nadella, Microsoft CEO
  10. Improving our Practices: #MeetingMondays 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 Why: Respect Maker Time! We’ve observed so many meetings 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
  11. • Hosted on Github • Open for Everyone • Issues

    and Comments as tools for Collaborative Discussion • Historical & Decision Record • Design, Tech, Process & Strategy Architecture Forum
  12. 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
  13. 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
  14. Reference Architecture • Open Contribution Model • Design Standards •

    Development Standards • Accessibility Standards • Security Standards • Process Standards • Testing Standards • Delivery Standards • Performance Standards
  15. 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
  16. 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
  17. 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!
  18. • 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
  19. 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
  20. 1 Onboard 2 Design 3 Code 4 Updates USE 5

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

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