Slide 1

Slide 1 text

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

Slide 2

Slide 2 text

About Ahmad

Slide 3

Slide 3 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 4

Slide 4 text

About TELUS

Slide 5

Slide 5 text

Phone Internet Mobile TV

Slide 6

Slide 6 text

Home Security Health IoT

Slide 7

Slide 7 text

No content

Slide 8

Slide 8 text

No content

Slide 9

Slide 9 text

Traditional Enterprise IT

Slide 10

Slide 10 text

No content

Slide 11

Slide 11 text

About TELUS digital

Slide 12

Slide 12 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 13

Slide 13 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 14

Slide 14 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 15

Slide 15 text

Onboarding Failure

Slide 16

Slide 16 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 17

Slide 17 text

Circles of Influence & Community of Practice Digital Koodo Public Mobile Int. Health IT Partners

Slide 18

Slide 18 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 19

Slide 19 text

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)

Slide 20

Slide 20 text

Big Bang 2.0 Culture of Enablement

Slide 21

Slide 21 text

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

Slide 22

Slide 22 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 23

Slide 23 text

path to production Assess your value chain and kick-start your culture of architecture by mapping your path to production.

Slide 24

Slide 24 text

STRATEGY, DESIGN & TECH PORTFOLIO & INSIGHTS OPERATIONS (accessibility, security, ops) PEOPLE OPS OUTCOME TEAMS ENABLEMENT TEAMS MOBILITY BUSINESS MY ACCOUNT HOME SOLUTIONS

Slide 25

Slide 25 text

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

Slide 26

Slide 26 text

No content

Slide 27

Slide 27 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 28

Slide 28 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 29

Slide 29 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 30

Slide 30 text

No content

Slide 31

Slide 31 text

No content

Slide 32

Slide 32 text

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

Slide 33

Slide 33 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 34

Slide 34 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 35

Slide 35 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 36

Slide 36 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 37

Slide 37 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 38

Slide 38 text

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

Slide 39

Slide 39 text

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

Slide 40

Slide 40 text

Keeping a Strong Momentum

Slide 41

Slide 41 text

What’s Next? The Future is Friendly

Slide 42

Slide 42 text

Thank you! @AhmadNassri ahmad.codes/talks

Slide 43

Slide 43 text

No content