SlideShare una empresa de Scribd logo
1 de 40
Descargar para leer sin conexión
Agile Technical Leadership
Alex Bolboacă,  @alexboly,  alex.bolboaca@mozaicworks.com
October 2017
The Problem
One Solution: Technical Leadership
Some Context
Let’s Explore Together
Closing
The Problem
Tell me if this sounds familiar
Someone made a decision 5 years ago that is now very costly to maintain
and very costly to change
Eg. caching
Tell me if this sounds familiar
A set of incremental decisions has led to a difficult context
Eg. customize the product for each customer, end up with hundreds of
different versions
Tell me if this sounds familiar
More teams work on a product, each made their own architectural decisions
and now code is inconsistent
Eg. 15 different interprocess communication methods
What do these have in common?
Complex adaptive systems!
… dynamic network of many agents (which may
represent cells, species, individuals, firms, nations)
acting in parallel, constantly acting and reacting to
what the other agents are doing.
John H. Holland
Interesting because …
The control of a CAS tends to be highly dispersed and
decentralized.
If there is to be any coherent behavior in the system, it
has to arise from competition and cooperation among
the agents themselves. The overall behavior of the
system is the result of a huge number of decisions
made every moment by many individual agents.
So
There’s another way
Constraints!
One Solution: Technical Leadership
Agile Technical Leadership
The responsibility of setting constraints in order to make the development
more effective on mid/long term
The responsibility of making strategic technical decisions
Can there be technical leadership in agile?
Not only it can, there always is.
We want more. We want effective technical leadership.
Who should do technical leadership?
• Technical leads?
• Architects?
• CTOs?
• Everybody?
• Nobody?
Main thesis
Technical leadership is a core competency that will be filled formally or
informally in any development team.
To ensure effective development, we need to understand better how
technical leadership works in agile teams.
Some Context
All our practices are constraints
Code review - someone else needs to give feedback on the code you wrote
Pair programming - work with someone else on complex tasks
TDD - write one failing test, write the minimum code to make it pass, refactor
Continuous Integration - keep everyone’s changes integrated as quickly and
as often as possible
Daily meeting - synchronize daily with your team mates
Crafters movement
As a software crafter, I choose to impose constraints on myself because I
believe they are valuable
Following constraints = discipline
Side note
“Scrum assumes craftsmanship”, Ken Schwaber, OpenAgile Romania 2009
Strategic vs. Tactic decisions
Strategic decisions are decisions you need to make but are difficult to revisit
later
Eg. choice of programming language, architecture style, deployment etc.
Tactical decisions are decisions you need to make but are easy to revisit
later
Eg. how we implement an algorithm
Few more ideas
“Cross functional” means teams have all the necessary competencies. This
includes the competency of setting constraints and making strategic
technical decisions
Technical leadership is formal or informal. It doesn’t matter as long as it’s
effective.
Let’s Explore Together
Group exercise: Constraints
As a group, discuss and write down a list of constraints that you use in your
teams and the reasoning behind using them.
Hint: imagine you had no constraints at all, and compare with the current
way of working
Example
In Mozaic Works we use:
• checklists because they help us maintain a high level of quality even
when under pressure
• unit testing because it validates faster the correctness of the product
• design elements because it allows people who are learning design to
create consistent and correct code faster
• BDD Specs because they help clarify requirements before starting
• domain modeling because it helps minimise database migrations
• continuous deployment because it helps reduce deployment risks
Group exercise: Practices of technical leadership
As a group, imagine you are the new technical lead for your product.
Imagine you can change anything.
What would you do? Can you extract a list of practices?
Example
In Mozaic Works, I have:
• defined a clear technical vision: only full stack developers, responsible
from analysis to deployment, responsible for the quality of their work
• defined a testing strategy: what we test, with what types of tests etc.
• defined coding guidelines. Key ideas: focus on simplicity & readability,
write as little code as possible
• defined the configuration management policy: when to push, when to
branch, when to merge, how branches relate to production / staging /
testing etc.
• helped developers adopt the practices we need: training, deliberate
practice with daily katas & coding dojos etc.
• kept in touch with the developers needs through one-to-one meetings
and writing code together
Group exercise: make a strategic decision
You are in charge with deciding what web framework to use for a brand new
project in your company.
What criteria do you use to make your decision?
Answer
When I picked groovy on grails for our product, I looked at three different
frameworks, built prototypes and compared:
• how easy it is to write a simple web application
• how easy it is to write tests
• the community
• the reported bug count
Reflect
Was it difficult to make this decision? Why?
How confident are you that you made the right decision?
Group exercise: Strategic decisions
As a group:
• think about and write down a list of strategic decisions that were
made for your product
• pick one decision you are unhappy with
• what would you decide instead?
Reminder: strategic decisions are decisions difficult to change once they are
made. They typically affect more people and have effect over a longer
period of time.
Example
In Mozaic Works, I have decided to:
• use groovy on grails for all web applications
• use reactjs for complex front end pages
• use wordpress for all our websites
BUT:
• I am looking at more lightweight alternatives to grails (memory
consumption is high and costly on cloud).
• I put too much emphasis on learning and not enough on speedy
delivery.
Group exercise: mindset required for strategic decision making
You are now part of a technical leadership group for your product. You need
to make decisions related to:
• architecture that can affect next 2 years of development
• practices to use in teams to help improve effectiveness
• tools to adopt for improving code quality
As a group, think and write down:
• what is challenging when making strategic decisions? (hint:
uncertainty, incomplete information)
• what mindset should somebody have to make effective strategic
decisions? (hint: should be able to cope with uncertainty)
Learning strategic decision making
Bad news: not native
Good news: can be learned through practice
Where to start:
• decision models
• find three solutions for every problem
• understand advantages and disadvantages for each solution
• CIA checklist
• identifying criteria before evaluating solutions
• looking at a problem from different angles
• thinking at different levels of abstraction
• be comfortable with incomplete information and uncertainty
Closing
What did you learn?
Individually, write down one thing you learned today. Can you apply it in
your team?
Learn more
Mozaic Works blog https://blog.mozaicworks.com
Thank you!
I’ve been Alex Bolboacă, @alexboly, alex.bolboaca@mozaicworks.com
programmer, trainer, mentor, writer
at Mozaic Works
Think. Design. Work Smart.
https://mozaicworks.com
Join me for Berlin workshops
https://mozaicworks.com/calendar/#Berlin
Q&A
Q&A

