The Human Side of Microservices

Armagan Amcalar

unu GmbH

September 25th, 2018

Who am I?

Armagan Amcalar
Head of Software Engineering @ unu GmbH
Founder @ Lonca Works

     dashersw            dashersw

AUTHORED ON GITHUB

dashersw

organizations which design systems ... are constrained to produce designs which are copies of the communication structures of these organizations.

— Melvin Conway, 1968

Let's START with the END:

dashersw

The roots

Why do we need code?

Why do we need high level languages?

Why do we need software architecture?

THIS IS A HUMAN PROBLEM!

And modular systems

This is actually how systems are built for ages

Microservices enforce decoupling

Individual development
Individual technology choices
Individual builds
Individual deployments
Individual scaling

 

... see a pattern?

Microservices iS ALL ABOUT DECOUPLING

dashersw

this is All about making peace with the fact that we don’t want to communicate with other humans.

dashersw

dashersw

this is generation y

If Millennials are not a part of the process of input and forward thinking, they are most likely to disengage from the workplace and find meaning elsewhere.

Millennials seek work that is meaningful. They are not fearful of changing jobs and don't build safety nets.

dashersw

generation y

They can't be bound by the earlier decisions of others

Require extreme autonomy

Independence, freedom, ownership

"My success doesn't depend on your success"

"I want to grow. I can't wait for you."

Fear of missing out

how to succeed with microservices

Observe your team's psychology and build for that

Create space and infrastructure for autonomy

Double down on communication

dashersw

Microservices is not a technical solution

It's a collaboration solution that improves efficiency by decoupling communication from implementation

dashersw

Communication isn't only talking

You don't need scrum masters or project managers to facilitate communication

 

Get the right team setup, give the right ownership

Define and document areas of responsibility

Document public interfaces and functionality

Leave no room for interpretation and frustration

dashersw

change mode of ownership

Abolish responsibilities based on layers of a system:
the UI, the business logic, the database, the infrastructure

 

Distribute product / feature responsibilities

A team / developer is responsible for a thin slice through all layers

 

Immense chance for full-stack developers

This is why JavaScript is so popular with Gen Y

dashersw

Communication is a direct bi product of human nature.

Your organization, your company, your team, and the code you write, will evolve with your way of communication.

If you look at microservices as only a technological choice, you will fail. It's a cultural, and a communicational shift.

 

And in order to succeed, you have to consider the human side of microservices.

dashersw

Conclusion

thank you!

Let's keep in touch!

Armagan Amcalar

armagan@amcalar.com
   dashersw
   dashersw

The Human Side of Microservices

By Armağan Amcalar

The Human Side of Microservices

“organizations which design systems ... are constrained to produce designs which are copies of the communication structures of these organizations” — Melvin Conway, 1968 Microservices is an architectural shift, a huge topic that demands change in every aspect of software delivery. It is also more than a technical problem — your microservices architecture can be as solid and efficient as your team communication. This talk tries to describe the human aspect of implementing a microservices approach, and how this affects team communication.

  • 1,577