Slide 1

Slide 1 text

TORONTO Scaling Documentation and Team Practices Ahmad Nassri - Principal Architect, TELUS digital

Slide 2

Slide 2 text

Scaling Documentation and Team Practices Ahmad Nassri - Principal Architect, TELUS digital

Slide 3

Slide 3 text

About Ahmad

Slide 4

Slide 4 text

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.

Slide 5

Slide 5 text

tl;dr http://ahmad.codes

Slide 6

Slide 6 text

About TELUS

Slide 7

Slide 7 text

Phone Internet Mobile TV

Slide 8

Slide 8 text

Home Security Health IoT

Slide 9

Slide 9 text

No content

Slide 10

Slide 10 text

No content

Slide 11

Slide 11 text

Traditional Enterprise IT

Slide 12

Slide 12 text

No content

Slide 13

Slide 13 text

About TELUS digital

Slide 14

Slide 14 text

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

Slide 15

Slide 15 text

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

Slide 16

Slide 16 text

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

Slide 17

Slide 17 text

Onboarding Failure

Slide 18

Slide 18 text

● 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.

Slide 19

Slide 19 text

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

Slide 20

Slide 20 text

Circles of Influence & Community of Practice

Slide 21

Slide 21 text

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)

Slide 22

Slide 22 text

Big Bang 2.0 Culture of Enablement

Slide 23

Slide 23 text

“Culture eats strategy for breakfast, lunch and dinner” - Peter Drucker Main Guiding Principle:

Slide 24

Slide 24 text

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.

Slide 25

Slide 25 text

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

Slide 26

Slide 26 text

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

Slide 27

Slide 27 text

No content

Slide 28

Slide 28 text

• Hosted on Github • Open for Everyone • Issues and Comments as tools for Collaborative Discussion • Historical & Decision Record • Design, Tech, Process & Strategy Architecture Forum

Slide 29

Slide 29 text

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

Slide 30

Slide 30 text

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

Slide 31

Slide 31 text

No content

Slide 32

Slide 32 text

No content

Slide 33

Slide 33 text

Reference Architecture ● Open Contribution Model ● Design Standards ● Development Standards ● Accessibility Standards ● Security Standards ● Process Standards ● Testing Standards ● Delivery Standards ● Performance Standards

Slide 34

Slide 34 text

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

Slide 35

Slide 35 text

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

Slide 36

Slide 36 text

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!

Slide 37

Slide 37 text

• 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

Slide 38

Slide 38 text

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

Slide 39

Slide 39 text

1 Onboard 2 Design 3 Code 4 Updates USE 5 Feedback 6 Design 7 Code CONTRIBUTE Contribution Framework

Slide 40

Slide 40 text

We do all of this in public to truly embrace our customer first commitment github.com/telus/reference-architecture

Slide 41

Slide 41 text

tl;dr

Slide 42

Slide 42 text

What’s Next? The Future is Friendly

Slide 43

Slide 43 text

Thank you! telus.com/digital @AhmadNassri ahmad.codes/talks