The skill of writing is to create a context in which other people can think – Edwin Schlossberg. One of my aims in creating this blog is to create a context for thinking about distributed software architecture. To that end, I begin with some context about this blog and me.
I want to make a contribution to the ongoing discussion about designing, building, and operating distributed systems. That discussion provides the focus for this blog, and I don't intend for the conversation to stray very far from it. I'm mainly concerned with systems that are distributed to enable people to work together towards a common goal. In the jargon of software developers, these systems are usually called business systems and are often developed by people called corporate IT developers using unfashionable languages (such as BASIC and COBOL).
My approach to designing distributed systems is founded in a conceptual view of how best to model business systems. Most business systems can be decomposed into people, processes, documents, actions, messages, services, and reports. This blog will be primarily devoted to exploring the interrelationships of those entities and how we translate them into executable code. One point I want to make clear is that those entities don't translate directly into either an object-oriented model or a relational database model. Understanding the limits of those two common ways of looking at software design is crucial to building successful business systems.
I came to the field of software development in a quite roundabout fashion. In college, I studied English and History and had only a bit of exposure to computing (BASIC, FORTRAN, and Assembler). My first career was outside of computing, but I became enamored of the creativity that was possible with personal computers. I made a slow transition from user to developer to architect. I've found that my background gives me a perspective on software development that is distinctly different from the norm in our community. Too many of us suffer from a lack of historical and social understanding and that infects much of our software with a short-sighted and almost misanthropic attitude. What you read here will be influenced by my background in the liberal arts and my experiences as a developer, consultant, system administrator, and "software architect". I work mostly on the Microsoft platform, although I do a fair amount of work integrating with other platforms.
Finally, I want to take this opportunity to thank Aaron Skonnard and the rest of the PluralSight folks for their kindness in hosting this blog.
Posted
Apr 29 2005, 06:56 PM
by
john-cavnar-johnson