SlideShare una empresa de Scribd logo
1 de 30
Descargar para leer sin conexión
https://dev.to/rly
Who is Jilles?
www.jillesvangurp.com, and @jillesvangurpon *
Java (J)Ruby Python Javascript/node.js
Servers reluctant Devops guy Software Architecture
Universities of Utrecht (NL), Blekinge (SE), and Groningen (NL)
GX (NL),Nokia Research (FI), Nokia/Here (DE),Localstream (DE),
Inbot(DE).
Inbot app - available for Android & IOS
Trends/context
Freelance jobs & short term contracts are common
Job security is a bit of a myth
Internet tools mean it is easier than ever to work remote
Most programmers don't actually live in San Francisco; how to use them?
Building software requires a lot of different specialists
Robots are eating our jobs
The modern workplace
Cubicles, open spaces, …. really?!
Home office
Shared desks
Coffee shops
Couch surfing
Beach
Anywhere with internet access & suitable "work-context"
Industrial Revolution
Economies of scale through
- colocating resources
- minimizing transport
- scale by sharing resources
- minimize space used
- cheap, plentiful labor available locally
Is all this still relevant if all you really need is specialists with a laptop + internet?
Creative work doesn't happen in factories.
Are you a "resource"?
Renovating your house analogy
- Talk to an architect
- Hire a foreman
- Foreman gets brick layers, carpenters, electricians, painters, etc. to show up at the right time
- Typically self-employed
- You find a person that knows a few others and they work together to do the thing
Very pre-industrial revolution, trust & relationship based.
You don't get economies of scale by putting programmers in cubicles
You don't get any benefit from only hiring local talent in crowded market
It's a global village now, this is the post industrial revolution
How local are you really?
Do you talk to people on different floors of your office building?
Or down the street?
Outside your team?
How often?
And about work?
How many people do you interact with professionally on a day to day basis?
Rest of this presentation ...
Software Engineering is & "True-isms" about SE
Distributed Software Teams
First SE conferences organized by NATO in 1968 to solve the
"Software Crisis"
http://homepages.cs.ncl.ac.uk/brian.randell/NATO/NATOReports/
https://www.nasa.gov/50th/50th_magazine/scientists.html
Water-fall: apply engineering principles to big SE projects
Royce, Winston (1970), "Managing the Development of Large Software
Systems", Proceedings of IEEE WESCON, 26 (August): 1–9
Waterfall -> Spiral Development -> Rational Unified & 4+1 model
-> Extreme Programming -> Scrum -> Kanban -> ...
Sofware Engineering, a brief history
At the start of the Apollo program, the
onboard flight software needed to land on
the moon didn’t exist. Computer science
wasn’t in any college curriculum. NASA
turned to mathematician Margaret
Hamilton, of the Massachusetts
Institute of Technology, to pioneer and
direct the effort. With her colleagues, she
developed the building blocks for modern
“software engineering,” a term Hamilton
coined.
"Laws" of Software Engineering (1)
Conway's Law, "organizations which design systems ... are constrained to produce designs
which are copies of the communication structures of these organizations"
Parkinson’s Law (1), "work expands so as to fill the time available for its completion"
Parkinson's Law (2), "people in groups tend to give disproportionate weight to pointless
discussions."
Law of Demeter, principle of least knowledge. Each unit should have only limited
knowledge about other units: only units "closely" related to the current unit. Each unit should
only talk to its friends; don't talk to strangers. Only talk to your immediate friends.
"Laws" of Software Engineering (2)
Peter Principle, "managers rise to the level of their incompetence."
Brooke's Law, "adding manpower to a late software project makes it later"
Two Pizza Rule
(There are two hard things in computer science: cache invalidation, naming things, and
off-by-one errors)
Seniority: Listen to uncle Bob
I estimate that the world, today, has twenty-two million programmers[2]. One of of every 300 people is a programmer. In the US it’s
closer to 1%. But in 1974 the number of programmers worldwide was vastly smaller, and probably numbered less than 100,000[3].
That implies that in 40 years our ranks have increased by a factor of 220. That’s a growth rate of 14.5% per year, or a doubling
rate of five years.
If the ranks of programmers has doubled every five years, then it stands to reason that most programmers were hired within the last
five years, and so about half the programmers would be under 28. Half of those over 28 would be less than 33. Half of those over 33
would be less than 38, and so on. Less than 0.5% of programmers would be 60 or over. So most of us old programmers are still
around writing code. It’s just that there never were very many of us.
What does this imply for our industry?
Maybe it’s not as bad as Lord of the Flies, but the fact that juniors exponentially outnumbers seniors is concerning. As
long as that growth curve continues[4] there will not be enough teachers, role models, and leaders. It means that most software teams
will remain relatively unguided, unsupervised, and inexperienced. It means that most software organizations will have to endlessly
relearn the lessons they learned the five years before. It means that the industry as a whole will remain dominated by novices, and
exist in a state of perpetual immaturity.
http://blog.cleancoder.com/uncle-bob/2014/06/20/MyLawn.html
SE Reality Check
Engineering metaphor is a fallacy, there's more to it than blueprints & math
Big heavy processes tend to not work as advertised
Agile the good: adapting to changing reality; less upfront planning, building stuff
fast that is actually useful
Agile the bad: new bureaucracy (story points, retrospectives, velocity charts, ...),
dogmatic application of unscientific ideas, waterfall in disguise, technical debt, ..
Small teams are easier to manage, need less process (more Agile)
The point about small teams:
keep communication links down
Observation: Communication gets harder when you distribute ….
SE at scale: Big Software Projects/Products
Multiple MLOC, tens of thousands of developers,
reusing and depending on even more software, life
span of decades, R&D value measured in billions.
How do you 'engineer' such a thing?
Simple Answer: don't. It just 'happens' organically.
Software development happens in communities of
practitioners.
More Complex Answer: throw engineers at it,
thousands of them, and hope for the best but start
small and fail fast.
How to Engineer a 1 MLOC software system?
~constant: productivity of engineers is 10 LOC / day (controversial)
1 engineer, 100K days, or about 273 years, full time ;-)
10 engineers 10K days, about 27 years
100 engineers 1K days, about 2.7 years, starting to get doable
1 MLOC is comparatively small scale software
Mythical Man Month: planning doesn't quite work like that.
Distributed Teams ...
https://www.youtube.com/watch?v=m_MaJDK3VNE
Why?
You want to build X, you need people with skills
You know suitable people but they live in a different places
Why not work together & why move to one place?
It's easy to get started with people that you know, even when they are not local
Distributed teams - challenges
Practicalities: Timezones, cultural differences, language barriers, tools, processes
Formalities: who reports to who? who pays the bills? how do you hire/fire?
Conflicts: stress + communication challenged people = cat fight
Realities: people have different motives, goals, incentives, opinions
Same challenges as non distributed but magnified by the fact that communication is
harder: it's still software engineering!
What didn't work before, now doesn't work even better!
OSS development …. they can do it. How?
- Distributed by default
- Many small projects
- Some bigger projects
- Reuse & depend on each other
- Basis for 99% of most commercially shipping software and projects
- Primarily funded by for profit software companies - this is NOT charity
- Driven by people/companies deciding to do things that need doing from their
point of view.
- Work on a need to have basis.
The OSS community
Distributed network of professionals, companies, and other stakeholders.
Extremely well financed
Work together out of necessity
Collectively get more work done than any software company out there
Formula for distributed: Look at the stuff they are NOT doing.
So, it scales up. It also scales down ...
Working with thousands of people looks like this ...
The Amazon Formula
Write out new ideas
Incentivize team members for the long term: make them owners
Follow the “two pizza rule.”
Dedicate time to think about the future
Routinely “check in” on long-term goals
Work backwards
Jeff Bezos
http://99u.com/articles/7255/the-jeff-bezos-school-of-long-term-thinking
Stuff that doesn't work
(aka. corporate shit I don't miss in my life)
Standups and any process that requires them. This is where Scrum falls short. Forget about
doing retrospectives, estimation sessions, and other BS bingo that comes with scrum. IT
DOES NOT WORK. (Opinion: this is not specific to distributed teams, it just becomes even
more obvious)
Having long meetings over a phone with a large group. Just results in the wrong people
claiming all the talking time while the rest mute and try to get some work done. Twitter is 1
alt+tab away...
Trying to impose complicated processes, new ways of working, while at the same time you
are onboarding new team members.
Email, just don't.
Stuff that works (for us)
Weekly short status calls. Agree times that fit everyone, e.g. 11 am instead of 9 AM.
Everybody provides brief update. 20-30 minutes max.
Weekly planning meeting: discuss business, blockers + KANBAN: done, in progress, next.
Shared slides for each meeting on google docs: update before & during meeting.
1 on 1's are a great way to smooth out issues, avoid doing this in planning calls.
Work backwards from business needs. What is blocking the business? What is blocking the
technical solutions to the business blockers? How can we move forward?
Most of us are "elsewhere", this forces us to be distributed.
Go Asynchronous - avoid bottlenecks
Example bottlenecks: handovers, meetings, people availability, office hours, slow builds, complicated
processes, anything that causes you to wait for something or someone.
Don't wait for a meeting to announce that X is now ready when a simple @all message in Slack can do
the job. Grab somebody's attention with a @<name> instead of waiting for the next scheduled meeting.
Git is asynchronous if used properly: Send a pull request when you need somebody to look at
something. Merge 'done' work to master branch (auto rolls out to server), keep master usable at all times.
Automate as much as you can. CI, Deploys, etc. Chatops is a thing. Automated updates via slack are
great to keep track of what is happening.
Coordinate outcomes, not tasks. Outcomes have stakeholders and ownership.
Oh, the irony ….
Inter team communication = dependency mgmnt!
People dependencies. Communicate daily with people that depend on you and with people that you
depend on. Your org chart is a graph, not a tree. Team = cluster of people that need each other; this
changes over time.
Avoid tight coupling. Limit the number of people you depend on to progress. Avoid being a bottleneck
for too many others. Delegate, prioritize, do 1 thing at the time. Learn to say no.
Team cohesiveness. Make sure you have the right people, make sure everyone is working towards the
same goals. Check this regularly.
Small teams. Big teams have poor cohesiveness and large degree of coupling, lose a lot of time talking
instead of getting stuff done.
Demeter's law is relevant too: don't talk via intermediaries. Avoid Conway's law and restructure if
needed.
Q&A
@jillesvangurp, @inbotapp

Más contenido relacionado

La actualidad más candente

Codemotion Berlin 2015 recap
Codemotion Berlin 2015   recapCodemotion Berlin 2015   recap
Codemotion Berlin 2015 recapTorben Dohrn
 
"Startups, comment gérer une équipe de développeurs" par Laurent Cerveau
"Startups, comment gérer une équipe de développeurs" par Laurent Cerveau"Startups, comment gérer une équipe de développeurs" par Laurent Cerveau
"Startups, comment gérer une équipe de développeurs" par Laurent CerveauTheFamily
 
A3.3 - Product Evaluation per Life's Principles
A3.3 - Product Evaluation per Life's PrinciplesA3.3 - Product Evaluation per Life's Principles
A3.3 - Product Evaluation per Life's Principlesjohn-longchamps
 
UCD / IxD Introduction - User centric design, interaction design
UCD / IxD Introduction - User centric design, interaction designUCD / IxD Introduction - User centric design, interaction design
UCD / IxD Introduction - User centric design, interaction designsdavis6b
 
Seven Deadly Sins of Time Management
Seven Deadly Sins of Time ManagementSeven Deadly Sins of Time Management
Seven Deadly Sins of Time ManagementJay Turner
 
Another Day In Paradise
Another Day In ParadiseAnother Day In Paradise
Another Day In Paradisekum72
 

La actualidad más candente (7)

Codemotion Berlin 2015 recap
Codemotion Berlin 2015   recapCodemotion Berlin 2015   recap
Codemotion Berlin 2015 recap
 
"Startups, comment gérer une équipe de développeurs" par Laurent Cerveau
"Startups, comment gérer une équipe de développeurs" par Laurent Cerveau"Startups, comment gérer une équipe de développeurs" par Laurent Cerveau
"Startups, comment gérer une équipe de développeurs" par Laurent Cerveau
 
A3.3 - Product Evaluation per Life's Principles
A3.3 - Product Evaluation per Life's PrinciplesA3.3 - Product Evaluation per Life's Principles
A3.3 - Product Evaluation per Life's Principles
 
UCD / IxD Introduction - User centric design, interaction design
UCD / IxD Introduction - User centric design, interaction designUCD / IxD Introduction - User centric design, interaction design
UCD / IxD Introduction - User centric design, interaction design
 
Seven Deadly Sins of Time Management
Seven Deadly Sins of Time ManagementSeven Deadly Sins of Time Management
Seven Deadly Sins of Time Management
 
Another Day In Paradise
Another Day In ParadiseAnother Day In Paradise
Another Day In Paradise
 
Win#23 it
Win#23 itWin#23 it
Win#23 it
 

Destacado

IBM Bluemix Nice meetup #5 - 20170504 - Container Service based on Kubernetes
IBM Bluemix Nice meetup #5 - 20170504 - Container Service based on KubernetesIBM Bluemix Nice meetup #5 - 20170504 - Container Service based on Kubernetes
IBM Bluemix Nice meetup #5 - 20170504 - Container Service based on KubernetesIBM France Lab
 
Get complete visibility into containers based application environment
Get complete visibility into containers based application environmentGet complete visibility into containers based application environment
Get complete visibility into containers based application environmentAppDynamics
 
From 10 Users to 10 Milion in 10 Days - Adam Lev, Tamar Labs - DevOpsDays Tel...
From 10 Users to 10 Milion in 10 Days - Adam Lev, Tamar Labs - DevOpsDays Tel...From 10 Users to 10 Milion in 10 Days - Adam Lev, Tamar Labs - DevOpsDays Tel...
From 10 Users to 10 Milion in 10 Days - Adam Lev, Tamar Labs - DevOpsDays Tel...DevOpsDays Tel Aviv
 
"How overlay networks can make public clouds your global WAN" by Ryan Koop o...
 "How overlay networks can make public clouds your global WAN" by Ryan Koop o... "How overlay networks can make public clouds your global WAN" by Ryan Koop o...
"How overlay networks can make public clouds your global WAN" by Ryan Koop o...Cohesive Networks
 
Multi-container Applications on OpenShift with Ansible Service Broker
Multi-container Applications on OpenShift with Ansible Service BrokerMulti-container Applications on OpenShift with Ansible Service Broker
Multi-container Applications on OpenShift with Ansible Service BrokerAmazon Web Services
 
VoxxedDays Bucharest 2017 - Powering interactive data analysis with Google Bi...
VoxxedDays Bucharest 2017 - Powering interactive data analysis with Google Bi...VoxxedDays Bucharest 2017 - Powering interactive data analysis with Google Bi...
VoxxedDays Bucharest 2017 - Powering interactive data analysis with Google Bi...Márton Kodok
 
Complex realtime event analytics using BigQuery @Crunch Warmup
Complex realtime event analytics using BigQuery @Crunch WarmupComplex realtime event analytics using BigQuery @Crunch Warmup
Complex realtime event analytics using BigQuery @Crunch WarmupMárton Kodok
 
Evolutions et nouveaux outils SEO
Evolutions et nouveaux outils SEOEvolutions et nouveaux outils SEO
Evolutions et nouveaux outils SEODimitri Brunel
 
Reversing Engineering a Web Application - For fun, behavior and detection
Reversing Engineering a Web Application - For fun, behavior and detectionReversing Engineering a Web Application - For fun, behavior and detection
Reversing Engineering a Web Application - For fun, behavior and detectionRodrigo Montoro
 
Docker swarm-mike-goelzer-mv-meetup-45min-workshop 02242016 (1)
Docker swarm-mike-goelzer-mv-meetup-45min-workshop 02242016 (1)Docker swarm-mike-goelzer-mv-meetup-45min-workshop 02242016 (1)
Docker swarm-mike-goelzer-mv-meetup-45min-workshop 02242016 (1)Michelle Antebi
 
JavaOne 2017 - Choosing a NoSQL API and Database to Avoid Tombstones and Drag...
JavaOne 2017 - Choosing a NoSQL API and Database to Avoid Tombstones and Drag...JavaOne 2017 - Choosing a NoSQL API and Database to Avoid Tombstones and Drag...
JavaOne 2017 - Choosing a NoSQL API and Database to Avoid Tombstones and Drag...Leonardo De Moura Rocha Lima
 
Performance monitoring and call tracing in microservice environments
Performance monitoring and call tracing in microservice environmentsPerformance monitoring and call tracing in microservice environments
Performance monitoring and call tracing in microservice environmentsMartin Gutenbrunner
 
Do we need a bigger dev data culture
Do we need a bigger dev data cultureDo we need a bigger dev data culture
Do we need a bigger dev data cultureSimon Dittlmann
 
Retelling nonfiction
Retelling nonfictionRetelling nonfiction
Retelling nonfictionEmily Kissner
 
Docker security introduction-task-2016
Docker security introduction-task-2016Docker security introduction-task-2016
Docker security introduction-task-2016Ricardo Gerardi
 
Raleigh DevDay 2017: Deep Dive on AWS Management Tools
Raleigh DevDay 2017: Deep Dive on AWS Management ToolsRaleigh DevDay 2017: Deep Dive on AWS Management Tools
Raleigh DevDay 2017: Deep Dive on AWS Management ToolsAmazon Web Services
 
Migrate Oracle WebLogic Applications onto a Containerized Cloud Data Center
Migrate Oracle WebLogic Applications onto a Containerized Cloud Data CenterMigrate Oracle WebLogic Applications onto a Containerized Cloud Data Center
Migrate Oracle WebLogic Applications onto a Containerized Cloud Data CenterJingnan Zhou
 

Destacado (20)

IBM Bluemix Nice meetup #5 - 20170504 - Container Service based on Kubernetes
IBM Bluemix Nice meetup #5 - 20170504 - Container Service based on KubernetesIBM Bluemix Nice meetup #5 - 20170504 - Container Service based on Kubernetes
IBM Bluemix Nice meetup #5 - 20170504 - Container Service based on Kubernetes
 
Get complete visibility into containers based application environment
Get complete visibility into containers based application environmentGet complete visibility into containers based application environment
Get complete visibility into containers based application environment
 
From 10 Users to 10 Milion in 10 Days - Adam Lev, Tamar Labs - DevOpsDays Tel...
From 10 Users to 10 Milion in 10 Days - Adam Lev, Tamar Labs - DevOpsDays Tel...From 10 Users to 10 Milion in 10 Days - Adam Lev, Tamar Labs - DevOpsDays Tel...
From 10 Users to 10 Milion in 10 Days - Adam Lev, Tamar Labs - DevOpsDays Tel...
 
"How overlay networks can make public clouds your global WAN" by Ryan Koop o...
 "How overlay networks can make public clouds your global WAN" by Ryan Koop o... "How overlay networks can make public clouds your global WAN" by Ryan Koop o...
"How overlay networks can make public clouds your global WAN" by Ryan Koop o...
 
Multi-container Applications on OpenShift with Ansible Service Broker
Multi-container Applications on OpenShift with Ansible Service BrokerMulti-container Applications on OpenShift with Ansible Service Broker
Multi-container Applications on OpenShift with Ansible Service Broker
 
VoxxedDays Bucharest 2017 - Powering interactive data analysis with Google Bi...
VoxxedDays Bucharest 2017 - Powering interactive data analysis with Google Bi...VoxxedDays Bucharest 2017 - Powering interactive data analysis with Google Bi...
VoxxedDays Bucharest 2017 - Powering interactive data analysis with Google Bi...
 
Complex realtime event analytics using BigQuery @Crunch Warmup
Complex realtime event analytics using BigQuery @Crunch WarmupComplex realtime event analytics using BigQuery @Crunch Warmup
Complex realtime event analytics using BigQuery @Crunch Warmup
 
Evolutions et nouveaux outils SEO
Evolutions et nouveaux outils SEOEvolutions et nouveaux outils SEO
Evolutions et nouveaux outils SEO
 
Reversing Engineering a Web Application - For fun, behavior and detection
Reversing Engineering a Web Application - For fun, behavior and detectionReversing Engineering a Web Application - For fun, behavior and detection
Reversing Engineering a Web Application - For fun, behavior and detection
 
Docker swarm-mike-goelzer-mv-meetup-45min-workshop 02242016 (1)
Docker swarm-mike-goelzer-mv-meetup-45min-workshop 02242016 (1)Docker swarm-mike-goelzer-mv-meetup-45min-workshop 02242016 (1)
Docker swarm-mike-goelzer-mv-meetup-45min-workshop 02242016 (1)
 
What is DevOps?
What is DevOps?What is DevOps?
What is DevOps?
 
JavaOne 2017 - Choosing a NoSQL API and Database to Avoid Tombstones and Drag...
JavaOne 2017 - Choosing a NoSQL API and Database to Avoid Tombstones and Drag...JavaOne 2017 - Choosing a NoSQL API and Database to Avoid Tombstones and Drag...
JavaOne 2017 - Choosing a NoSQL API and Database to Avoid Tombstones and Drag...
 
Performance monitoring and call tracing in microservice environments
Performance monitoring and call tracing in microservice environmentsPerformance monitoring and call tracing in microservice environments
Performance monitoring and call tracing in microservice environments
 
Do we need a bigger dev data culture
Do we need a bigger dev data cultureDo we need a bigger dev data culture
Do we need a bigger dev data culture
 
Retelling nonfiction
Retelling nonfictionRetelling nonfiction
Retelling nonfiction
 
Unit I.fundamental of Programmable DSP
Unit I.fundamental of Programmable DSPUnit I.fundamental of Programmable DSP
Unit I.fundamental of Programmable DSP
 
Docker security introduction-task-2016
Docker security introduction-task-2016Docker security introduction-task-2016
Docker security introduction-task-2016
 
Raleigh DevDay 2017: Deep Dive on AWS Management Tools
Raleigh DevDay 2017: Deep Dive on AWS Management ToolsRaleigh DevDay 2017: Deep Dive on AWS Management Tools
Raleigh DevDay 2017: Deep Dive on AWS Management Tools
 
Migrate Oracle WebLogic Applications onto a Containerized Cloud Data Center
Migrate Oracle WebLogic Applications onto a Containerized Cloud Data CenterMigrate Oracle WebLogic Applications onto a Containerized Cloud Data Center
Migrate Oracle WebLogic Applications onto a Containerized Cloud Data Center
 
Question 7
Question 7Question 7
Question 7
 

Similar a Who is Jilles? A Distributed Software Engineer

Agilelessons scanagile-final 2013
Agilelessons scanagile-final 2013Agilelessons scanagile-final 2013
Agilelessons scanagile-final 2013lokori
 
Classroom to careers in Web Development
Classroom to careers in Web DevelopmentClassroom to careers in Web Development
Classroom to careers in Web DevelopmentDouglas Ng
 
Outline Dream Presentatie
Outline Dream PresentatieOutline Dream Presentatie
Outline Dream PresentatieBob Duindam
 
System Dynamics and FOSS
System Dynamics and FOSSSystem Dynamics and FOSS
System Dynamics and FOSSMaikel Mardjan
 
Effective Management Of Virtual Teams For Slide Share
Effective Management Of Virtual Teams For Slide ShareEffective Management Of Virtual Teams For Slide Share
Effective Management Of Virtual Teams For Slide Sharekeith_mackay
 
How to sustain a tool building community-driven effort
How to sustain a tool building community-driven effortHow to sustain a tool building community-driven effort
How to sustain a tool building community-driven effortJordi Cabot
 
Snowforce 2017 Keynote - Peter Coffee
Snowforce 2017 Keynote - Peter CoffeeSnowforce 2017 Keynote - Peter Coffee
Snowforce 2017 Keynote - Peter CoffeePeter Coffee
 
From 🤦 to 🐿️
From 🤦 to 🐿️From 🤦 to 🐿️
From 🤦 to 🐿️Ori Pekelman
 
No Silver Bullet - Essence and Accident in Software Engineering
No Silver Bullet - Essence and Accident in Software EngineeringNo Silver Bullet - Essence and Accident in Software Engineering
No Silver Bullet - Essence and Accident in Software EngineeringSalvatore Cordiano
 
Agile Architecture: Ideals, History, and a New Hope
Agile Architecture: Ideals, History, and a New HopeAgile Architecture: Ideals, History, and a New Hope
Agile Architecture: Ideals, History, and a New HopeGary Pedretti
 
20210908 jim spohrer naples forum_2021 v1
20210908 jim spohrer naples forum_2021 v120210908 jim spohrer naples forum_2021 v1
20210908 jim spohrer naples forum_2021 v1ISSIP
 
I2126469
I2126469I2126469
I2126469aijbm
 
24 Hours of UX, 2023: Preventing the Future
24 Hours of UX, 2023: Preventing the Future24 Hours of UX, 2023: Preventing the Future
24 Hours of UX, 2023: Preventing the FutureJoshua Randall
 
hroughout the fifty-odd years of software development, the ind.docx
hroughout the fifty-odd years of software development, the ind.docxhroughout the fifty-odd years of software development, the ind.docx
hroughout the fifty-odd years of software development, the ind.docxpooleavelina
 
Collaboration 3.0: 8 trends today that will define our tools tomorrow
Collaboration 3.0: 8 trends today that will define our tools tomorrowCollaboration 3.0: 8 trends today that will define our tools tomorrow
Collaboration 3.0: 8 trends today that will define our tools tomorrowalexschiff
 
Yenikod Yazılım Kursu - Kodlama Öğrenebilir Miyim? Kodlama Bana Göre Mi?
Yenikod Yazılım Kursu - Kodlama Öğrenebilir Miyim? Kodlama Bana Göre Mi?Yenikod Yazılım Kursu - Kodlama Öğrenebilir Miyim? Kodlama Bana Göre Mi?
Yenikod Yazılım Kursu - Kodlama Öğrenebilir Miyim? Kodlama Bana Göre Mi?Mustafa Ekim
 
Personal Note On Software Engineering
Personal Note On Software EngineeringPersonal Note On Software Engineering
Personal Note On Software EngineeringHeidi Maestas
 
Software engineering for CEOs
Software engineering for CEOsSoftware engineering for CEOs
Software engineering for CEOsGabriel Hamilton
 
Software development methodologies of dumb and cunning
Software development methodologies of dumb and cunningSoftware development methodologies of dumb and cunning
Software development methodologies of dumb and cunningNalaka Gamage
 
Best Practice Information Architecture
Best Practice Information ArchitectureBest Practice Information Architecture
Best Practice Information ArchitecturePatrick Kennedy
 

Similar a Who is Jilles? A Distributed Software Engineer (20)

Agilelessons scanagile-final 2013
Agilelessons scanagile-final 2013Agilelessons scanagile-final 2013
Agilelessons scanagile-final 2013
 
Classroom to careers in Web Development
Classroom to careers in Web DevelopmentClassroom to careers in Web Development
Classroom to careers in Web Development
 
Outline Dream Presentatie
Outline Dream PresentatieOutline Dream Presentatie
Outline Dream Presentatie
 
System Dynamics and FOSS
System Dynamics and FOSSSystem Dynamics and FOSS
System Dynamics and FOSS
 
Effective Management Of Virtual Teams For Slide Share
Effective Management Of Virtual Teams For Slide ShareEffective Management Of Virtual Teams For Slide Share
Effective Management Of Virtual Teams For Slide Share
 
How to sustain a tool building community-driven effort
How to sustain a tool building community-driven effortHow to sustain a tool building community-driven effort
How to sustain a tool building community-driven effort
 
Snowforce 2017 Keynote - Peter Coffee
Snowforce 2017 Keynote - Peter CoffeeSnowforce 2017 Keynote - Peter Coffee
Snowforce 2017 Keynote - Peter Coffee
 
From 🤦 to 🐿️
From 🤦 to 🐿️From 🤦 to 🐿️
From 🤦 to 🐿️
 
No Silver Bullet - Essence and Accident in Software Engineering
No Silver Bullet - Essence and Accident in Software EngineeringNo Silver Bullet - Essence and Accident in Software Engineering
No Silver Bullet - Essence and Accident in Software Engineering
 
Agile Architecture: Ideals, History, and a New Hope
Agile Architecture: Ideals, History, and a New HopeAgile Architecture: Ideals, History, and a New Hope
Agile Architecture: Ideals, History, and a New Hope
 
20210908 jim spohrer naples forum_2021 v1
20210908 jim spohrer naples forum_2021 v120210908 jim spohrer naples forum_2021 v1
20210908 jim spohrer naples forum_2021 v1
 
I2126469
I2126469I2126469
I2126469
 
24 Hours of UX, 2023: Preventing the Future
24 Hours of UX, 2023: Preventing the Future24 Hours of UX, 2023: Preventing the Future
24 Hours of UX, 2023: Preventing the Future
 
hroughout the fifty-odd years of software development, the ind.docx
hroughout the fifty-odd years of software development, the ind.docxhroughout the fifty-odd years of software development, the ind.docx
hroughout the fifty-odd years of software development, the ind.docx
 
Collaboration 3.0: 8 trends today that will define our tools tomorrow
Collaboration 3.0: 8 trends today that will define our tools tomorrowCollaboration 3.0: 8 trends today that will define our tools tomorrow
Collaboration 3.0: 8 trends today that will define our tools tomorrow
 
Yenikod Yazılım Kursu - Kodlama Öğrenebilir Miyim? Kodlama Bana Göre Mi?
Yenikod Yazılım Kursu - Kodlama Öğrenebilir Miyim? Kodlama Bana Göre Mi?Yenikod Yazılım Kursu - Kodlama Öğrenebilir Miyim? Kodlama Bana Göre Mi?
Yenikod Yazılım Kursu - Kodlama Öğrenebilir Miyim? Kodlama Bana Göre Mi?
 
Personal Note On Software Engineering
Personal Note On Software EngineeringPersonal Note On Software Engineering
Personal Note On Software Engineering
 
Software engineering for CEOs
Software engineering for CEOsSoftware engineering for CEOs
Software engineering for CEOs
 
Software development methodologies of dumb and cunning
Software development methodologies of dumb and cunningSoftware development methodologies of dumb and cunning
Software development methodologies of dumb and cunning
 
Best Practice Information Architecture
Best Practice Information ArchitectureBest Practice Information Architecture
Best Practice Information Architecture
 

Último

Introduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfIntroduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfFerryKemperman
 
Large Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and RepairLarge Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and RepairLionel Briand
 
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)jennyeacort
 
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...Akihiro Suda
 
Odoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 EnterpriseOdoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 Enterprisepreethippts
 
Machine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringMachine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringHironori Washizaki
 
CRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceCRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceBrainSell Technologies
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaHanief Utama
 
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Cizo Technology Services
 
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsSensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsChristian Birchler
 
Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Velvetech LLC
 
英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作qr0udbr0
 
Precise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalPrecise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalLionel Briand
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEEVICTOR MAESTRE RAMIREZ
 
SpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at RuntimeSpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at Runtimeandrehoraa
 
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanySuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanyChristoph Pohl
 
Innovate and Collaborate- Harnessing the Power of Open Source Software.pdf
Innovate and Collaborate- Harnessing the Power of Open Source Software.pdfInnovate and Collaborate- Harnessing the Power of Open Source Software.pdf
Innovate and Collaborate- Harnessing the Power of Open Source Software.pdfYashikaSharma391629
 
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Matt Ray
 

Último (20)

Introduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfIntroduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdf
 
Large Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and RepairLarge Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and Repair
 
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort ServiceHot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
 
2.pdf Ejercicios de programación competitiva
2.pdf Ejercicios de programación competitiva2.pdf Ejercicios de programación competitiva
2.pdf Ejercicios de programación competitiva
 
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
 
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
 
Odoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 EnterpriseOdoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 Enterprise
 
