SlideShare a Scribd company logo
On working in Particular
A dispersed company.
Mauro Servienti
Solution Architect @ Particular
Software
mauro.servienti@particular.net
@mauroservienti
//github.com/mauroservienti
Microsoft MVP Visual C#
Agenda
•Once upon a time…
•Dispersed != distributed
•No-managers != flat
•Communication
•Daily tasks
•Trust is the key
Conway's law
organizations which design
systems ...
are constrained to produce
designs which are copies of the
communication structures of
these organizations
What if…
Organizations which designs
systems need to be organized as
the systems they design
Once upon a time…
…in the west (cit.)
Particular Software
• In 2010 Udi Dahan decided to create Particular;
• Should he have created a traditional company?
• Or given the systems we design, a distributed one
would have fit the bill?
• Distributed means:
• Access to the best people from all over the world;
• No relocation costs and troubles;
• But challenges as well…
What we do…
• build NServiceBus and the Particular Platform
• A reliable messaging framework
• A set of tools to develop, debug and manage a distributed
environment
• have customers all around the globe
• We provide remote services
• provide enterprise level support
• Up to 5 hours response time SLA
• Given customers distribution and support constraints
having a distributed team is a clear advantage
Dispersed != distributed
Distributed is not what we are.
Distributed
• People co-located in the same space -> teams
• Teams are distributed across:
• The country
• The continent
• The world
• Usually a team works on the same thing
• Cross-team communication exists
• Intra-team communication is a key aspect
Dispersed
• We are all remote: there are no co-located teams
• Some of us, such as me, are alone in their country
• Some of us live in the same city
• Still, work from their home offices alone
• We are spread across ~17 time zones
• From California to Australia
• There are people that never meet over work hours
• We speak a few different languages
• We have very different cultural backgrounds
• Diversity is a key aspect
Challenges
• You are alone at home
• People you need to work with:
• Are in a different time-zone
• Speak a different language
• Have a different cultural background
• Your manager may be in a different time-zone
• Respecting yourself can be an issue
• Work hours
• Device notifications
• …etc…
No-managers != flat
Anarchy is not the best form of democracy.
Management
• In a traditional org chart you have one manager;
• You have one manager because you have one role;
• My day is generally composed of:
• Pre-sales calls
• Solution Architecture consultancy (remote and on-site)
• Coding
• Blog posting
• Docs writing
• Support
• …and more…
• Is it sustainable that one manager can manage me?
Management (take 2)
• Managers are interested in results
• Results may be influenced by luck or bad luck:
• Causing a manager to be sad when shit happens :-)
• Since we are alone in our home offices:
• We need to trust people that they’ll do their best
• We need to remove luck/bad luck from the judgement
• Managing a dispersed group of people is a mess…
Reboot
• We removed all the managers introducing mentors
• We removed all the roles introducing disciplines
Disciplines
• I can put several different hats
• Engineer -> solution discipline
• Solution Architect -> domain discipline
• Support -> troubleshooting discipline
• Etc…
• For each discipline I can have (or can be) a mentor
Mentorship
• Mentors are interested in the process
• A mentor asks questions doesn’t give answers
• Is a friend not a consultant
• drives you in the right direction doesn’t judge results
• Anyone can be a mentor if they have strong skills in
a discipline
• If the process is done right when results are
influenced by bad luck it is not a problem
Do we have a flat org?
no
• From the Org Chart POV: all at the same level
• Mentors are side-by-side, not someone to report to
• We are setting up a feedback process:
• Will kick-off next week
• We are setting up a consultant figure
• more on this later
Communication
Alone but at the same time all together
Smooth communication
• Reduce e-mail usage at the minimum:
• A full inbox creates pressure
• A mail thread is hidden in the participants inboxes
• If an inbox/account is deleted history is lost
• We want async/hassles free communication:
• History needs to be preserved
• A new member needs to easily catch up
• We want scoped and open groups
• Not necessarily private ones
• We need sync communication as well:
• An async meeting does not work very well
Async
Slack
Slack
• Powerful chat system
• Public channels
• Direct messages
• Private channels
• Posts with full markdown support
• Partial markdown support in chats
• Integrates with everything (mainly via WebHooks)
• All Google things
• GitHub and many more
• Apps for all the devices
• Supports custom integrations and bots
Sync
Zoom.us
Zoom.us
• All internal meetings are handled via Zoom
• Most customers calls are handled via Zoom
• Unless the customer prefers its own tools
• It scales to several users with no issues
• Screen sharing and white board features
• We record nearly every call:
• and share via Goggle Drive through Slack
• Time-box and strict agenda!
Daily tasks
From entropy to order in the universe, tools to rule them all
GitHub
GitHub
• If it’s not in GitHub it doesn’t exist
• Opening issues is cheap
• Issues
• transient tasks
• used to track something we are working on
• They have at least 3 states
• Artifacts (Markdown files)
• Persistent documents
• e.g. process descriptions, or definitions, etc..
• PRs (Issues) are used to change artifacts
What GitHub is not (yet) good at
• There is a one-to-one relationship issue / assignee
• Discussions on issues are a mess
• As an OSS project with private and public repos:
• Backtracking works not that well
• Managing public issues and private ones does not work
• Non-dev people get crazy pretty fast
• Train them, but the effort is very high
• Lack of overview with multiple repos
Waffle.io on top of GitHub
Disclosure: it is not the real one :-)
Scrum, Kanban, XP…oh my!
Let me recap…
We are dispersed
BUTWe need to work together as a team
What could a team look like?
• It’s a group of people
• We identified 4 as the magic number (in our context)
• 5 can be good as well + avoids impasse when voting
• A team is composed of Pigs (Scrum)
• A team can be joined by chickens (Scrum)
• Members are not time zone co-located
• European + Aussies
• Aussies + Americans
• Americans + Europeans
Teams work on…
• We identified 3 high level concepts
• Processes
• Platform Development
• Hiring
• Support
• Etc…
• Issues
• That belong to a process
• That aim to change a process
• Cross cutting concerns (not necessarily tied to a process)
• RabbitMQ know-how
• Productivity
• Presentation skills
• Etc…
But we don’t have teams
• A Squad is a team that supervises processes
• Lifecycle: tied to the process
• May open issues to handle process changes/updates
• Causing a task force to be created
• A Task force is a team that handles issues
• Lifecycle: is the same of the issue
• May report back to the squad if they identify friction
• May consult with a guild on cross cutting topics
• A Guild is a team that discusses cross cutting concerns
• Lifecycle: long lasting
• May contact a squad to suggest process improvements
Task Forces
• Voluntary formed to handle an issue
• Zoom call to triage the issue (~15 minutes)
• Create a dedicated channel on Slack
• Public but joined only by task force members
• Drive the issue
• from backlog to ready
• from ready to done
• Ready does not mean that it will be done.
Assumptions
• There is the need to prioritize
• A different process/squad does that
• Definition of ready and definition of done
• Commitment
• Who opens the issue is not committed
• Working on the readifyng does not imply commitment
• Does a task force play well with GitHub?
“pbot pig me”
By the way: we automate as much as we can
Trust is the key
To trust or…to command and conquer…this is the question.
We are dispersed
• Obviously “control” and “command and conquer”
have no way to provide any value
• We trust ourselves
• Unlimited Vacation
• Flexible hours
• Hardware policy
• Conference attendance
Thank you!
If you have questions join us at the booth

