Dag Blakstad Blog

Skip to end of sidebar Go to start of sidebar
Groking Software Architecture

Software is becoming an increasingly important ingredient in our modern habitat, yet how is not well understood. This can partly be explained due to its mostly invisible nature. To grok software architecture, I am seeking knowledge about former industrial architects philosophy e.g. Le Corbusier, Toward an Architecture. Le Corbusier rejected the work of architects of his time, and pointed to engineers that leveraged modern architecture through basic geometric forms. This has some analogies to struggles in software architecture: Combining the conceptually simplest artifacts, and proven well-known patterns often works best, and where complexity is only allowed as a lack of any simpler solution. Trying to beat complexity is a fight against the capabilities of the human mind, patience and the funding bank account.

The purpose of software architecture is to serve and process information in a coordinated and predictable manner. Information originates from human mind, and is fed back often in a processed form. Software architecture is about providing this information in a useful, fluent and empowering way.

Architecture is there for a reason, a response to a unfulfilled need or opportunity to improve from unsatisfying/non-existent architecture. To properly address such needs a plan must exist. A plan should be made from an objective stating what business purpose it will fulfill. A plan for software architecture can not be filled with details. Details will emerge through the work, but should support the plan.