Más contenido relacionado

La actualidad más candente

Agile is as Agile Does
Agile is as Agile DoesAgile is as Agile Does
Agile is as Agile DoesClint Edmonson
 
Lean software development tips and tricks - Agile Tour Dublin 2014
Lean software development tips and tricks - Agile Tour Dublin 2014Lean software development tips and tricks - Agile Tour Dublin 2014
Lean software development tips and tricks - Agile Tour Dublin 2014Augusto Evangelisti
 
Defining Test Competence
Defining Test CompetenceDefining Test Competence
Defining Test CompetenceJohan Hoberg
 
Improve the Development Process with DevOps Practices by Fedorov Vadim
Improve the Development Process with DevOps Practices by Fedorov VadimImprove the Development Process with DevOps Practices by Fedorov Vadim
Improve the Development Process with DevOps Practices by Fedorov VadimSoftServe
 
The Power of BDD
The Power of BDDThe Power of BDD
The Power of BDDNancy Cai
 
Usa prácticas de integración continua y sobrevive para luchar otro día.
 Usa prácticas de integración continua y sobrevive para luchar otro día. Usa prácticas de integración continua y sobrevive para luchar otro día.
Usa prácticas de integración continua y sobrevive para luchar otro día.Software Guru
 
Driving Quality. Front-to-Back Test-Driven Development
Driving Quality. Front-to-Back Test-Driven DevelopmentDriving Quality. Front-to-Back Test-Driven Development
Driving Quality. Front-to-Back Test-Driven DevelopmentAleh Matus
 
Risk management in software engineering
Risk management in software engineeringRisk management in software engineering
Risk management in software engineeringFARZANARIAZBSCompute
 
Transitioning To Agile Webinar Presentation
Transitioning To Agile Webinar PresentationTransitioning To Agile Webinar Presentation
Transitioning To Agile Webinar PresentationThoughtWorks
 
Frug'Agile 2021: Agile as doctrine (and that's a good thing)
Frug'Agile 2021: Agile as doctrine (and that's a good thing)Frug'Agile 2021: Agile as doctrine (and that's a good thing)
Frug'Agile 2021: Agile as doctrine (and that's a good thing)Jason Yip
 
