Monday, February 24, 2020

Engineering Mindset

Photo by Austin Distel on Unsplash

What is Engineering Mindset?

Engineering is a profession where complexity is encompassed to create something that is simple to use and enhances the productivity. Steve Jobs imagined iPhone, but it was his engineering team that enclosed all the complex technology into a device that is ubiquitous and easy to use.
Does anyone think about the complex calculations that go behind the design of the bridge when you are traveling over it? The complexity in the solution is hidden from the user and that is the work of an Engineer’s mind.

Engineering in Software

In other Engineering branches like Mechanical or Civil, typically design has a long cycle to make sure that the product turns out to be right. All the factors internal and external are given due considerations during building the geometry from scratch. The standards provide a significant amount of constraints while undertaking the design process.
These fields of Engineering also are seeing challenges with newer materials, changing technology, being different, breaking the boundaries, etc. But, the timeframe expectations in these fields is not as meager as in software.
Most of the times in software, the specifications are laid out very vaguely. There is little or no idea on what would be the amount of load that would be put on the components. So, what are the key tenets of an “Engineer’s mindset”?

Build Product

Constructing Products / Platforms is as much of a creative endeavor as much as it is a scientific process. The Engineers apply both dimensions of the thought process to conceive and build something that is important to the user and more importantly addresses the need.
In software, these needs tend to be different from consumer to consumer and it is important for the Engineering mind to think components, configurability, extensions, plugins, etc. to address as much of those nuances as possible. The thought process of thinking reusability, generic components, API, interfaces, etc. make the product more robust and easily adaptable to wide range of requirements.

Ability to Accept Uncertainty

There is a need to embrace uncertainty when building a Software Product. The specifications are bound to change, technology is bound to change, the design principles that were used may no longer be valid down the road. The engineers need to have the mindset to thrash what they have done and re-design the system or rewrite the piece of code because it was not optimal in the first place. Sometimes tinkering with the design or code will work, but many a times the developer must have the heart and the conviction to break down the component and rebuild it from scratch.

Pride in the handiwork

Engineers have a pride in the product that they create and thereby they strive for ensuring Quality of the Product. They take immense responsibility in ensuring that the functionality, performance and other technical aspects are tended to properly. They also care about the economic aspects and success of the product in the market.

Comprehend Product’s Future

Engineers have the ability to think about evolving the product in the future. They are aware of the changes that will make the product functionality better or the product more robust. The Experienced Engineers walk the thin line between getting the product today done and making the product better for tomorrow.

Technology Obsolescence

The need to tackle changing and updating technology in software. The well-engineered products / platforms need to be upgraded at various point of time. The Engineering mindset allows the developers to always stay one step ahead and plan for the technology disruption. They will plan for the most pragmatic approach well in advance and execute it.

Engineering @ Kanaka

We at Kanaka strive to build this Engineering Mindset into the Developers, Testers, DevOps, Admins, Analysts, Support and everyone who contributes towards building Products and Platforms. The ownership into the process of building Products / Platforms makes sure that the outcome is successful!


  1. Super article Nikhil.
    We have learnt while working with you that there are various facades of engineers. Engineers also need to connect with customers and end-users, it adds perspectives eventually assisting in building a better solution.

    1. Thanks Ambar. Cannot agree with you more on the connect with customers and end-users. Finally they determine the success or failure of the product