Scaling Agility: The Technical Angle
Flavius Stef
Mozaic Works
1.0
About me
Flavius Stef
In I.T. since 2002
Agile Coach and Trainer
Was:
– Web Developer
– Project Manager
– Scrum Master
– Product Owner
– Co-founder
flavius.stef@mozaicworks.com
(Twitter) @FlaviusStef
PRINCIPLES
TEAMS STRUCTURE
ARCHITECTURE AND DESIGN
CONFIGURATION MANAGEMENT
ALIGNMENT
FEEDBACK
A word of warning
#AgileTip: To some folks Scaling Agile is like Scaling
Fish: They keep scraping off stuff until it looks like
something they can swallow.
@WoodyZuill
“
PRINCIPLES
●
Don't do it
●
Short term versus long term
●
Bigger teams need bigger processes
●
Identify and fight bottlenecks
●
Build quality in
PRINCIPLES
TEAMS STRUCTURE
ARCHITECTURE AND DESIGN
CONFIGURATION MANAGEMENT
ALIGNMENT
FEEDBACK
Feature teams
(Agile)
Component teams
(Waterfall)
Favor this
Hybrid model
Feature
team
Feature
team
Feature
team
Component
team
Component
team
Have code stewards
Scalability
Javascript UI
Components
Database
performance
REST API
Oversee system architecture
Oversee system architecture
Experts should have slack
90%John
85%Mike
115%Molly
45%Susan
PRINCIPLES
TEAMS STRUCTURE
ARCHITECTURE AND DESIGN
CONFIGURATION MANAGEMENT
ALIGNMENT
FEEDBACK
Increase modularity
Increase modularity
package hudson;
import hudson.PluginWrapper.Dependency;
import hudson.init.InitMilestone;
import hudson.init.InitStrategy;
import hudson.init.InitializerFinder;
import hudson.model.AbstractModelObject;
import hudson.model.AdministrativeMonitor;
import hudson.model.Api;
import hudson.model.Descriptor;
import hudson.model.Failure;
import hudson.model.UpdateCenter;
import hudson.model.UpdateSite;
import hudson.util.CyclicGraphDetector;
import hudson.util.CyclicGraphDetector.CycleDetectedException;
import hudson.util.IOException2;
import hudson.util.PersistedList;
import hudson.util.Service;
import jenkins.ClassLoaderReflectionToolkit;
import jenkins.InitReactorRunner;
import jenkins.RestartRequiredException;
import jenkins.YesNoMaybe;
import jenkins.model.Jenkins;
import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
import org.apache.commons.io.FileUtils;
… and 15 more!
Simplify designs
HTML/CSS/Javascript/Ajax
Servlet
REST Services
UI “Middleware”
...
...
...
Custom RPC Engine
...
...
...
Linux Kernel
Simplify designs
HTML/CSS/Javascript/Ajax
Servlet
REST Services
UI “Middleware”
...
...
...
Custom RPC Engine
...
...
...
Linux Kernel
HTML/CSS/Javascript/Ajax
Servlet
REST Services
UI “Middleware”
...
...
...
...
Linux Kernel
What's the simplest thing that could possibly work?
Be careful with published interfaces
Service Facade
Compatible Change
Basic Integration Refinement
Adapter
Strategy
Program defensively
int low_quality_programming(char *input){
  char str[1000+1];     // one more for the null character
  // ...
  strcpy(str, input);   // copy input
  // ...
}
int high_quality_programming(char *input){
  char str[1000];
  // initialize the string NUL characters
  memset(str, 0, sizeof(str));    
  
  // …
  
  // copy input, always leaving room for a NUL character
  strncpy(str, input, sizeof(str) ­ 1); 
  // ...
}
Program defensively
int low_quality_programming(char *input){
  char str[1000+1];     // one more for the null character
  // ...
  strcpy(str, input);   // copy input
  // ...
}
int high_quality_programming(char *input){
  char str[1000];
  // initialize the string NUL characters
  memset(str, 0, sizeof(str));    
  
  // …
  
  // copy input, always leaving room for a NUL character
  strncpy(str, input, sizeof(str) ­ 1); 
  // ...
}
More?
Check and sanitize inputs
Use assertions
Standardize exception handling
PRINCIPLES
TEAMS STRUCTURE
ARCHITECTURE AND DESIGN
CONFIGURATION MANAGEMENT
ALIGNMENT
FEEDBACK
Reduce build creation time
How long would it take your organization to deploy
a change that involves just one single line of code?
Do you do this on a repeatable, reliable basis?
Mary Poppendieck, Implementing Lean Software Development
“
Separate release cycles
JS UI
Components
Releases
Product
Release
Use feature toggle
<toggle name="petSurvey">
  <p>Take our new <a href = 'petSurvey'>pet survey</a></p>
