How to scale a chocked up mid-stage startup!!!

18
RobotLungs ® 300 persons Startup! Scaling for the Increased Demands

Transcript of How to scale a chocked up mid-stage startup!!!

RobotLungs ®

300 persons Startup!Scaling for the Increased Demands

Scaling RobotLungs ®

Main Themes

Problem Statement

Assumptions

Technology Standardization & Governance for Tools & Practices

Improvising Engineering Practices using LEAN, XP & Agile

Reengineering the Platform & Processes for Larger Enterprise Scale

Ensuring Enterprise Controls for sustaining Reputation

Improving Team Structures & Dynamics for enhanced Productivity

Control Resource Mobility for Top Talent Retention

Problem Statement

RobotLungs is experiencing significant reduction in Time to Market for its Flagship Product ROS ® (RobotOS).

Current SDLC processes, team structure & engineering practices have been proven bottleneck and unable to scale to the increased demand and volatility of the business.

Devastated Intercommunication between the Application Teams causing nightmare in coordinating the larger release spans across applications.

Releasing code changes through bleeding edge environments and kingdom of siloed allies is almost a Myth now!

It has been lately difficult in retaining Top Talent.

Assumptions

RobotLungs is practicing traditional waterfall model

Every Application Team is working in own silo with a very little focus and understanding of a bigger picture

There is a lack of common build & deploy infrastructure

There is a lack of Enterprise level SDLC controls

There is a lack of understanding on best practices around various Software Development aspects

Each Team owns a Module or Application that is the part of larger enterprise platform

Technology Standardization & Governance

Problem

Siloed Application Teams

Utilization of bleeding edge Technologies

High Ramp up for new and existing developers

Identification of RC

Lack of Unified guidance to the application teams pertaining to Tools & Practices

Lack of Software Engineering & Architecture Library to govern Technology Lifecycle & Whitelist of OSS & Commercial Software Products/Components & Frameworks

Lack of common Plan/Build/Operate Infrastructure

Remediation Establish Technology Governance and Software Engineering & Architecture Library of OSS and

Commercial software to promote the standardization of Technology usage within the firm This will centralize the control of version upgrades/patching/maintenance/licensing, security

scanning/remediation to enforce a Technology Uniformity/Standardization and save cost This will also reduce usage of Bleeding Edge Technologies by increasing usage of common,

sustainable and approved Tech Stack across the Teams, which in terns would improve resource flungibily

Build common infrastructure for CI, Deployment, Issue Tracking/Release Planning, Code Coverage, Code Review Tools to drive mass behavior and discipline

Improvising Engineering Practices (LEAN, XP, Agile)

Benefits

Early Feedback, Fail fast, Enhanced quality, Continuous Improvement

Reduced Waste, Faster T2M, Lower Risk

Improved communication

Great Business Value

XP

Simple Design, Sustainable Pace, Small Releases, Release/Iteration Planning

CI, TDD, Pair Programming, Refactoring, Whole Team, Collective Code Ownership, Retrospective

Common Dashboard to monitor the practices are religiously followed

Reengineering the Platform & Processes - 1

Primary Focus

the usage of bleeding edge Technologies & promote standardized approved Technology Stack

Account for Code Quality in all development efforts by enforcing Pair Programing, Peer Reviews, Unit Test Coverage, Automated Functional Testing and Full Regression Testing

“Shift Left” - Setup End to End Integration Testing Environment for Dev Teams & enforce full integration testing as part of the Development Cycle

Setup a Centralized Release Repository to store artifacts/components from every application for promotion to environments beyond Development

the interdependencies between applications/modules by introducing Centralized Repository of common components, cross cutting functionalities & shared frameworks and have a dedicated team (resources forked from existing teams) to support it

Power of Shift Left

The Fact - Cost of fixing defects is significantly higher when they are found on right vs. left

The Focus – Find and fix the defects on left (DEV) as much as possible

Lack of Unit Testing – Uncovers code defects that causes breakage in single Unit

Lack of Integration Testing – Uncovers design & architectural defects that causes breakage across multiple units/entire system

The Bottom-line – Shift Left the Integration Testing to save cost, improve Time to Market, Quality & Confidence

Reengineering the Platform & Processes - 2

Reengineering the Platform & Processes – 3

Improving Team Structure & Dynamics

Problem in Traditional Team Structure

Siloed Application Teams

Lack of transparency and communication

Difficulty in coordinating complex releases

Remediation

Improve communication & integration across the Teams by utilizing Agile & XP practices

Define SLAs & Cross Impact Metrics to smooth out the Complex deliveries cutting across applications

Centralize common support teams for Database, Infrastructure, Architecture, Risk/Security, Production Support & Cross cutting components/services to improve the focus for application teams on actual deliverables, quality & timelines

Merge/Decommission the redundant applications and reposition team members based on their expertise & interest

No Heroics, Whole Team & Collective Ownership

Ensuring Enterprise ControlsImportance of Enterprise Controls

Control modification, quality and distribution of the code

Ensure integrity, availability, performance, user experience, reliability, compliance and support of the system

Protect customer data and critical business assets all the time

Ensure the outcome of the complex and highly integrated hydrogenous system is as per the business specifications

Essential Controls to be in placed,

Source code protected, historical changes are maintained and audit trail is always logged for all critical business operations

Business Requirements/Stories signed off by Technology

Test Plans signed off by Business

Implementation Plan signed off by Architecture/Design

Availability, Resiliency, Security & Performance of Prod/DR

Business Data is always secured and backed up

Code Changes adhere to best practices & defensive programing

CI, Full Regression & Automated Deployment

QA/UAT & Pre-Prod Sign off prior to Prod Promotion

Post Prod Promotion validation & sign off

Control Resource Mobility

Problem

People exiting frequently is concerning and is a symptom of a critical underlying issue pertaining to, Compensation, Recognition Culture Fit, Job Fit, Role Fit Not being challenged Inefficient Hiring Process

Identification of RC

Identify the trend to understand the root cause by, Employee Satisfaction Surveys Collect and Analyze the data

around people leaving the firm for useful pointers

HR Exit Interviews to know what could have helped them stay!!!

Remediation Frequent Kudos, Social gatherings, Compensate per Industry norms

Time to Proficiency (T2P), Align people based on their interest & expertise, On Job Trainings

Periodic Performance Review/Satisfaction Surveys/Feedback Collection and Follow through

Objective Hiring Process (Behavioral, Personality & Culture Fit)

Appendix

Common Development Tools

Practice Tool Infrastructure

Source Code Management SVN / Git / Changeman Common/Shared

Workspace/ IDE, Servers Setup

Apache Puppet, Boxgen, Vagrant, Chef, Salt

Application Managed

Continuous Integration Jenkins / BuildBot / Thoughtworks Go

Common/Shared

Automated Deployment/Release Management

Buildforge / Jenkins / BuildBot / Thoughtworks Go

Common/Shared

Peer Code Review Fisheye / Crucible Common/Shared

Issue Tracking/Spring Planning

JIRA / Thoughtworks Mingle Common/Shared

Automated Functional Testing

Selenium / Cucumber / Concordian, Thoughtworks Twist

Application Managed

Application Building Maven / MSBuild Application Managed

Code Coverage SONAR Common/Shared