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!
Super article Nikhil.
ReplyDeleteWe 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.
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
Delete