</toggle>
Example from: http://martinfowler.com/bliki/FeatureToggle.html
PRINCIPLES
TEAMS STRUCTURE
ARCHITECTURE AND DESIGN
CONFIGURATION MANAGEMENT
ALIGNMENT
FEEDBACK
Document architecture
Document architecture
Document architecture
Create communities
Communities of practice
Internal Q&A site
Hackathon
Document libraries
Run architecture workshops
At start of release,
or at start of sprint
PRINCIPLES
TEAMS STRUCTURE
ARCHITECTURE AND DESIGN
CONFIGURATION MANAGEMENT
ALIGNMENT
FEEDBACK
Invert the testing pyramid
Run system tests continuously
time time
qualityquality
Waterfall Agile
SP 1 SP 2 SP 3 SP 4 SP 5 SP 6
SYSTEM TESTS
Build a deployment pipeline
Commit
Automated
acceptance
UX testing
User
acceptance
Scalability
testing
git push
automated
manual
Build (war, gems,
minified js/css)
Run unit tests
Static analysis
Run component tests
Deploy artifacts
CI Server
monitors
launches
git push
Manual test
environments
Automated test
environment
THANK YOU!
QUESTIONS?
flavius.stef@mozaicworks.com
I'm on Twitter, LinkedIn, FB
Image credits
●
https://flic.kr/p/8zLKRb
●
List designed by TukTuk Designz from the Noun Project
●
http://en.wikipedia.org/wiki/File:Deployment_Diagram.PNG
●
http://en.wikipedia.org/wiki/File:CheckEmail.svg
●
http://blog.adrianbolboaca.ro/2013/01/architectural-kata/img_0507/
●
http://3.bp.blogspot.com/-gU9fWdBfB1Y/Ul3861lVk1I/AAAAAAAALpA/J2YRGrQH

More Related Content

PDF
Stop throwing money out the window
PDF
Mindset: the biggest barrier to agility
PDF
Big rewrites without big risks
PDF
Is management dead?
PPTX
Business agility: Role of the Manager
PPTX
Scaling agile
PPTX
Beginning the Kanban journey at an Enterprise IT - Case study - Pelephone
PPT
Scrum levels danny_kovatch_agile_sparks
Stop throwing money out the window
Mindset: the biggest barrier to agility
Big rewrites without big risks
Is management dead?
Business agility: Role of the Manager
Scaling agile
Beginning the Kanban journey at an Enterprise IT - Case study - Pelephone
Scrum levels danny_kovatch_agile_sparks

What's hot (20)

PPTX
Don't "Do" Agile, Be Agile
PDF
A Product Manager and a Designer Walk into a Bar
PDF
How Product Managers Thrive in a DevOps World
PDF
Do Agile Right - Lessons Learned from an Atlassian Product Manager - Sherif M...
PDF
Agile concepts for quality and process engineers for slideshare
PPT
Scrum Master: Role or Responsibility?
PDF
Scaling Agile with Portfolio for Jira
PPTX
The Agile Hammer
PDF
Agile for the Masses: How to Make Any Team More Effective - John Wetenhall
PPTX
Simple Agile
PDF
XebiCon'17 : //Tam-tams// Voici l’histoire de la disparition des dinosaures d...
PPTX
Leading agile teams
PPTX
The 7 Deadly Sins Of Almost Being Agile
PDF
Artem Bykovets: Agile Leader is coming to the pub Team, what to start from?
PPTX
Product Management With Product Developed By Many Teams
PDF
Fiverr - delivering fast w/ no QA - Agile Israel 2016 Gil Wasserman
PPTX
Technical Excellence Doesn't Just Happen - AgileIndy 2016
PDF
How Kaiser Permanente uses Jira Software for Analytic Data Management
PDF
Technical Excellence Doesn't Just Happen--Igniting a Craftsmanship Culture
PDF
An Approach to Devops
Don't "Do" Agile, Be Agile
A Product Manager and a Designer Walk into a Bar
How Product Managers Thrive in a DevOps World
Do Agile Right - Lessons Learned from an Atlassian Product Manager - Sherif M...
Agile concepts for quality and process engineers for slideshare
Scrum Master: Role or Responsibility?
Scaling Agile with Portfolio for Jira
The Agile Hammer
Agile for the Masses: How to Make Any Team More Effective - John Wetenhall
Simple Agile
XebiCon'17 : //Tam-tams// Voici l’histoire de la disparition des dinosaures d...
Leading agile teams
The 7 Deadly Sins Of Almost Being Agile
Artem Bykovets: Agile Leader is coming to the pub Team, what to start from?
Product Management With Product Developed By Many Teams
Fiverr - delivering fast w/ no QA - Agile Israel 2016 Gil Wasserman
Technical Excellence Doesn't Just Happen - AgileIndy 2016
How Kaiser Permanente uses Jira Software for Analytic Data Management
Technical Excellence Doesn't Just Happen--Igniting a Craftsmanship Culture
An Approach to Devops
Ad

