“We are all dependent on one another, every soul of us on earth.” – George Bernard Shaw
Nothing in the world is created easily. Every simple action is made simple by being dependent on something complex. One complex idea equals one truth. The truth is that no one is fully independent because everyone is dependent on someone else. Thus, your actions determine your dependencies.
If the things you are dependent on are well maintained, doesn’t that give you more control of your everyday actions? For example, we rely on supermarkets to buy what we eat. Then the supermarkets rely on deliverers to ship the food to their store. The deliverers rely on their truck to go places.
Trucks rely on automobile mechanics to keep it working. To stay energized, mechanics rely on food from supermarkets where the food is harvested by farmers who rely on deliverers to ship their crops to the stores. This is an example of a cyclical dependency.
For every action, there is an equal, but opposite reaction. Everyone is dependent on someone else to take care of the things that we are currently not doing for anything to get done. Why? If no one is harvesting the crops, then there is no need for a deliverer to ship food to the supermarkets. Contrary, everyone is back to the hunter and gatherer phase of maintaining their own crops from sun up till sun down and nothing else gets finished.
This is the reason why if everyone is doing the same thing, then no one is doing anything new. In terms of math, everyone is part of a whole circle = 360 degrees = 0 degrees where 360 = everyone and 0 = no one. Thus, everyone is dependent on someone (between 0 and 360) for us to be able to do the activities we want to do more efficiently.
How Is Dependency Used in Web Development?
In Software or Web Development, there is a design pattern called dependency injection that resolves all dependencies, which includes external services or modules, required by a program by “passing those dependencies to an object or client”. This pattern lets client applications use external modules without needing to re-implement the behavior of each one. While dependency makes things complex, but at the same time it helps simplify actions when writing custom functionality for your website or application.
The dependency injection takes care of all the connections and relationships so it results to a cleaner and simpler interface for developers to create something new. It allows developers to avoid writing spaghetti (messy) code that lacks architecture and structure. This is done by using abstractions or frameworks that already defines all the structures and a standardized way of developing an application.
Dependency injection follows two main principles:
- Inversion of control or dependency inversion principle – a form of decoupling aka interdependent between software modules where if the two parts are less dependent on each other, the more structured and easier it is to maintain it. It is a balance of being dependent on the abstraction of the relationship, but independent towards their own actions that make up the strength, coordination and information flow of the entire program
- Single responsibility principle – every class is given only one responsibility in the entire functionality of a program to keep it robust. A responsibility equals “its reason to change”. If everything stays the same, there would be no need for a change. But that is false because every action already equals a change when it calls a unique class that does its one job well, no matter what the conditions are
Similarly, if we leave the dependencies to be taken care of by the framework, we trust that any changes made will not negatively affect the performance and security of the custom applications built using those frameworks. In turn, we have better control of our own applications by not having to worry about every small aspect of the relationship among other dependencies because of the dependency injection.
How Is Dependency Applied In Business?
Every business is dependent on other businesses to do its activities. If a business is not dependent, that would mean the business is doing everything. But doesn’t that also mean they are doing nothing because who has the time to do everything when every task is naturally dependent on others.
Unless you have a diverse group of expert employees that covers all different activities, you are more likely missing support from knowledgeable people who can help you. Prime example is the use of frameworks to build websites and applications for your business. You may wonder how trustworthy and efficient are open source frameworks?
Think of it like how it works in the real world. People want to feel like they belong in a supportive community where they can ask any questions related to that topic. If a lot of people all over the world relies on you to help them build amazing things, would you purposely and publically create mistakes that result to others to stop believing in your worth?
A framework ecosystem brings like-minded individuals to keep improving the system. With each improvement, the framework gets less complicated and simpler to develop applications. Why? Because isn’t multiple minds better than one?
If you were the only one maintaining a system, won't the changes and improvements take longer to happen because humans naturally do not want to see mistakes with their own work? Of course, trust also depends on which framework you choose and that happens after trying them out. You must have a basis to validate the quality of anything. Without a foundation, you are left with mindless assumptions.
With balance, when a business becomes dependent on other businesses when dealing with activities that are not their focus, the more independent and simpler their own process gets. Isn’t it more fun to do something you love rather than do something you don’t know much about? For every dependent, isn’t there an independence quotient? Why?
“The success of each is dependent upon the success of the other.” - John D. Rockefeller, Jr.