#1

Conway’s Law

“organizations which design systems … are constrained to produce designs which are copies of the communication structures of these organizations.”

So true.

#2

Dev-Ops is awesome

But also a lot of work that’s hard to anticipate.

#3

Clearly defined interfaces clearly need to be tested

We didn’t test ours, and it took other dev forever to track down a bug in our system.

#4

Deal with the bugs you have, not the ones you might encounter

Your software will never handle all possibilities. Invest the time into good monitoring, rather than anticipating every possibility.

#5

How to set up a robust environment

  1. Set up a dev, test and production stage.
  2. Set up continuous deployment into all stages.
  3. Set up a monitoring system.
  4. Start coding.

#6

Your system doesn’t need every bit of new technology

And it probably doesn’t have “Big Data”.

#7

MonolithFirst

As Martin Fowler writes:

you shouldn’t start a new project with microservices, even if you’re sure your application will be big enough to make it worthwhile