More from Flavius Stef (9)

PDF
Clean Architecture
PDF
Five Things I've Learned in Ten Years of Agile
PPTX
Product ownership versus product management
PDF
Scrum vs Kanban: Is there really a battle?
PDF
Leading Tech Teams
ODP
An introduction to Kanban
PDF
Catalyzing change
PDF
What Do Agile Leaders Do
PDF
The Scrum Master's Toolbox
Clean Architecture
Five Things I've Learned in Ten Years of Agile
Product ownership versus product management
Scrum vs Kanban: Is there really a battle?
Leading Tech Teams
An introduction to Kanban
Catalyzing change
What Do Agile Leaders Do
The Scrum Master's Toolbox
Ad

Recently uploaded (20)

PDF
AI-Powered Threat Modeling: The Future of Cybersecurity by Arun Kumar Elengov...
PDF
Website Design Services for Small Businesses.pdf
PDF
Salesforce Agentforce AI Implementation.pdf
PDF
Visual explanation of Dijkstra's Algorithm using Python
PDF
Autodesk AutoCAD Crack Free Download 2025
PPTX
GSA Content Generator Crack (2025 Latest)
PDF
How Tridens DevSecOps Ensures Compliance, Security, and Agility
PPTX
Monitoring Stack: Grafana, Loki & Promtail
DOCX
How to Use SharePoint as an ISO-Compliant Document Management System
PPTX
Computer Software - Technology and Livelihood Education
PDF
Cost to Outsource Software Development in 2025
PDF
The Dynamic Duo Transforming Financial Accounting Systems Through Modern Expe...
PPTX
Introduction to Windows Operating System
PDF
MCP Security Tutorial - Beginner to Advanced
PDF
How to Make Money in the Metaverse_ Top Strategies for Beginners.pdf
PDF
Ableton Live Suite for MacOS Crack Full Download (Latest 2025)
PDF
DuckDuckGo Private Browser Premium APK for Android Crack Latest 2025
PPTX
Trending Python Topics for Data Visualization in 2025
PPTX
Patient Appointment Booking in Odoo with online payment
PPTX
WiFi Honeypot Detecscfddssdffsedfseztor.pptx
AI-Powered Threat Modeling: The Future of Cybersecurity by Arun Kumar Elengov...
Website Design Services for Small Businesses.pdf
Salesforce Agentforce AI Implementation.pdf
Visual explanation of Dijkstra's Algorithm using Python
Autodesk AutoCAD Crack Free Download 2025
GSA Content Generator Crack (2025 Latest)
How Tridens DevSecOps Ensures Compliance, Security, and Agility
Monitoring Stack: Grafana, Loki & Promtail
How to Use SharePoint as an ISO-Compliant Document Management System
Computer Software - Technology and Livelihood Education
Cost to Outsource Software Development in 2025
The Dynamic Duo Transforming Financial Accounting Systems Through Modern Expe...
Introduction to Windows Operating System
MCP Security Tutorial - Beginner to Advanced
How to Make Money in the Metaverse_ Top Strategies for Beginners.pdf
Ableton Live Suite for MacOS Crack Full Download (Latest 2025)
DuckDuckGo Private Browser Premium APK for Android Crack Latest 2025
Trending Python Topics for Data Visualization in 2025
Patient Appointment Booking in Odoo with online payment
WiFi Honeypot Detecscfddssdffsedfseztor.pptx

Scaling Agility: The Technical Angle