13
Alex Sologub Software Engineer ALTOROS Over-Engineering Causes, Symptoms and Treatment @altoros @mindyourhead_ 1

Over Engineering Slides - Schedschd.ws/hosted_files/cfsummit2017/ca/Over-Engineering Slides.pdf · @mindyourhead_ @altoros 4 Ignoring Data UX Analytics What pages did users open?

  • Upload
    phamnga

  • View
    217

  • Download
    2

Embed Size (px)

Citation preview

Alex SologubSoftware EngineerALTOROS

Over-EngineeringCauses, Symptoms and Treatment

@altoros@mindyourhead_ 1

@altoros@mindyourhead_ 2

Alex SologubSoftware Engineer

@altoros@mindyourhead_

Cloud Foundry

For the last several years I’ve been designing, implementing and consulting on complex applications with microservices architecture.My primary expertise lies in Web Development, Infrastructure Automation and Machine Learning.

Also, I’m strongly addicted to strategic boardgames.

Node.js TensorFlow

@altoros@mindyourhead_ 3

The Problem

???

@altoros@mindyourhead_ 4

Ignoring Data

UX AnalyticsWhat pages did users open?How long they were there?

How exactly do they use your software?

PerformanceWhat parts of the system are

under heavy load?Does this load change over

time?

Use CasesWhat use cases don’t depend

on each other?Can they be extracted into

separate product?

Source CodeWhat parts of the system

change together?Why does this happen?

@altoros@mindyourhead_ 5

Ignoring Data

Document Web App

Gateway

PDF Processor

Streaming API

@altoros@mindyourhead_ 6

Ignoring Data

Document Web App

Gateway

PDF Processor

Streaming API

2 secondson page

@altoros@mindyourhead_ 7

Too Early

Slows You DownMore apps to supportMore apps to deploy

More apps to test

Costs MoreDevelopment overheadInfrastructure overhead

Hurts BusinessWasted resources result in foregone profit

Upfront DesignMakes assumptions what

are likely to change in the future

Dominated by TechArchitecture pulls in technologies not required by domain

More ComplexArchitecture itselfbecomes more complexthan the domain

@altoros@mindyourhead_ 8

Huge Rewrite

Expectation Reality

@altoros@mindyourhead_ 9

Outdated Processes

04 01

0203

DesignWhat are the responsibilities of microservice?

DevelopmentWhat technologies do we require?How quickly developer can iterate?

TestingWhat microservices to test?

How to test them?

DeploymentHow frequently?

What exactly to deploy?

@altoros@mindyourhead_ 10

Cost Benefit Analysis

BenefitsQuick iterationsIndependent developmentCosts

DevelopmentMaintenanceComplexity

@altoros@mindyourhead_ 11

References

Robert MartinArchitecture: The Lost YearsThe Reasonable Expectations of Your CTO

Greg YoungStop Over-Engineering

The Long Sad Story of Microservices

@altoros@mindyourhead_ 12

Questions

altoros.com/CFLivewww.altoros.com blog.altoros.com

@altoros@mindyourhead_

[email protected]

@altoros@mindyourhead_ 13

THANK YOU