97 things Flashcards
Be real world aware and model solutions so
checks bounce, letters are lost, payments delayed.
distributed systems bring new inconsistencies.
Say bye to predictive call stack arch. Respond to events in any order.
Focus on boundaries and interfaces
Avoid slicing through regions with high info exchange. Have bounded contexts and context mappings as in DDD. Create this context map
Context is king
Choose DB on tank. People forgot that firing gun crashed the onboard DB. So boot time was crucial.
Talk the talk
Jargon important in any profession. Look for enterprise arch patterns, application arch patterns, integration patterns, design patterns.
Event driven arch, SOA, Resource oriented arch, pipeline arch.
Use the jargon and identify them when come across one
Engineer in white spaces
Drawings usually contain boxes on components but not details about network usage between them. Work on SLA on same. Versioning, uptime, payload, traffic etc
All about performance
Perf of people who build the systems as well. Intuitiveness of app makes people do work faster.
Also what about a nightly job taking more than 24 hrs
Skyscrapers aren’t scalable
civil engg teaches us to define good interfaces to attach components, building stands up all the time as it is built.
However nobody starts to build without knowing how it will look in end. Floors are not added after the fact. Hence they have a waterfall model.
Value stewardship over showmanship
Take responsibility and care of another’s property. Be careful with resources of company since they making you play with their money and time.
Understand business domain
To communicate with execs, understand company goals, design for appropriate flexibility. In insurance if you knew industry was moving towards pay per go type of insurance.
Try before choosing
Be open to prototyping instead of pushing a solution. Developers can work on frameworks and libraries and then make best decisions because best decisions are made in ‘hindsight’ :)
Reuse is about people and education, not just design
Have culture of sharing and pushing existing stuff rather than teams working in silo and re implementing stuff.
Brainswarming instead of brainstorming?
Brainstorming may not be most effective and is mentioned in papers. For one that extrovert personalities can dominate. For other that ideas get lost or misunderstood.
Brainswarming is where goal is given and resources are given and people individually or in pairs connect the two. Merging all results provides far many options and good ones.