๐Ÿ˜From developer to architect

Things learned on the journey from developer to architect.

Task management

As an architect, you handle many small tasks with varying deadlines. Managing them can be challenging, so you need an effective process to stay organized.

I currently use Reclaim AI as a way to keep track of my tasks, their importance & deadlines.

Whenever I fulfill a scheduled task I only need to delete it from the calendar and Reclaim AI will schedule it again in an appropriate time slot. I've also configured Reclaim AI to give me a 15min break between tasks - this makes the created schedule a bit more robust when people call/message or I need to take break.

Learnings

  • Tradeoffs

    • First Law of Software Architecture: ยซEverything in architecture is a tradeoffยป

    • First Corollary: ยซIf you think youโ€™ve found something that isnโ€™t a tradeoff, it just means you havenโ€™t identified the tradeoff yetยป

    • There are no right or wrong answers in architecture; rather, itโ€™s always about tradeoffs

  • Structural design of software architecture

    • Determine what architecture characteristics are present within the problem space.

    • Do logical component analysis to understand the problem domain.

  • As an architect, you should think about the artifacts within the architecture in terms of components

    • Entity Trap: Do not consider every entity as a component, e.g. auction manager, item manager, bid manager. Instead consider workflows and identify actors.

  • Architecture styles

    • Monolithic: layered vs. modular

    • Microkernel

    • Event-driven: broker vs. mediator

    • microservices

    • service-based architecture

    • space-based architecture

  • Second Law of Software Architecture: ยซWhy is more important than howยป

    • Every architecture decision should be accompanied with a technical and business justification

    • Document decisions in architectural decision records (ADRs)

Vocabulary

WordSynonymsDescriptions

Architecture characteristics

Non functional requirements

As opposed to requirements that describe the systems behavior architecture characteristics describe the systems capabilities. Examples are: Reliability, Scalability, Performance, Availability

ADR

Architectural Decision Records (ADR) document architecture decisions.

Resources

Last updated