Agile software development
Agile software developmentAgile software development
Agile software developmentRajesh Piryani
 
A Rapid Introduction to Rapid Software Testing
A Rapid Introduction to Rapid Software TestingA Rapid Introduction to Rapid Software Testing
A Rapid Introduction to Rapid Software TestingTechWell
 
Erkki Poyhonen - Software Testing - A Users Guide
Erkki Poyhonen - Software Testing - A Users GuideErkki Poyhonen - Software Testing - A Users Guide
Erkki Poyhonen - Software Testing - A Users GuideTEST Huddle
 
Lean software development and scrum model
Lean software development and scrum modelLean software development and scrum model
Lean software development and scrum modelNoreen Aamir
 
Lean Software Development
Lean Software DevelopmentLean Software Development
Lean Software DevelopmentAstrails
 
ANI | Agile Mindset Day @Gurugram | Agile Planning: Effective Practices and C...
ANI | Agile Mindset Day @Gurugram | Agile Planning: Effective Practices and C...ANI | Agile Mindset Day @Gurugram | Agile Planning: Effective Practices and C...
ANI | Agile Mindset Day @Gurugram | Agile Planning: Effective Practices and C...AgileNetwork
 

La actualidad más candente (20)

Agile is as Agile Does
Agile is as Agile DoesAgile is as Agile Does
Agile is as Agile Does
 
Lean software development tips and tricks - Agile Tour Dublin 2014
Lean software development tips and tricks - Agile Tour Dublin 2014Lean software development tips and tricks - Agile Tour Dublin 2014
Lean software development tips and tricks - Agile Tour Dublin 2014
 
Defining Test Competence
Defining Test CompetenceDefining Test Competence
Defining Test Competence
 
What is agile
What is agileWhat is agile
What is agile
 
Improve the Development Process with DevOps Practices by Fedorov Vadim
Improve the Development Process with DevOps Practices by Fedorov VadimImprove the Development Process with DevOps Practices by Fedorov Vadim
Improve the Development Process with DevOps Practices by Fedorov Vadim
 
The Power of BDD
The Power of BDDThe Power of BDD
The Power of BDD
 
Usa prácticas de integración continua y sobrevive para luchar otro día.
 Usa prácticas de integración continua y sobrevive para luchar otro día. Usa prácticas de integración continua y sobrevive para luchar otro día.
Usa prácticas de integración continua y sobrevive para luchar otro día.
 
Driving Quality. Front-to-Back Test-Driven Development
Driving Quality. Front-to-Back Test-Driven DevelopmentDriving Quality. Front-to-Back Test-Driven Development
Driving Quality. Front-to-Back Test-Driven Development
 
Risk management in software engineering
Risk management in software engineeringRisk management in software engineering
Risk management in software engineering
 
Transitioning To Agile Webinar Presentation
Transitioning To Agile Webinar PresentationTransitioning To Agile Webinar Presentation
Transitioning To Agile Webinar Presentation
 
Lean UX
Lean UXLean UX
Lean UX
 
Frug'Agile 2021: Agile as doctrine (and that's a good thing)
Frug'Agile 2021: Agile as doctrine (and that's a good thing)Frug'Agile 2021: Agile as doctrine (and that's a good thing)
Frug'Agile 2021: Agile as doctrine (and that's a good thing)
 
Agile software development
Agile software developmentAgile software development
Agile software development
 
A Rapid Introduction to Rapid Software Testing
A Rapid Introduction to Rapid Software TestingA Rapid Introduction to Rapid Software Testing
A Rapid Introduction to Rapid Software Testing
 
QI, not QA
QI, not QAQI, not QA
QI, not QA
 
Erkki Poyhonen - Software Testing - A Users Guide
Erkki Poyhonen - Software Testing - A Users GuideErkki Poyhonen - Software Testing - A Users Guide
Erkki Poyhonen - Software Testing - A Users Guide
 
Lean software development and scrum model
Lean software development and scrum modelLean software development and scrum model
Lean software development and scrum model
 
Lean Software Development
Lean Software DevelopmentLean Software Development
Lean Software Development
 
