xp practices as scaffolding for breakthrough companies
TRANSCRIPT
XP PRACTICES AS SCAFFOLDING FOR BREAKTHROUGH COMPANIES
Vu Tung LamXP Day VN 2015
Vu Tung Lam
Agile Coach, Engineering DirectorÒ Certified Scrum MasterÒ Certified Scrum ProfessionalÒ Certified SAFe AgilistÒ Expert in Agile Training & Coaching,
Agile Transformation & Scaling, Leadership, IT Organization & Management.
Ò Scrum Alliance Profile
Ò Have successfully guided companies of varied size (from a single team to multiple teams geographically distributed) through their transformation to higher Agile fluency level.
Ò Experiences scaling Agile transformation to multiple teams, multiple departments beyond IT.
Ò Practical approach for Agile implementation with a combination Scrum, XP, Kanban, Lean, DevOps, LeSSand SAFe.
Ò Decade of experience managing, building engineering team and implementing best technical practices such as pair-programming, unit testing, test driven, automation, CI/CD.
OUTLINE
Breakthrough Companies, their challenges & required “scaffolding”
Answering big questions
§ Keep delivering business value while addressing legacy engineering challenges
§ Sustain the changes
BREAKTHROUGH COMPANIES
☑Have built successful innovative products, typically with large user base
☑Have beach-headed and captured their market niches
☑Well positioned financially (profitable or well funded)
☐Prepare to expand horizontally and/or vertically
SCAFFOLDING
“Scaffolding, also called staging, is the basis of most construction projects it is a temporary structure used to support a work crew and materials to aid in the construction, maintenance and repair of buildings, bridges and all other man made structures.” – Wikipedia
In software engineering context, it is a metaphor for practices & processesrequired to be in place for companies to sustain their high innovation pace.
CHALLENGES BREAKING-THROUGH
Product
o Adapt the successful formula to similar areas
o Keep out-pace competitors in terms of innovation and new feature development
o Figure the right things to build
IT
o Rapid expansion of engineering team
o Career transition, “new blood” infusion
o Legacy code base – enough said
o Curse of scalability – exponential cost
o Pace of technological changes
o Pressure to deliver from business
Legacy code looking like this
With engineering best practices
BIG QUESTIONS
Q1. How to keep delivering business value while addressing legacy engineering challenges?
Q2. How to sustain the changesand avoid falling back to old habits?
HOW TO KEEP DELIVERING BUSINESS VALUE WHILE ADDRESSING LEGACY CHALLENGES?
IMPLEMENT AN AGILE FLAVOR
Scrum, XP, DevOps, Lean, whatever…
My opinions
o Start small, think about a MVP for process
o Don’t be purists – make Agile works for organizations
o Pick and choose appropriate tools from your Agile toolbox based on business value, regardless of flavors
o Maturity of technical practices is more important than processes
12 Valtech Confidential
ACKNOWLEDGE PUBLICLY THAT YOU HAVE LEGACY PROBLEMSo It requires a lot of courage to acknowledge this publicly
o Helps business to understand, gain support (time, resources, roadmap)
o Encourage team members to speak up, they know best what wrong and how to fix
o Focus energy to drive changes, improve the situation and avoid “blaming the ex-”
o Opportunities for big achievements
GAME-STORMING TO EMPOWER TEAM MEMBERS TO CHANGE
GAME-STORMING TO EMPOWER TEAM MEMBERS TO CHANGE
MAINTAIN A TECHNICAL DEBT BACKLOG
MAINTAIN A TECHNICAL DEBT BACKLOG
ITERATIVELY ADDRESS DEBT STRICTLY DRIVEN BY BUSINESS VALUE & REFINE BACKLOG
ARCHITECTURE FORUM
A community of volunteers who care about the technical quality aspect of software development
o Ultimate owner of technical debt
o Drive problem discovery, solutions, proof-of-concept
o Consensus-based decision making (coding standard, technology choices, etc.)
o Favor team autonomy over standardization
o Promote de-coupling and reducing of inter-team dependencies
BUILD “SCAFFOLDING”
o Light weight automation tools that quickly give feedback (e.g. link checker)
o Unit testing core functionalities (20/80)
o High coverage with unit testing
o GUI automation
AUTOMATION – WEB SITES
AUTOMATION – MOBILE LITE SITES
AUTOMATION – MOBILE APPS
BUGS CAUGHT WITH AUTOMATION (WEB)
RECAP1. Implement an Agile flavor…
2. Manage technical debto Acknowledge publicly that you have legacy problemso Empower team members to suggest changes and to drive solutiono Maintain a technical debt backlogo Prioritizing debt repayment based on $ value & efforto Repay technical debt as part of developmento Architecture forum as the driver of this process
3. Build scaffolding to safe-guard technical changeso Automation, automation, automationo CI/CD => super fast feedback loop
HOW TO SUSTAIN THE GOOD CHANGES?
UNDERSTAND HUMAN PSYCHOLOGY WITH RESPECT TO CHANGES1. Understand why people resist changes
2. Understand what drive & motivate people
3. Bottom-up approach in driving changes
4. Talk value, measure value, track progress, show wins
5. Reinforce positive feedback
STRENGTHEN YOUR SCAFFOLDING WITH EXTERNAL HELP
Benefits
o Know-how experiences from multiple implementation
o Expert opinions/assessments
o Objective, unbiased views
o Benefits as an outsider who is less affected by an organization’s “political minefield”
29 Valtech Confidential
PATTERN 1: BOOTSTRAPPING
Kick start Agile: Train all team members and stakeholders, advise on setting up appropriate organizational structure, and facilitate Sprint 0 for pioneering team.Duration: 1 iteration, typically 2-4 weeks.
Preparation
Training/Setting Up
• Training: Agile Fundamentals
• Training: Scrum Essentials
• Assessment of Agile readiness for the organization
• Advice of optimal organizational setup for succeeding Agile adoption
• Logistical preparation: tooling, artifacts
Executing the First Sprint
• Play the role of an Agile Coach or Scrum Master to execute the first Sprint
• Facilitate standard Scrum ceremonies: huddle, planning, review, retrospective
• Remove impediments and coach the team situational problem solving
• Deliver role-specific coaching with team members: product owner, scrum master and the team
Week 1
Deliverables
• Knowledge transfer to team members
• Advices of optimal implementation strategy for Agile adoption
Deliverables
• Successful first sprint and readiness to continue Scrum process
• Report of recommended practices
Week 2-4
Sprint 0
30 Valtech Confidential
PATTERN 2: ACCELERATING
Accelerating Agile adoption: Ideal for teams are trying Agile but inexperienced. Designed to speed up adoption and achieve concrete, tangible improvements.Duration: 3-4 iterations, typically 6-8 weeks
Overall Assessment
• Retrospective workshop
• Technical debt workshop
• One-to-one interview with team members
• Agile/Scrum assessment
• Observation of existing Agile practices
• Agree on success criteria
Bridging the gaps
• Identify skill/knowledge gap and prepare workshops
• Deliver role-specific training/coaching with team members
Team Coaching
• Coincide with the current sprint/iteration cadence
• Product management skills for Product Owners
• Facilitation techniques for Scrum Masters/Project Managers
• Pair with technical team members to help on engineering best practices
Week 1-2
Deliverables
• Assessment report & recommended course of actions
• Gap analysis & Engagement plan
Deliverables
• Training/workshop help team members bridging identified gaps
• Report of recommendedpractices
Deliverables
• Skills transferred
• Measurable improvements
Weeks 3-4 Weeks 5-8
31 Valtech Confidential
PATTERN 3: CONTINUOUS IMPROVEMENT
Break that Barrier: Ideal for teams who are comfortable with Agile but face several challenges of a fluent Agile team: e.g. speed & predictability of deliveryDuration: Depends on topic & context, typically 4-6 weeks
Problem Defined
• Agile/Scrum assessment
• Investigate deep under the surface to identify symptoms and problem.
• Define problem and measurable success criteria
• Consultancy approach with team members to come up with solution
Problem Solved
• Iteratively tackle the problem while maintaining metrics to guide progress.
• Collaboratively work with team members and other relevant stakeholders for a comprehensive solution.
• Depending on the nature of the challenge at hand, coaching team members to address the underlying issues and prevent them from occur again in the future.
Week 1
Deliverables
• Assessment report of the problem and recommended course of actions
• Gap analysis & action plan
Deliverables
• Agree success criteria met
• Report of recommended practices & skills/knowledge transfer.
Weeks 2-6
BUILD SUSTAINABLECOMMUNITIES OF PRACTICE
Agile Practitioners
Agile Product Management
Agile Technical Practices
Agile Testing
DevOps
Architecture Forum
Lean Management
Build Communities Around Interests
o Start with a community of Agile practitioners/supporters
o Core groups: Product, Technical, Testing
o Other more specialized groups: Security, Architecture, DevOps.
Changes are sustainable when people believe in and continuously seek for ways to advance status quo, without much management interventions.
RECAP1. Understand human psychology with respect to changes
2. Strengthen your scaffolding with external helpo Pattern 1: Bootstrappingo Pattern 2: Accelerating o Pattern 3: Continuous Improvement
3. Build communities of practices to carry the torch
Q&A Vu Tung LamAgile Coach, Engineering Director
THANK YOU!