I was recently reading about Immanuel Kant and how he transformed the philosophical world with his ideas and balanced approach to empiricism and rationalism. One of his main contributions was his work on morality, ethics and the ‘categorical imperative’.

In the context of morality, the ‘categorical imperative’ principle is defined as:

“a rule of conduct that is unconditional or absolute for all agents, the validity or claim of which does not depend on any desire or end.”

Encyclopedia Britannica

Kant defines it with a set of principles or laws – the first one being the law of universality:

“Act only according to that maxim whereby you can at the same time will that it should become a universal law.”

Immanuel Kant, Groundwork of the Metaphysic of Morals

In layman’s term, if I am about to act or make a decision about something, how would the world look like if everyone acted the same way as the universal law?

What does any of this have to do with technology? I recently wrote about how technical debt could be used in favor of the long term vision of your product. Somehow of a contradiction if you think about it. As technologists we are trained or used to think in terms of best-practices, sound architectures, and intentionally removing any technical debt in your product.

So I asked myself – Is there any universal law for technology architecture? Is there a ‘categorical imperative’ in the world of technical leadership and architecture that we must all obey to be ‘right’?

Architectural “ilities”

“An “ility” is a characteristic or quality of a system that applies across a set of functional or system requirements. So, performance is an “ility” because it is applied against some of the functional or system requirements. Anything that can be expressed in the form “for a set of functional or system requirements, the system must fulfill them this way (this fast, this reliable, etc.)” is an “ility.”

http://www.softwarearchitecturenotes.com/architecturerequirements.html

It’s the job of the software architect to collect, define and validate these characteristics. There are hundreds of these:

  • Scalability
  • Availability
  • Reliability
  • Maintainability
  • Compatibility
  • Configurability
  • Portability
  • Interoperability
  • Auditability
  • Traceability
  • Accessibility
  • Etc.

… and the list goes on and on. So what’s my core ‘ility’ (if there is one)?

Big Picture Thinking

But that’s not an ‘ility’! Well, neither are Security & Performance, yet they are considered ‘ilities’ of a well-designed system (I purposely left them out of the list to not spoil the surprise).

Actually, the real ‘ilities’ I chose were: Adaptability & Evolutionary. Those are the system characteristics, but how you get to those, taking a step back and defining the main approach is how I got to Big Picture Thinking.

It may be that I lean a lot on a Product Management approach, and it’s how I approach most projects. Others might have different architectural priorities, and that’s totally valid.

The reason why big picture thinking is so important to me is twofold:

  • It is a keystone habit / best-practice
  • It transcends the technology discipline

As a keystone habit

A keystone habit is defined as:

“small changes or habits that people introduce into their routines that unintentionally carry over into other aspects of their lives. They are habits that produce something of a ripple effect – in which one little positive change has the potential to produce other positive changes in all different parts of someone’s routine.”

https://www.gen-i.co.uk/index.php/2019/11/27/why-you-need-routine-in-your-day/

For technology – thinking the big picture forces us to make better decisions considering other variables like business goals, product lifespan, roadmaps, budget, inter-organization dynamics, etc.

Transcending technology

For user experience and creative – forces them to think beyond the visual design requirements. In the digital/web world, creatives are much more than visual artists, they are solving for technical challenges of the web: accessibility, performance, responsive design, etc.

There’s another post I wrote that goes into detail about this: What UX & Design Should Know About Web Technology.

For project management and account – they are forced to not just think of projects as something to monitor and execute, but be partners to technology, embedding themselves within the team and understanding why sometimes a decision needs to be made for the long-term benefits and not just the immediate need.

You can extrapolate these to any other group or discipline beyond technology.

Conclusion

Core principles, tenets and beliefs are personal and dependent on context. Personally, I believe that if everyone thought and followed big picture thinking, the world would be a better place 😅.

I’m curious to see what others consider to be their universal law, if they have any. For the sake of the exercise, try to force yourself to choose one.


Francisco Martinez, MSc.

Los Angeles, CA - VP of Technology with over 18 years of experience in software development, enterprise architecture, product & delivery, and leadership & management. Major in Computer Science & Master of Science in Telecommunications/Electronics.