ANI | Agile Mindset Day @Gurugram | Agile Planning: Effective Practices and C...
ANI | Agile Mindset Day @Gurugram | Agile Planning: Effective Practices and C...ANI | Agile Mindset Day @Gurugram | Agile Planning: Effective Practices and C...
ANI | Agile Mindset Day @Gurugram | Agile Planning: Effective Practices and C...
 
Agile
AgileAgile
Agile
 

Similar a Agile Technical Leadership

Tester’s considerations when moving towards successful CI/CD
Tester’s considerations when moving towards successful CI/CDTester’s considerations when moving towards successful CI/CD
Tester’s considerations when moving towards successful CI/CDDerk-Jan de Grood
 
Decision making in software project management
Decision making in software project managementDecision making in software project management
Decision making in software project managementPriyadarshini Krishnaswamy
 
Agile Development unleashed
Agile Development unleashedAgile Development unleashed
Agile Development unleashedlivgeni
 
When Management Asks You: “Do You Accept Agile as Your Lord and Savior?"
When Management Asks You: “Do You Accept Agile as Your Lord and Savior?"When Management Asks You: “Do You Accept Agile as Your Lord and Savior?"
When Management Asks You: “Do You Accept Agile as Your Lord and Savior?"admford
 
Building the A - Team
Building the A - TeamBuilding the A - Team
Building the A - TeamLucas Bruce
 
Session 1 - The Agile vs Non agile divide.pptx
Session 1 - The Agile vs Non agile divide.pptxSession 1 - The Agile vs Non agile divide.pptx
Session 1 - The Agile vs Non agile divide.pptxWatchDogs6
 
Agile Software Development
Agile Software DevelopmentAgile Software Development
Agile Software DevelopmentAhmet Bulut
 
Why Isn't Clean Coding Working For My Team
Why Isn't Clean Coding Working For My TeamWhy Isn't Clean Coding Working For My Team
Why Isn't Clean Coding Working For My TeamRob Curry
 
Best practices for agile design
Best practices for agile designBest practices for agile design
Best practices for agile designIgor Moochnick
 
Cross-Functional Code Reviews - As presented at O'Reilly OSCON 2019
Cross-Functional Code Reviews - As presented at  O'Reilly OSCON 2019Cross-Functional Code Reviews - As presented at  O'Reilly OSCON 2019
Cross-Functional Code Reviews - As presented at O'Reilly OSCON 2019Margaret Fero
 
When Management Asks You: “Do You Accept Agile as Your Lord and Savior?” - Ci...
When Management Asks You: “Do You Accept Agile as Your Lord and Savior?” - Ci...When Management Asks You: “Do You Accept Agile as Your Lord and Savior?” - Ci...
When Management Asks You: “Do You Accept Agile as Your Lord and Savior?” - Ci...admford
 
Assessing Your Agility: Introducing the Comparative Agility Assessment
Assessing Your Agility: Introducing the Comparative Agility AssessmentAssessing Your Agility: Introducing the Comparative Agility Assessment
Assessing Your Agility: Introducing the Comparative Agility AssessmentMike Cohn
 
Agile software development
Agile software developmentAgile software development
Agile software developmentpradeeppatelpmp
 
Why Should I Have More Than 1 Technique for Retrospectives?
Why Should I Have More Than 1 Technique for Retrospectives?Why Should I Have More Than 1 Technique for Retrospectives?
Why Should I Have More Than 1 Technique for Retrospectives?Premios Group
 
Markus Clermont - Surviving in an Agile Environment - Google - SoftTest Ireland
Markus Clermont - Surviving in an Agile Environment - Google - SoftTest IrelandMarkus Clermont - Surviving in an Agile Environment - Google - SoftTest Ireland
Markus Clermont - Surviving in an Agile Environment - Google - SoftTest IrelandDavid O'Dowd
 
"Scrum master or Agile Master" - by Saikat Das @ Scaling Agile Institute
"Scrum master or Agile Master" - by Saikat Das @ Scaling Agile Institute"Scrum master or Agile Master" - by Saikat Das @ Scaling Agile Institute
"Scrum master or Agile Master" - by Saikat Das @ Scaling Agile InstituteInnovation Roots
 
Lean change method toronto agile meetup
Lean change method toronto agile meetupLean change method toronto agile meetup
Lean change method toronto agile meetupagilebydesign
 