Machine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringMachine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their Engineering
 
CRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceCRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. Salesforce
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief Utama
 
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
 
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsSensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
 
Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...
 
英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作
 
Precise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalPrecise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive Goal
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEE
 
SpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at RuntimeSpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at Runtime
 
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanySuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
 
Innovate and Collaborate- Harnessing the Power of Open Source Software.pdf
Innovate and Collaborate- Harnessing the Power of Open Source Software.pdfInnovate and Collaborate- Harnessing the Power of Open Source Software.pdf
Innovate and Collaborate- Harnessing the Power of Open Source Software.pdf
 
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
 

Who is Jilles? A Distributed Software Engineer

  • 2. Who is Jilles? www.jillesvangurp.com, and @jillesvangurpon * Java (J)Ruby Python Javascript/node.js Servers reluctant Devops guy Software Architecture Universities of Utrecht (NL), Blekinge (SE), and Groningen (NL) GX (NL),Nokia Research (FI), Nokia/Here (DE),Localstream (DE), Inbot(DE).
  • 3. Inbot app - available for Android & IOS
  • 4. Trends/context Freelance jobs & short term contracts are common Job security is a bit of a myth Internet tools mean it is easier than ever to work remote Most programmers don't actually live in San Francisco; how to use them? Building software requires a lot of different specialists Robots are eating our jobs
  • 5. The modern workplace Cubicles, open spaces, …. really?! Home office Shared desks Coffee shops Couch surfing Beach Anywhere with internet access & suitable "work-context"
  • 6. Industrial Revolution Economies of scale through - colocating resources - minimizing transport - scale by sharing resources - minimize space used - cheap, plentiful labor available locally Is all this still relevant if all you really need is specialists with a laptop + internet? Creative work doesn't happen in factories. Are you a "resource"?
  • 7. Renovating your house analogy - Talk to an architect - Hire a foreman - Foreman gets brick layers, carpenters, electricians, painters, etc. to show up at the right time - Typically self-employed - You find a person that knows a few others and they work together to do the thing Very pre-industrial revolution, trust & relationship based. You don't get economies of scale by putting programmers in cubicles You don't get any benefit from only hiring local talent in crowded market It's a global village now, this is the post industrial revolution
  • 8. How local are you really? Do you talk to people on different floors of your office building? Or down the street? Outside your team? How often? And about work? How many people do you interact with professionally on a day to day basis?
  • 9. Rest of this presentation ... Software Engineering is & "True-isms" about SE Distributed Software Teams
  • 10. First SE conferences organized by NATO in 1968 to solve the "Software Crisis" http://homepages.cs.ncl.ac.uk/brian.randell/NATO/NATOReports/ https://www.nasa.gov/50th/50th_magazine/scientists.html Water-fall: apply engineering principles to big SE projects Royce, Winston (1970), "Managing the Development of Large Software Systems", Proceedings of IEEE WESCON, 26 (August): 1–9 Waterfall -> Spiral Development -> Rational Unified & 4+1 model -> Extreme Programming -> Scrum -> Kanban -> ... Sofware Engineering, a brief history At the start of the Apollo program, the onboard flight software needed to land on the moon didn’t exist. Computer science wasn’t in any college curriculum. NASA turned to mathematician Margaret Hamilton, of the Massachusetts Institute of Technology, to pioneer and direct the effort. With her colleagues, she developed the building blocks for modern “software engineering,” a term Hamilton coined.
  • 11. "Laws" of Software Engineering (1) Conway's Law, "organizations which design systems ... are constrained to produce designs which are copies of the communication structures of these organizations" Parkinson’s Law (1), "work expands so as to fill the time available for its completion" Parkinson's Law (2), "people in groups tend to give disproportionate weight to pointless discussions." Law of Demeter, principle of least knowledge. Each unit should have only limited knowledge about other units: only units "closely" related to the current unit. Each unit should only talk to its friends; don't talk to strangers. Only talk to your immediate friends.
  • 12. "Laws" of Software Engineering (2) Peter Principle, "managers rise to the level of their incompetence." Brooke's Law, "adding manpower to a late software project makes it later" Two Pizza Rule (There are two hard things in computer science: cache invalidation, naming things, and off-by-one errors)
  • 13. Seniority: Listen to uncle Bob I estimate that the world, today, has twenty-two million programmers[2]. One of of every 300 people is a programmer. In the US it’s closer to 1%. But in 1974 the number of programmers worldwide was vastly smaller, and probably numbered less than 100,000[3]. That implies that in 40 years our ranks have increased by a factor of 220. That’s a growth rate of 14.5% per year, or a doubling rate of five years. If the ranks of programmers has doubled every five years, then it stands to reason that most programmers were hired within the last five years, and so about half the programmers would be under 28. Half of those over 28 would be less than 33. Half of those over 33 would be less than 38, and so on. Less than 0.5% of programmers would be 60 or over. So most of us old programmers are still around writing code. It’s just that there never were very many of us. What does this imply for our industry? Maybe it’s not as bad as Lord of the Flies, but the fact that juniors exponentially outnumbers seniors is concerning. As long as that growth curve continues[4] there will not be enough teachers, role models, and leaders. It means that most software teams will remain relatively unguided, unsupervised, and inexperienced. It means that most software organizations will have to endlessly relearn the lessons they learned the five years before. It means that the industry as a whole will remain dominated by novices, and exist in a state of perpetual immaturity. http://blog.cleancoder.com/uncle-bob/2014/06/20/MyLawn.html
  • 14. SE Reality Check Engineering metaphor is a fallacy, there's more to it than blueprints & math Big heavy processes tend to not work as advertised Agile the good: adapting to changing reality; less upfront planning, building stuff fast that is actually useful Agile the bad: new bureaucracy (story points, retrospectives, velocity charts, ...), dogmatic application of unscientific ideas, waterfall in disguise, technical debt, .. Small teams are easier to manage, need less process (more Agile)
  • 15. The point about small teams: keep communication links down Observation: Communication gets harder when you distribute ….
  • 16. SE at scale: Big Software Projects/Products Multiple MLOC, tens of thousands of developers, reusing and depending on even more software, life span of decades, R&D value measured in billions. How do you 'engineer' such a thing? Simple Answer: don't. It just 'happens' organically. Software development happens in communities of practitioners. More Complex Answer: throw engineers at it, thousands of them, and hope for the best but start small and fail fast.
  • 17. How to Engineer a 1 MLOC software system? ~constant: productivity of engineers is 10 LOC / day (controversial) 1 engineer, 100K days, or about 273 years, full time ;-) 10 engineers 10K days, about 27 years 100 engineers 1K days, about 2.7 years, starting to get doable 1 MLOC is comparatively small scale software Mythical Man Month: planning doesn't quite work like that.
  • 19. Why? You want to build X, you need people with skills You know suitable people but they live in a different places Why not work together & why move to one place? It's easy to get started with people that you know, even when they are not local
  • 20. Distributed teams - challenges Practicalities: Timezones, cultural differences, language barriers, tools, processes Formalities: who reports to who? who pays the bills? how do you hire/fire? Conflicts: stress + communication challenged people = cat fight Realities: people have different motives, goals, incentives, opinions Same challenges as non distributed but magnified by the fact that communication is harder: it's still software engineering! What didn't work before, now doesn't work even better!
  • 21. OSS development …. they can do it. How? - Distributed by default - Many small projects - Some bigger projects - Reuse & depend on each other - Basis for 99% of most commercially shipping software and projects - Primarily funded by for profit software companies - this is NOT charity - Driven by people/companies deciding to do things that need doing from their point of view. - Work on a need to have basis.
  • 22. The OSS community Distributed network of professionals, companies, and other stakeholders. Extremely well financed Work together out of necessity Collectively get more work done than any software company out there Formula for distributed: Look at the stuff they are NOT doing. So, it scales up. It also scales down ...
  • 23. Working with thousands of people looks like this ...
  • 24. The Amazon Formula Write out new ideas Incentivize team members for the long term: make them owners Follow the “two pizza rule.” Dedicate time to think about the future Routinely “check in” on long-term goals Work backwards Jeff Bezos http://99u.com/articles/7255/the-jeff-bezos-school-of-long-term-thinking
  • 25. Stuff that doesn't work (aka. corporate shit I don't miss in my life) Standups and any process that requires them. This is where Scrum falls short. Forget about doing retrospectives, estimation sessions, and other BS bingo that comes with scrum. IT DOES NOT WORK. (Opinion: this is not specific to distributed teams, it just becomes even more obvious) Having long meetings over a phone with a large group. Just results in the wrong people claiming all the talking time while the rest mute and try to get some work done. Twitter is 1 alt+tab away... Trying to impose complicated processes, new ways of working, while at the same time you are onboarding new team members. Email, just don't.
  • 26. Stuff that works (for us) Weekly short status calls. Agree times that fit everyone, e.g. 11 am instead of 9 AM. Everybody provides brief update. 20-30 minutes max. Weekly planning meeting: discuss business, blockers + KANBAN: done, in progress, next. Shared slides for each meeting on google docs: update before & during meeting. 1 on 1's are a great way to smooth out issues, avoid doing this in planning calls. Work backwards from business needs. What is blocking the business? What is blocking the technical solutions to the business blockers? How can we move forward? Most of us are "elsewhere", this forces us to be distributed.
  • 27. Go Asynchronous - avoid bottlenecks Example bottlenecks: handovers, meetings, people availability, office hours, slow builds, complicated processes, anything that causes you to wait for something or someone. Don't wait for a meeting to announce that X is now ready when a simple @all message in Slack can do the job. Grab somebody's attention with a @<name> instead of waiting for the next scheduled meeting. Git is asynchronous if used properly: Send a pull request when you need somebody to look at something. Merge 'done' work to master branch (auto rolls out to server), keep master usable at all times. Automate as much as you can. CI, Deploys, etc. Chatops is a thing. Automated updates via slack are great to keep track of what is happening. Coordinate outcomes, not tasks. Outcomes have stakeholders and ownership.
  • 29. Inter team communication = dependency mgmnt! People dependencies. Communicate daily with people that depend on you and with people that you depend on. Your org chart is a graph, not a tree. Team = cluster of people that need each other; this changes over time. Avoid tight coupling. Limit the number of people you depend on to progress. Avoid being a bottleneck for too many others. Delegate, prioritize, do 1 thing at the time. Learn to say no. Team cohesiveness. Make sure you have the right people, make sure everyone is working towards the same goals. Check this regularly. Small teams. Big teams have poor cohesiveness and large degree of coupling, lose a lot of time talking instead of getting stuff done. Demeter's law is relevant too: don't talk via intermediaries. Avoid Conway's law and restructure if needed.