“Intelligence is the faculty of making artificial objects, especially tools to make tools.” – Henri Bergson
Everything in the world requires planning and design to help shape its structure, its look and feel, and its purpose. All objects are made of other objects that already exist in the world. Similarly, there is a design/style theory for Computer Science called Object Oriented Programming (OOP) that is composed of four main principles:
When programs become too complex to handle because a lot of new ideas keep getting added, OOP helps minimize the clutter and simplifies maintenance. How?
In Abstraction, separating details that keep getting repeated is useful for code-reuse and to understand where one should make the changes quickly instead of searching every part of the program. By using polymorphism, constructors have different versions of the same name with different number of parameters. There is also inheritance where variables of a parent class that exists in all subclasses are initialized in the constructor so its subclasses borrow those traits and do not need to be rewritten again if it stays the same.
Along with encapsulation to secure the variables, methods, constructors and implementation, OOP is a way to grow software or a Content Management System without making it more complicated. Any software, just like a business, starts really small. But with every reiteration and figuring out what works and what does not work, the program evolves and should become easier to maintain in the future even when it grows more complex.
Why Is The Beginning So Difficult?
The beginning is always the hardest part in the process. Why? Because the ideas are still very abstract until every experience, both positive and negative, give rise to solutions that prevent any more errors from occurring and new features that make the website become unique and custom made especially for the business. In essence, websites transform along with its owners.
Most people know a website as a way to advertise a business with a fancy design, blogging for contents and contact info. However, there are sophisticated websites that does a lot more tasks with multiple users registering for an account. The tools implemented in these types of websites can help in different cases. Examples of such websites are crowd funding, e-commerce, community or membership portals, informational, social networking, or media channels.
If you look closely, sites like Economist, Sprout Online and Wikipedia can be implemented using a CMS. All these sites are data driven and multimedia where multiple users update the contents without knowing how to code. The CMS tool itself creates new tools which come from the intelligence and knowledge of multiple people. Your website should grow along with your business. If growth follows change, yet your business is not changing, that says a lot about its progress.
From these ideas, what do you have in your business that is becoming too complicated to manage? With every growth and realizations, what do you think can help improve your business and website when it becomes cluttered and unmanageable? How are you handling your current website and business with the growing pains?