Similar a Agile Technical Leadership (20)

Tester’s considerations when moving towards successful CI/CD
Tester’s considerations when moving towards successful CI/CDTester’s considerations when moving towards successful CI/CD
Tester’s considerations when moving towards successful CI/CD
 
Decision making in software project management
Decision making in software project managementDecision making in software project management
Decision making in software project management
 
Agile Development unleashed
Agile Development unleashedAgile Development unleashed
Agile Development unleashed
 
When Management Asks You: “Do You Accept Agile as Your Lord and Savior?"
When Management Asks You: “Do You Accept Agile as Your Lord and Savior?"When Management Asks You: “Do You Accept Agile as Your Lord and Savior?"
When Management Asks You: “Do You Accept Agile as Your Lord and Savior?"
 
Building the A - Team
Building the A - TeamBuilding the A - Team
Building the A - Team
 
The Divide.pptx
The Divide.pptxThe Divide.pptx
The Divide.pptx
 
Session 1 - The Agile vs Non agile divide.pptx
Session 1 - The Agile vs Non agile divide.pptxSession 1 - The Agile vs Non agile divide.pptx
Session 1 - The Agile vs Non agile divide.pptx
 
Agile Software Development
Agile Software DevelopmentAgile Software Development
Agile Software Development
 
Why Isn't Clean Coding Working For My Team
Why Isn't Clean Coding Working For My TeamWhy Isn't Clean Coding Working For My Team
Why Isn't Clean Coding Working For My Team
 
Best practices for agile design
Best practices for agile designBest practices for agile design
Best practices for agile design
 
Cross-Functional Code Reviews - As presented at O'Reilly OSCON 2019
Cross-Functional Code Reviews - As presented at  O'Reilly OSCON 2019Cross-Functional Code Reviews - As presented at  O'Reilly OSCON 2019
Cross-Functional Code Reviews - As presented at O'Reilly OSCON 2019
 
When Management Asks You: “Do You Accept Agile as Your Lord and Savior?” - Ci...
When Management Asks You: “Do You Accept Agile as Your Lord and Savior?” - Ci...When Management Asks You: “Do You Accept Agile as Your Lord and Savior?” - Ci...
When Management Asks You: “Do You Accept Agile as Your Lord and Savior?” - Ci...
 
Assessing Your Agility: Introducing the Comparative Agility Assessment
Assessing Your Agility: Introducing the Comparative Agility AssessmentAssessing Your Agility: Introducing the Comparative Agility Assessment
Assessing Your Agility: Introducing the Comparative Agility Assessment
 
Agile software development
Agile software developmentAgile software development
Agile software development
 
Why Should I Have More Than 1 Technique for Retrospectives?
Why Should I Have More Than 1 Technique for Retrospectives?Why Should I Have More Than 1 Technique for Retrospectives?
Why Should I Have More Than 1 Technique for Retrospectives?
 
Markus Clermont - Surviving in an Agile Environment - Google - SoftTest Ireland
Markus Clermont - Surviving in an Agile Environment - Google - SoftTest IrelandMarkus Clermont - Surviving in an Agile Environment - Google - SoftTest Ireland
Markus Clermont - Surviving in an Agile Environment - Google - SoftTest Ireland
 
"Scrum master or Agile Master" - by Saikat Das @ Scaling Agile Institute
"Scrum master or Agile Master" - by Saikat Das @ Scaling Agile Institute"Scrum master or Agile Master" - by Saikat Das @ Scaling Agile Institute
"Scrum master or Agile Master" - by Saikat Das @ Scaling Agile Institute
 
Scrum master & agile master
Scrum master & agile masterScrum master & agile master
Scrum master & agile master
 
Lean change method toronto agile meetup
Lean change method toronto agile meetupLean change method toronto agile meetup
Lean change method toronto agile meetup
 
UXBC #26: Lean UX
UXBC #26: Lean UXUXBC #26: Lean UX
UXBC #26: Lean UX
 

Más de Alexandru Bolboaca (20)

Refactor legacy code through pure functions
Refactor legacy code through pure functionsRefactor legacy code through pure functions
Refactor legacy code through pure functions
 
Design Without Types
Design Without TypesDesign Without Types
Design Without Types
 
Thinking in Functions
Thinking in FunctionsThinking in Functions
Thinking in Functions
 
