Long term IT projects

A presentation at PyCon SK 2019 in March 2019 in Bratislava, Slovakia by Paweł Lewtak

Slide 1

Slide 1

Long Term IT Projects

Slide 2

Slide 2

Pawel Lewtak @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

Don’t reinvent the wheel

Slide 21

Slide 21

You’re not unique

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

Name of the service Point of contact and Slack channel Usage Running the service System Runbook Monitoring Documentation Source: https://tech.buzzfeed.com/better-docs-8fccb8ebd6a4

Slide 44

Slide 44

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

Slide 45

Slide 45

  1. Communication

Slide 46

Slide 46

Communication is NOT a soft skill

Slide 47

Slide 47

Communication is a core skill!

Slide 48

Slide 48

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

Slide 49

Slide 49

“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 50

Slide 50

Thank you!

Slide 51

Slide 51

Questions