Skip to Main Content
We can divide software systems architecturally along two broad dimensions. The first is the tarchitecture or "technical architecture" and the second is the marketecture or "marketing architecture." I refer to the traditional software architect or chief technologist as the tarchitect and the product-marketing manager, business manager, or program manager responsible for the system as the marketect. The tarchitecture is the dominant frame of reference when developers think of a system's architecture. For software systems, it encompasses subsystems, interfaces, the distribution of processing responsibilities among processing elements, threading models, and so forth. In recent years, several authors, including Martin Fowler and Mary Shaw, have documented distinct tarchitecture styles or patterns, including client-server, pipeline, embedded systems, and blackboards. Our profession has begun to document how and when these various kinds of architectures are appropriate. It remains to be seen if we'll have the discipline to routinely leverage this knowledge.