More Related Content

PDF
Agile forthelongrun lesfurets
PDF
Social Human Architecture for Beginners
PPTX
Core Agility Workout - AgileIndy 2015
PPTX
Leading an Open Source Community
PPT
Phase 3: Better ideas (Presentation at SalesForce 1-28-2015)
PPTX
PDF
Building and Growing an Agile Team
Agile forthelongrun lesfurets
Social Human Architecture for Beginners
Core Agility Workout - AgileIndy 2015
Leading an Open Source Community
Phase 3: Better ideas (Presentation at SalesForce 1-28-2015)
Building and Growing an Agile Team

What's hot (18)

PPTX
Visualised Flow - Facilitator Guide
PPTX
Overcoming More Impediments to Agile Transformation - Distributed Teams, Scal...
PDF
Lean Mean & Agile 2009
PPTX
Overcoming Impediments to Agile Transformation
PDF
Why it's better to be T shaped...
PDF
Retrospectives outside it
PPTX
Working with remote teams
PDF
devops - what's missing? what's next?
PDF
Transforming Chaos To Clarity, Ron Lichty
PDF
Group Interaction Patterns: The Keys for Highly Productive Teams
PPTX
Seo rescue shaf cangil practical scrum
PDF
Crash course- managing software people and teams
PDF
Climbing out of a Crisis Loop at the BBC
PPT
Ict educators win-win-win w agile, ron lichty, 1.4.13
PPT
Transforming chaos to clarity - acm 6.15
PDF
Product Owners - How to get your development team to love you (ProductTankSV,...
PDF
How to get your agile development team to love you (product camp, 3.14)
Visualised Flow - Facilitator Guide
Overcoming More Impediments to Agile Transformation - Distributed Teams, Scal...
Lean Mean & Agile 2009
Overcoming Impediments to Agile Transformation
Why it's better to be T shaped...
Retrospectives outside it
Working with remote teams
devops - what's missing? what's next?
Transforming Chaos To Clarity, Ron Lichty
Group Interaction Patterns: The Keys for Highly Productive Teams
Seo rescue shaf cangil practical scrum
Crash course- managing software people and teams
Climbing out of a Crisis Loop at the BBC
Ict educators win-win-win w agile, ron lichty, 1.4.13
Transforming chaos to clarity - acm 6.15
Product Owners - How to get your development team to love you (ProductTankSV,...
How to get your agile development team to love you (product camp, 3.14)
Ad

Similar to How we daily manage and work in a dispersed company: Particular Software (20)

PPTX
Agile in the Real World: Digital Moderation (Talk for IIBA/VUW)
PPTX
Distributed teams
PDF
Distributed_teams
PDF
Agile Anywhere in the 21st Century: Setting up distributed teams to be effective
PPTX
Part Time Agile
PPTX
Lastconf2017 Synchronous communication is overrated!
PPT
Introduction_to_Scrum_Agile_Values
PDF
Scrum and Compliance for EclipseCon 2013
PDF
DevOps: Automate all the things
PDF
Home- (office) ?
PDF
Happier Teams Through Tools
PDF
Git Makes Me Angry Inside
PDF
DevOps Picc12 Management Talk
PDF
SRE Organizational Framework
PDF
Modern approaches to product development: the challenge of distributed teams
PDF
TechDay: Approcci moderni allo sviluppo software: la sfida dei team distribui...
PDF
To successfully deliver your IT project: build your team, build your Agile it...
PPTX
Achieving the Full Potential of Your Distributed Agile Team (AgileAus 2013)
PDF
Surviving agile remote teams - why remote work is a SKILL
PDF
Remote Working at Spry Fox
Agile in the Real World: Digital Moderation (Talk for IIBA/VUW)
Distributed teams
Distributed_teams
Agile Anywhere in the 21st Century: Setting up distributed teams to be effective
Part Time Agile
Lastconf2017 Synchronous communication is overrated!
Introduction_to_Scrum_Agile_Values
Scrum and Compliance for EclipseCon 2013
DevOps: Automate all the things
Home- (office) ?
Happier Teams Through Tools
Git Makes Me Angry Inside
DevOps Picc12 Management Talk
SRE Organizational Framework
Modern approaches to product development: the challenge of distributed teams
TechDay: Approcci moderni allo sviluppo software: la sfida dei team distribui...
To successfully deliver your IT project: build your team, build your Agile it...
Achieving the Full Potential of Your Distributed Agile Team (AgileAus 2013)
Surviving agile remote teams - why remote work is a SKILL
Remote Working at Spry Fox
Ad

More from Mauro Servienti (20)

PPTX
Welcome to the (state) machine @ ExploreDDD 2019
PPTX
Designing a ui for microservices @ .NET Day Switzerland 2019
PPTX
Welcome to the (state) machine @ Xe One Day Enterprise Applications
PPTX
All our aggregates are wrong @ NDC Copenhagen 2019
PPTX
Be like water, my friend @ Agile for Innovation 2019
PPTX
Microservices architecture is it the right choice to design long-living syste...
PPTX
Titles, abstracts, and bio matter... oh my! @ Global Diversity CFP Day 2019
PPTX
Living organizations, particular software @ do IT Better Parma
PPTX
Welcome to the (state) machine @ Crafted Software
PPTX
PO is dead, long live the PO - Italian Agile Day 2018
PPTX
Design a UI for your Microservices @ Do IT Better
PPTX
Microservices and pineapple on pizza what do they have in common - dos and ...
PPTX
All our aggregates are wrong (ExploreDDD 2018)
PPTX
Designing a ui for microservices
PPTX
Po is dead, long live the po
PPTX
Shipping code is not the problem, deciding what to ship it is!
PPTX
GraphQL - Where are you from? Where are you going?
PPTX
Dall'idea al deploy un lungo viaggio che passa per git flow e semver
PPTX
Progettare una UI per i Microservices
PPTX
The road to a Service Oriented Architecture is paved with messages
Welcome to the (state) machine @ ExploreDDD 2019
Designing a ui for microservices @ .NET Day Switzerland 2019
Welcome to the (state) machine @ Xe One Day Enterprise Applications
All our aggregates are wrong @ NDC Copenhagen 2019
Be like water, my friend @ Agile for Innovation 2019
Microservices architecture is it the right choice to design long-living syste...
Titles, abstracts, and bio matter... oh my! @ Global Diversity CFP Day 2019
Living organizations, particular software @ do IT Better Parma
Welcome to the (state) machine @ Crafted Software
PO is dead, long live the PO - Italian Agile Day 2018
Design a UI for your Microservices @ Do IT Better
Microservices and pineapple on pizza what do they have in common - dos and ...
All our aggregates are wrong (ExploreDDD 2018)
Designing a ui for microservices
Po is dead, long live the po
Shipping code is not the problem, deciding what to ship it is!
GraphQL - Where are you from? Where are you going?
Dall'idea al deploy un lungo viaggio che passa per git flow e semver
Progettare una UI per i Microservices
The road to a Service Oriented Architecture is paved with messages

Recently uploaded (20)

PPTX
SM_Behavior Based Safety (BBS)_Unit V.pptx
PPT
Risk Management What is Risk Management Risk Management Strategies Software R...
PPTX
Spotlight on road Injury in the Philippines
PDF
How to Present a Project Proposal to Stakeholders for Approval?
PDF
The Psychology of Employee Appreciation by Meenakshi Khakat
PPT
risk management (contd.) Risk Identification Risk Components and Drivers Risk...
PPT
The Management Spectrum 4 Ps in Project Management
PDF
TED Talk on how to make TED Talk slides.pdf
PPTX
Recruitment and bshiwjwnbshshshshhshvej.ppt
PDF
The Untold Story of Swami Vijay Kumar Durai: Building PRS International
PPTX
Management and Leadership across diverse culture
PDF
Geopolitics and the Dynamic Competition Framework
PDF
Personal-Professional-Development-in-Nursing-1.pdf
PPTX
Common Methods of Performance Appraisal.pptx
PPT
Introduction to Operations And Supply Management
PPTX
International trading agreements in world.pptx
PPTX
Ryan Daly Gallardo Prod Management PPT .pptx
PPTX
EMOTIONAL INTELLIGENCE IN LEADERSHIP.pptx
PPTX
Case Study on Japan: Development Model, Issues, and Prospects
PPTX
Human resources planning and job design ppt.
SM_Behavior Based Safety (BBS)_Unit V.pptx
Risk Management What is Risk Management Risk Management Strategies Software R...
Spotlight on road Injury in the Philippines
How to Present a Project Proposal to Stakeholders for Approval?
The Psychology of Employee Appreciation by Meenakshi Khakat
risk management (contd.) Risk Identification Risk Components and Drivers Risk...
The Management Spectrum 4 Ps in Project Management
TED Talk on how to make TED Talk slides.pdf
Recruitment and bshiwjwnbshshshshhshvej.ppt
The Untold Story of Swami Vijay Kumar Durai: Building PRS International
Management and Leadership across diverse culture
Geopolitics and the Dynamic Competition Framework
Personal-Professional-Development-in-Nursing-1.pdf
Common Methods of Performance Appraisal.pptx
Introduction to Operations And Supply Management
International trading agreements in world.pptx
Ryan Daly Gallardo Prod Management PPT .pptx
EMOTIONAL INTELLIGENCE IN LEADERSHIP.pptx
Case Study on Japan: Development Model, Issues, and Prospects
Human resources planning and job design ppt.

How we daily manage and work in a dispersed company: Particular Software

  • 1. On working in Particular A dispersed company.
  • 2. Mauro Servienti Solution Architect @ Particular Software mauro.servienti@particular.net @mauroservienti //github.com/mauroservienti Microsoft MVP Visual C#
  • 3. Agenda •Once upon a time… •Dispersed != distributed •No-managers != flat •Communication •Daily tasks •Trust is the key
  • 4. Conway's law organizations which design systems ... are constrained to produce designs which are copies of the communication structures of these organizations
  • 5. What if… Organizations which designs systems need to be organized as the systems they design
  • 6. Once upon a time… …in the west (cit.)
  • 7. Particular Software • In 2010 Udi Dahan decided to create Particular; • Should he have created a traditional company? • Or given the systems we design, a distributed one would have fit the bill? • Distributed means: • Access to the best people from all over the world; • No relocation costs and troubles; • But challenges as well…
  • 8. What we do… • build NServiceBus and the Particular Platform • A reliable messaging framework • A set of tools to develop, debug and manage a distributed environment • have customers all around the globe • We provide remote services • provide enterprise level support • Up to 5 hours response time SLA • Given customers distribution and support constraints having a distributed team is a clear advantage
  • 10. Distributed • People co-located in the same space -> teams • Teams are distributed across: • The country • The continent • The world • Usually a team works on the same thing • Cross-team communication exists • Intra-team communication is a key aspect
  • 11. Dispersed • We are all remote: there are no co-located teams • Some of us, such as me, are alone in their country • Some of us live in the same city • Still, work from their home offices alone • We are spread across ~17 time zones • From California to Australia • There are people that never meet over work hours • We speak a few different languages • We have very different cultural backgrounds • Diversity is a key aspect
  • 12. Challenges • You are alone at home • People you need to work with: • Are in a different time-zone • Speak a different language • Have a different cultural background • Your manager may be in a different time-zone • Respecting yourself can be an issue • Work hours • Device notifications • …etc…
  • 13. No-managers != flat Anarchy is not the best form of democracy.
  • 14. Management • In a traditional org chart you have one manager; • You have one manager because you have one role; • My day is generally composed of: • Pre-sales calls • Solution Architecture consultancy (remote and on-site) • Coding • Blog posting • Docs writing • Support • …and more… • Is it sustainable that one manager can manage me?
  • 15. Management (take 2) • Managers are interested in results • Results may be influenced by luck or bad luck: • Causing a manager to be sad when shit happens :-) • Since we are alone in our home offices: • We need to trust people that they’ll do their best • We need to remove luck/bad luck from the judgement • Managing a dispersed group of people is a mess…
  • 16. Reboot • We removed all the managers introducing mentors • We removed all the roles introducing disciplines
  • 17. Disciplines • I can put several different hats • Engineer -> solution discipline • Solution Architect -> domain discipline • Support -> troubleshooting discipline • Etc… • For each discipline I can have (or can be) a mentor
  • 18. Mentorship • Mentors are interested in the process • A mentor asks questions doesn’t give answers • Is a friend not a consultant • drives you in the right direction doesn’t judge results • Anyone can be a mentor if they have strong skills in a discipline • If the process is done right when results are influenced by bad luck it is not a problem
  • 19. Do we have a flat org? no • From the Org Chart POV: all at the same level • Mentors are side-by-side, not someone to report to • We are setting up a feedback process: • Will kick-off next week • We are setting up a consultant figure • more on this later
  • 20. Communication Alone but at the same time all together
  • 21. Smooth communication • Reduce e-mail usage at the minimum: • A full inbox creates pressure • A mail thread is hidden in the participants inboxes • If an inbox/account is deleted history is lost • We want async/hassles free communication: • History needs to be preserved • A new member needs to easily catch up • We want scoped and open groups • Not necessarily private ones • We need sync communication as well: • An async meeting does not work very well
  • 22. Async
  • 23. Slack
  • 24. Slack • Powerful chat system • Public channels • Direct messages • Private channels • Posts with full markdown support • Partial markdown support in chats • Integrates with everything (mainly via WebHooks) • All Google things • GitHub and many more • Apps for all the devices • Supports custom integrations and bots
  • 25. Sync
  • 27. Zoom.us • All internal meetings are handled via Zoom • Most customers calls are handled via Zoom • Unless the customer prefers its own tools • It scales to several users with no issues • Screen sharing and white board features • We record nearly every call: • and share via Goggle Drive through Slack • Time-box and strict agenda!
  • 28. Daily tasks From entropy to order in the universe, tools to rule them all
  • 30. GitHub • If it’s not in GitHub it doesn’t exist • Opening issues is cheap • Issues • transient tasks • used to track something we are working on • They have at least 3 states • Artifacts (Markdown files) • Persistent documents • e.g. process descriptions, or definitions, etc.. • PRs (Issues) are used to change artifacts
  • 31. What GitHub is not (yet) good at • There is a one-to-one relationship issue / assignee • Discussions on issues are a mess • As an OSS project with private and public repos: • Backtracking works not that well • Managing public issues and private ones does not work • Non-dev people get crazy pretty fast • Train them, but the effort is very high • Lack of overview with multiple repos
  • 32. Waffle.io on top of GitHub Disclosure: it is not the real one :-)
  • 34. Let me recap… We are dispersed BUTWe need to work together as a team
  • 35. What could a team look like? • It’s a group of people • We identified 4 as the magic number (in our context) • 5 can be good as well + avoids impasse when voting • A team is composed of Pigs (Scrum) • A team can be joined by chickens (Scrum) • Members are not time zone co-located • European + Aussies • Aussies + Americans • Americans + Europeans
  • 36. Teams work on… • We identified 3 high level concepts • Processes • Platform Development • Hiring • Support • Etc… • Issues • That belong to a process • That aim to change a process • Cross cutting concerns (not necessarily tied to a process) • RabbitMQ know-how • Productivity • Presentation skills • Etc…
  • 37. But we don’t have teams • A Squad is a team that supervises processes • Lifecycle: tied to the process • May open issues to handle process changes/updates • Causing a task force to be created • A Task force is a team that handles issues • Lifecycle: is the same of the issue • May report back to the squad if they identify friction • May consult with a guild on cross cutting topics • A Guild is a team that discusses cross cutting concerns • Lifecycle: long lasting • May contact a squad to suggest process improvements
  • 38. Task Forces • Voluntary formed to handle an issue • Zoom call to triage the issue (~15 minutes) • Create a dedicated channel on Slack • Public but joined only by task force members • Drive the issue • from backlog to ready • from ready to done • Ready does not mean that it will be done.
  • 39. Assumptions • There is the need to prioritize • A different process/squad does that • Definition of ready and definition of done • Commitment • Who opens the issue is not committed • Working on the readifyng does not imply commitment • Does a task force play well with GitHub?
  • 40. “pbot pig me” By the way: we automate as much as we can
  • 41. Trust is the key To trust or…to command and conquer…this is the question.
  • 42. We are dispersed • Obviously “control” and “command and conquer” have no way to provide any value • We trust ourselves • Unlimited Vacation • Flexible hours • Hardware policy • Conference attendance
  • 43. Thank you! If you have questions join us at the booth