Decisions Decisions

Decisions Decisions

Architecture isn't just the static "shape" of your software. It's the set of decisions that define it, enabling — or inhibiting — change, evolution and improvement over time.

It is also the decisions about how you verify, deploy, version, manage and monitor an application. Each of these decisions is a trade-off: there are no Best Practises. Some decisions can have a huge forward impact, and it isn't always obvious which ones!In this talk Dan offers several strategies to help you improve your architecture decision-making.

He won't tell you whether to prefer stability or uncertainty, DRYness or coupling, latency or throughput, manual or automated testing. That's up to you. But he might help you go into those decisions with your eyes open.

08145ecb1ce091d9dd3c328ea2a707fb?s=128

Daniel Terhorst-North

June 06, 2012
Tweet

Transcript

  1. 3.

    @tastapod Development – the trade-offs automated or manual build automated

    or manual testing test-driven or test-after development or test-first or test-whenever!
  2. 4.

    @tastapod Spike and Stabilize – a pattern Why do we

    do TDD? What is the opportunity cost of TDD? feedback from defects or feedback from users Invest in code based on evidence
  3. 5.

    @tastapod Architecture – the trade-offs monolith or components objects or

    functions synchronous or asynchronous threads or single event loop or actors or CSP
  4. 6.

    @tastapod Short Software Half-Life – a pattern Small, separate components

    Each component does one thing Hard shell, soft centre The message is the API identifiable boundaries for experimenting
  5. 9.

    1.5 cups flour 3 tablespoons cocoa 1 teaspoon baking soda

    1 cup sugar 1/2 teaspoon salt 1 tablespoon white vinegar 1 tablespoon vanilla 4 tablespoons melted butter 1 cup cold water Mix dry ingredients together. Make three wells in the mixture. In the first well, pour vinegar, in the second vanilla, and in the third, the liquid fat. Pour cold water over the whole thing and mix together well. Pour batter into a 9x9 pan, ungreased, and bake at 350 degrees for 35 to 40 minutes. chocolate cake @tastapod
  6. 11.

    @tastapod Deployment – the trade-offs automated or manual deployment vertical

    or horizontal scaling managed or in-house virtual or physical
  7. 12.

    @tastapod Dancing Skeleton – a pattern Get something – anything!

    – into production Full stack, with an interface Fire, aim, ready! Theory is only like practice in theory