Raising the Bar
Raising the BarRaising the Bar
Raising the Bar
 
The Journey to Master Code Design
The Journey to Master Code DesignThe Journey to Master Code Design
The Journey to Master Code Design
 
What is good software design? And why it matters?
What is good software design? And why it matters?What is good software design? And why it matters?
What is good software design? And why it matters?
 
Functional programming in C++
Functional programming in C++Functional programming in C++
Functional programming in C++
 
TDD As If You Meant It
TDD As If You Meant ItTDD As If You Meant It
TDD As If You Meant It
 
Usable Software Design
Usable Software DesignUsable Software Design
Usable Software Design
 
Hidden loops
Hidden loopsHidden loops
Hidden loops
 
Removing structural duplication
Removing structural duplicationRemoving structural duplication
Removing structural duplication
 
Continuous delivery
Continuous deliveryContinuous delivery
Continuous delivery
 
Why You Should Start Using Docker
Why You Should Start Using DockerWhy You Should Start Using Docker
Why You Should Start Using Docker
 
Pyramid of-developer-skills
Pyramid of-developer-skillsPyramid of-developer-skills
Pyramid of-developer-skills
 
Applied craftsmanship
Applied craftsmanshipApplied craftsmanship
Applied craftsmanship
 
Pyramid of-developer-skills
Pyramid of-developer-skillsPyramid of-developer-skills
Pyramid of-developer-skills
 
Stay focused
Stay focusedStay focused
Stay focused
 
Kanban intro
Kanban introKanban intro
Kanban intro
 
Unit testing-patterns
Unit testing-patternsUnit testing-patterns
Unit testing-patterns
 
Incremental design, simply explained
Incremental design, simply explainedIncremental design, simply explained
Incremental design, simply explained
 

Último

CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️anilsa9823
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...ICS
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsAndolasoft Inc
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Steffen Staab
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfkalichargn70th171
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxComplianceQuest1
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️Delhi Call girls
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Modelsaagamshah0812
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdfWave PLM
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerThousandEyes
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...OnePlan Solutions
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVshikhaohhpro
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AIABDERRAOUF MEHENNI
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...panagenda
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...Health
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...harshavardhanraghave
 

Último (20)

CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.js
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS LiveVip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 

