Długoterminowe projekty w IT

A presentation at PHPers 3city in March 2018 in Gdańsk, Poland by Paweł Lewtak

Slide 1

Slide 1

Long-term IT projects

Slide 2

Slide 2

Pawel Lewtak Developer @ GOG.com @pawel_lewtak

Slide 3

Slide 3

  1. Disclaimer

Slide 4

Slide 4

  1. Analysis

Slide 5

Slide 5

What to build?

Slide 6

Slide 6

What problem to solve?

Slide 7

Slide 7

"The root of all evil in programming is misunderstanding of the problem. Ask right questions to right people before first line of code." Mariusz Gil

Slide 8

Slide 8

"It's developers (mis)understanding not expert knowledge that get's released to production" Alberto Brandolini

Slide 9

Slide 9

"Tech people must speak the language of Business people, not vice versa." Stefan Priebsch

Slide 10

Slide 10

"The limits of my language mean the limits of my world." Ludwig Wittgenstein

Slide 11

Slide 11

Domain Driven Design

Slide 12

Slide 12

Event Storming

Slide 13

Slide 13

"The only thing that is constant is change." Heraclitus

Slide 14

Slide 14

  1. Architecture

Slide 15

Slide 15

Monolith vs Microservices

Slide 16

Slide 16

"you shouldn't start a new project with microservices" Martin Fowler

Slide 17

Slide 17

Service Oriented Architecture

Slide 18

Slide 18

Clean architecture

Slide 19

Slide 19

Slide 20

Slide 20

You're not unique

Slide 21

Slide 21

Don't reinvent the wheel

Slide 22

Slide 22

Slide 23

Slide 23

microservices serverless artificial intelligence machine learning blockchain nosql virtual/augmented reality internet of things cloud computing deep learning quantum computing

Slide 24

Slide 24

  1. Tests

Slide 25

Slide 25

Test Driven Design

Slide 26

Slide 26

Tests !== Test Driven Design

Slide 27

Slide 27

"If it's hard to write a test, it's a signal that you have a design problem, not a testing problem" Kent Back

Slide 28

Slide 28

  1. Code Review

Slide 29

Slide 29

Slide 30

Slide 30

  1. Continous ...

Slide 31

Slide 31

Continous integration

Slide 32

Slide 32

Continous deployment

Slide 33

Slide 33

Deployment !== Release

Slide 34

Slide 34

Slide 35

Slide 35

  1. Monitoring & Logging

Slide 36

Slide 36

  1. Metrics

Slide 37

Slide 37

Business Metrics

Slide 38

Slide 38

  1. Automation

Slide 39

Slide 39

If it moves, automate it!

Slide 40

Slide 40

"If boring repetitive things aren't automated a manager gets hired." Niranjan Paranjape

Slide 41

Slide 41

  1. Documentation

Slide 42

Slide 42

Start with README

Slide 43

Slide 43

"Documentation is a love letter that you write to your future self." Damian Conway

Slide 44

Slide 44

  1. Communication

Slide 45

Slide 45

Communication is NOT a soft skill

Slide 46

Slide 46

Communication is a core skill!

Slide 47

Slide 47

"People who don't share their knowledge look more productive because they're holding back the entire team." Jessica Kerr

Slide 48

Slide 48

"I wish the understanding were more widespread that we plateau in coding skill mid-career, it is all about communication after that" Denton Gentry

Slide 49

Slide 49

Thank you!

Slide 50

Slide 50

Questions