Mario Cardinal

"The real voyage of discovery consists, not in seeking new landscapes, but in having new eyes" – Marcel Proust

Thinking with objects

Leave a comment

In this post, I discuss the role of abstraction in my work as a software architect. I explain how the work of Grady Booch has influenced me to create abstractions with object-oriented technology. In my opinion, thinking with objects is the most important abstraction process for software architects.

Even though I am an entrepreneur, I worked most of my life as a software architect.  Just like the product owner trawls desirements incrementally, step-by-step, using a vision-centric and an emergent iterative practice, over the years, I learned to develop emerging architectures.

Software architects specify an emergent architecture in two ways:
•    By addressing non-functional requirements in small chunks and in a timely manner.
•    By designing structural abstractions through thoughtful reduction and organization.
The architect leads the design of the structural abstractions upon which the software solution is built by the team. An abstraction is a simplified description of a concept which captures the essential elements of that concept while suppressing all other elements. The boundary of the abstraction must be well-defined so that other abstractions may rely on it. This cooperation between abstractions relies on the contract of responsibilities that an abstraction provides. In programming, an abstraction is the process by which data and programs are defined with a representation similar in form to its meaning, while hiding away the implementation details. Abstraction tries to reduce and factor out details so that the development team can focus on a few concepts at a time.

One of the design process that has most influenced my work as a software architect is thinking with objects. In my opinion, thinking with objects is the most important abstraction process for software architects. One of the major books that enable me to think with objects is “Object-Oriented Analysis and Design with Applications” from Grady Booch. The first edition of this seminal book was instrumental in making object-oriented technology a practical reality.

Twenty five years later, I still follow the work of Grady Booch. The other day while returning from the DevTeach conference, I was listening the very interesting “On Computing” podcast. According to Grady, the story of computing is the story of humanity. I can only agree with this statement.

Author: mariocardinal

I am the co-founder of To-Do Studio, a software publisher offering online collective workspaces extended with automated guides. As an experimenter and an entrepreneur, I like to seize opportunities that emerge from the unexpected. Since 2004 (15 years in a row), I am a recipient of the Microsoft Most Valuable Professional (MVP) award. MVP status is awarded to credible technology experts who have shown a deep commitment to innovation, passion about technology and a strong community spirit. An experienced DevOps and Scrum practitioner, I have spent nearly 30 years designing large-scale information systems. I am the author of the book "Executable Specifications with Scrum" and the host of the Visual Studio Talk Show, a podcast about software architecture.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s