Video: The art of destroying software - Greg Young

April 15th, 2019

(https://vimeo.com/108441214)

 

[ ] Paper: waterfall - Winston Royce

[ ] Paper: Big Ball of Mud - Brian Foote, Joseph Yoder

[ ] read: alan K

[ ] read: Carl Huwitt

-> learn erlang to learn paradigm for better OO

Video: The art of destroying software - Greg Young

Greg Young - The art of destroying software

 

 

Paper: waterfall - Winston Royce

You should read the original waterfall pater.

it describes agile

paper describes waterfall on the first page

then goes on to say it does not work

"waterfall is the optimal way, but it does not work"

 

 

 

 

Paper: Big Ball of Mud

"this is inevitable"

"this is optimal"

you need to create small pockets

 

 

 

 

Optimise from the beginning to delete code

 

 

 

 

Erlang

combination of small programs

never change code, only rewrite

 

 

 

 

refactor

= change code keep tests

= change tests keep code

 

 

refucktor

= change code and tests

 

 

 

 

rule of thumb

microservice < 1 week of rewrite

otherwise: flag = high risk area of code

 

 

 

 

technical debt is not bad

debt is not bad

if technical debt starts acumulating, delete it

 

 

"microservices" done right

read: alan K

read: Carl Huwitt

 

 

 

 

NO 18 month prohect

try a 1week project

- better estimation

- better velocity

 

 

1970 write small maneagable

 

 

 

 

philosophy

- unix

- erlang

- actors

- microservices

- soa

 

 

 

 

go learn Erlang

 

 

 

 

cowboy/fireman hat

"wear the hat when working on prod issues"

someone comes along to ask you something

 

 

 

 

challenged teams

every time you add an abstraction

create an options-pricing model on that abstraction

and forecast the probability that someone actually needs it

and i want you to measure yourself

and then compare to the null-hypothesis

not much better than dartboard

 

 

 

 

Q&A

small amount of state for each program

 

 

can be in same database

 

 

avoid integration through data when possible

trade-off:

- nasty coupling

- performance

 

 

weak schema

hybrid schema

-> some required fields + weak

 

 

protobuffs