top of page

OOPS! Have I missed This OOPs?

  • Writer: Puneet Malhotra
    Puneet Malhotra
  • Nov 6, 2024
  • 5 min read

Updated: Jan 8


Why I am writing this ?


When i am writing this i am having 11+ years of IT experience. During this period I discovered the real functional/business significance of OOP concept.


Although we implemented and created many software applications but implementation of these concepts had been a challenging task. It was difficult to relate technical concepts with functional requirement for which we used to do coding.


About two years ago, I asked myself if I have really understood the OOP ? 🤔


The answer came "why I need to understand this as I am already building applications and fixing problems". If my job is going well in term of experience and money then why do I need to worry.


Fair enough and at one stance it feels right as well ! 🙃


However, a curious and skeptical mind always seeks more. It wants to explore.


So I opted exploration! 🔭


Identify the Problem


In the real world, businesses need task automations. Programming helps achieve this by translating business processes into blueprints (classes) that can be implemented repeatedly (objects).


While studying about Classes and Object concepts, we all have gone through below images or examples.


Despite this, many of us continue to struggle—not only with implementing these concepts but with fully understanding them.


Yes! But Why ? 🤔


The concepts themselves are straightforward, and these visuals provide a logical basis for classes and objects. So why is practical application still challenging?


🎯🎯 The answer lies in the gap between how we’re taught these concepts and the way they need to be applied in real-world scenarios.


So i decided to research on this topic.


Questions waiting for me:


  1. How to relate OOP concepts directly with business or manual task ?

  2. How a non-technical person ,manager or business analyst or QA or admin or I , can also understand the software architecture ?

  3. How to make decision making easy to implement these technical concepts ?


Answer i found


Relating software concepts to everyday life simplifies understanding, aiding memory and decision-making by making fundamentals more relatable.

Okay then, Lets Begin the Exploration 🎯


I went outside my house and started walking 🚶🏼 on road. I saw a small bakery shop there. Around 4 people including business owner had been working there.


Had i found my first case study? Yes!


Owner was managing all of his work manually hence i had full opportunity to realize OOP concepts in term business operation of that bakery shop.


First Challenge: How to start ?


Simple, let's talk with owner. I asked about his business journey.


He told me how he had grown up his business. From managing single handed to employed 4 people. He proudly said, i trained employee so well that they could manage business process even without his involvement.


As i heard word "Process" from his mouth something strike my mind and it was like i got my first hint💡


I said goodbye to gentleman and returned back to home.


His last words kept replaying 🔃 in my mind: "I trained the employees so well that they could execute the business processes even without me"


Without him work was getting done, means its a one sort of automation.


He trained the employee which means he must have established some process or SOP (Standard operating procedure).


😀 Gotcha!


Then Business Process is enabling him to :-

  1. easily onboard and train any new employee.

  2. distribute task among employee.

  3. get timely and effective work completion.

  4. manage business effectively and safely.

  5. easily track and get work report.


Architecture and implementation of his business process is deciding how securely his business can run without his involvement.


💡"So secret of his sauce is in business process"


Now Time to Connect the dots


My engineer brain started coming into the picture. I started wondering how he might have started.


I imagined myself in his position when he was the only person running the business. I assumed the need to hire two people: one as a chef and another for billing and attending to customers.


Name of Processes i assumed

  1. BakeryChef

  2. CustomerHandling


I made a list on a sheet of paper outlining the potential work processes that may be required.


Nice! This is somewhat giving similarity to the Class and their Methods that we used to write to code. Looks like I'm going right.


Time to add more challenge. Let’s consider the class constructor. Conceptually, a constructor prepares everything that a process needs before execution begins


I also mention the things to be ready before actual works starts:


After including "Things to keep prepared", the concept of a Constructor was easy to identify.


Hence my on-paper work process has Constructor as well. 😀


Perfect ! Dots are getting connected and i am able to map my hand written process on paper with actual structure of class


Next: But What is an Object


As per Technical Language: Class is blue print and object is instance or implementation of class.


👉🏾 Blue Print:

Aaha! I got the answer why Class is called as Blue Print. In my above case, i have not started hiring and the process is still on paper. There is no actual implementation yet.


My Process or Class is only telling me about the structure of work i am going to perform. Once i get the Chef and Accountant for billing, implementation will be started.


Class or Process will get life after its implementation and until then it just blue print or planning.


👉🏾 Object is Live Entity:

Here, my classes are still on paper. The real "objects" would be the actual chef and cashier, bringing the class (blueprint) to life.


💡This clarified why a class is seen as a blueprint, while an object represents its active form.


👉🏾 Attributes:

What are the attributes then ? How can i defines attribute of a Class ?


I repeated same question again, How can i defines attribute of a Process?


🤔 Now I was confused and found it a bit challenging, so I decided to review the concept again.

  1. Process is like a plan

  2. Object is an implementation

  3. Constructor is Making Things Ready before Actual process starts


😇 Since I couldn't find the answer, I came up with an additional idea to re-create a small SOP or process.


Experiment in search of Attributes:


I assigned my house-helper the task of collecting apples each day when the lorry 🚗 arrived.


Helper began doing it daily.


Next questions came in mind:

  1. How may apples he received ?

  2. At what time lorry arrived?

  3. Did I inform him of the minimum number of apples he needed to collect?


These questions are akin to variables that cannot be determined at the time of process creation. They represent a form of communication between the process and me.


There are two kinds of information:


  1. Provide (input to the process): Each day, he would ask for the minimum quantity of apples, and I had to provide that to initiate the execution of work.

  2. Receive (output from the process): After the execution, I needed to know the quantity he collected and the time of arrival.


So i re-write my process again to establish communication with process and called these variables as Attributes as these variables are providing aspect or characteristic of my process.




I got my answer for Attributes: Input/Output


Attributes or variables are essential to establish communication with any process.


On Way to Bigger Mission ✈️


Until now i have understood concept of Class, Object, Variables and Constructor.

Although I am on track now, but this is not the end.


What about Polymorphism, Abstraction, or Interface? Numerous similar questions were running through my mind.


Hence i decided to start digging more into it. Its time explore business thoroughly to establish logical connection between manual process and OOP Concept.


So i started one-by-one to understand each concept of OOPs in day-to-day life.


Click to Learn ➡️ concept OOP , Class & Object to create Work Process



Comentarios


Drop Me a Line, Let Me Know What You Think
or Any other Technical topic you want to understand in NonTech style.

© 2025 by NonTech-Techie

bottom of page