Agile Technical Leadership

  • 1. Agile Technical Leadership Alex Bolboacă,  @alexboly,  alex.bolboaca@mozaicworks.com October 2017
  • 2. The Problem One Solution: Technical Leadership Some Context Let’s Explore Together Closing
  • 4. Tell me if this sounds familiar Someone made a decision 5 years ago that is now very costly to maintain and very costly to change Eg. caching
  • 5. Tell me if this sounds familiar A set of incremental decisions has led to a difficult context Eg. customize the product for each customer, end up with hundreds of different versions
  • 6. Tell me if this sounds familiar More teams work on a product, each made their own architectural decisions and now code is inconsistent Eg. 15 different interprocess communication methods
  • 7. What do these have in common?
  • 8. Complex adaptive systems! … dynamic network of many agents (which may represent cells, species, individuals, firms, nations) acting in parallel, constantly acting and reacting to what the other agents are doing. John H. Holland
  • 9. Interesting because … The control of a CAS tends to be highly dispersed and decentralized. If there is to be any coherent behavior in the system, it has to arise from competition and cooperation among the agents themselves. The overall behavior of the system is the result of a huge number of decisions made every moment by many individual agents.
  • 10. So
  • 13. Agile Technical Leadership The responsibility of setting constraints in order to make the development more effective on mid/long term The responsibility of making strategic technical decisions
  • 14. Can there be technical leadership in agile? Not only it can, there always is. We want more. We want effective technical leadership.
  • 15. Who should do technical leadership? • Technical leads? • Architects? • CTOs? • Everybody? • Nobody?
  • 16. Main thesis Technical leadership is a core competency that will be filled formally or informally in any development team. To ensure effective development, we need to understand better how technical leadership works in agile teams.
  • 18. All our practices are constraints Code review - someone else needs to give feedback on the code you wrote Pair programming - work with someone else on complex tasks TDD - write one failing test, write the minimum code to make it pass, refactor Continuous Integration - keep everyone’s changes integrated as quickly and as often as possible Daily meeting - synchronize daily with your team mates
  • 19. Crafters movement As a software crafter, I choose to impose constraints on myself because I believe they are valuable Following constraints = discipline
  • 20. Side note “Scrum assumes craftsmanship”, Ken Schwaber, OpenAgile Romania 2009
  • 21. Strategic vs. Tactic decisions Strategic decisions are decisions you need to make but are difficult to revisit later Eg. choice of programming language, architecture style, deployment etc. Tactical decisions are decisions you need to make but are easy to revisit later Eg. how we implement an algorithm
  • 22. Few more ideas “Cross functional” means teams have all the necessary competencies. This includes the competency of setting constraints and making strategic technical decisions Technical leadership is formal or informal. It doesn’t matter as long as it’s effective.
  • 24. Group exercise: Constraints As a group, discuss and write down a list of constraints that you use in your teams and the reasoning behind using them. Hint: imagine you had no constraints at all, and compare with the current way of working
  • 25. Example In Mozaic Works we use: • checklists because they help us maintain a high level of quality even when under pressure • unit testing because it validates faster the correctness of the product • design elements because it allows people who are learning design to create consistent and correct code faster • BDD Specs because they help clarify requirements before starting • domain modeling because it helps minimise database migrations • continuous deployment because it helps reduce deployment risks
  • 26. Group exercise: Practices of technical leadership As a group, imagine you are the new technical lead for your product. Imagine you can change anything. What would you do? Can you extract a list of practices?
  • 27. Example In Mozaic Works, I have: • defined a clear technical vision: only full stack developers, responsible from analysis to deployment, responsible for the quality of their work • defined a testing strategy: what we test, with what types of tests etc. • defined coding guidelines. Key ideas: focus on simplicity & readability, write as little code as possible • defined the configuration management policy: when to push, when to branch, when to merge, how branches relate to production / staging / testing etc. • helped developers adopt the practices we need: training, deliberate practice with daily katas & coding dojos etc. • kept in touch with the developers needs through one-to-one meetings and writing code together
  • 28. Group exercise: make a strategic decision You are in charge with deciding what web framework to use for a brand new project in your company. What criteria do you use to make your decision?
  • 29. Answer When I picked groovy on grails for our product, I looked at three different frameworks, built prototypes and compared: • how easy it is to write a simple web application • how easy it is to write tests • the community • the reported bug count
  • 30. Reflect Was it difficult to make this decision? Why? How confident are you that you made the right decision?
  • 31. Group exercise: Strategic decisions As a group: • think about and write down a list of strategic decisions that were made for your product • pick one decision you are unhappy with • what would you decide instead? Reminder: strategic decisions are decisions difficult to change once they are made. They typically affect more people and have effect over a longer period of time.
  • 32. Example In Mozaic Works, I have decided to: • use groovy on grails for all web applications • use reactjs for complex front end pages • use wordpress for all our websites BUT: • I am looking at more lightweight alternatives to grails (memory consumption is high and costly on cloud). • I put too much emphasis on learning and not enough on speedy delivery.
  • 33. Group exercise: mindset required for strategic decision making You are now part of a technical leadership group for your product. You need to make decisions related to: • architecture that can affect next 2 years of development • practices to use in teams to help improve effectiveness • tools to adopt for improving code quality As a group, think and write down: • what is challenging when making strategic decisions? (hint: uncertainty, incomplete information) • what mindset should somebody have to make effective strategic decisions? (hint: should be able to cope with uncertainty)
  • 34. Learning strategic decision making Bad news: not native Good news: can be learned through practice Where to start: • decision models • find three solutions for every problem • understand advantages and disadvantages for each solution • CIA checklist • identifying criteria before evaluating solutions • looking at a problem from different angles • thinking at different levels of abstraction • be comfortable with incomplete information and uncertainty
  • 36. What did you learn? Individually, write down one thing you learned today. Can you apply it in your team?
  • 37. Learn more Mozaic Works blog https://blog.mozaicworks.com
  • 38. Thank you! I’ve been Alex Bolboacă, @alexboly, alex.bolboaca@mozaicworks.com programmer, trainer, mentor, writer at Mozaic Works Think. Design. Work Smart. https://mozaicworks.com
  • 39. Join me for Berlin workshops https://mozaicworks.com/calendar/#Berlin