Good Project From Scratch

Pawel Lewtak Developer @ GOG.com @pawel_lewtak

  1. Disclaimer

  1. Analysis

What to build?

What problem to solve?

"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

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

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

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

Domain Driven Design

Event Storming

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

  1. Architecture

Monolith vs Microservices

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

Service Oriented Architecture

Clean architecture

Don't reinvent the wheel

You're not unique

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

  1. Tests

Test Driven Design

Tests !== Test Driven Design

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

  1. Code Review

  1. Continous ...

Continous integration

Continous deployment

Deployment !== Release (use feature toggles)

  1. Monitoring & Logging

  1. Metrics

Business Metrics

  1. Automation

If it moves, automate it!

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

  1. Documentation

Start with README

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

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

  1. Communication

Communication is NOT a soft skill

Communication is a core skill!

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

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

Thank you!