How a Separation of Concerns Creates More Control
Before we jump into the specifics, let’s review a paradigm of computer science. Why? Because it’s a clear analogy that explains why MVC gives you more control—it’s called the Divide-and-Conquer paradigm. You already know the Divide-and-Conquer strategy. Now, here’s the definition as it pertains to computer science:
The Divide-and-Conquer paradigm solves a problem by breaking down one problem into two or more sub-problems of the same type. The sub-problems are recursively broken down until they become simple enough to solve directly. Finally, the solutions to the sub-problems are then combined to give a solution to the original problem.
How does MVC use the Divide-and-Conquer paradigm? At an abstract level, by separating a website's design and functionality. Let’s jump into the details.
Creating a website is a large project (problem). The MVC framework breaks the website down into separate sections (sub-problems):
1. The function (how it works) and;
2. The design (how it looks).
Now, the large problem of a website is split in two. You have more control over each section. But as you probably realized, this creates a third problem.
3. You need to reintegrate the function and design.
Within the MVC framework, the Divide-and-Conquer paradigm is known as the Separation of Concerns. Each part of the code that a website needs to run is separated into distinct sections, or concerns. This results in more control because each concern can be dealt with separately. For example, you can change the design without changing the function.
MVC stands for Model, View, and Controller. They are the three separate concerns of the MVC framework. Oversimplified, the three concerns of a website are the functionality, design, and integration. Now, let’s be more precise:
Model: The stateful part containing all data. It structures your data in a reliable form and prepares it.
View: The stateless part containing all utilities needed to work with the model. It displays data to the user in an easy-to-understand format, based on the user’s actions.
Controller: It’s best exemplified by having a UI to manage the data of the model using the utility of view. It takes in user commands. It sends commands to the model for data updates. And it sends instructions to the view to update the interface.
So the model is the functionality of the website. The view is the design or display. Then the controller integrates them so they work in harmony.
By dividing these complex concerns into separate sections, you gain more control over each section. Brian W. Kernighan helped develop Unix, and he said, “Controlling complexity is the essence of computer programming.”
How Both Developers and Marketers Gain More Control
But the increased control because of the technical reasons is only the beginning. Using an MVC framework affects how developers and marketers work together. This is critical because your people are more important than your tech. As Peter Chang said, “In an information economy, the most valuable company assets drive themselves home every night. If they are not treated well, they do not return the next morning.”
Are you responsible for a website? If so, you know there are two camps to deal with. There are developers, and there are marketers. They both want to succeed. But they are responsible for different aspects of the site. If you work with these teams, you will have seen the tension first hand. If you work in the same building, you may have overheard it.
Part of this tension comes because developers and marketers are doing different work. Developers add value by creating a technical solution that either works or fails. The effect developers have is obvious. But marketing is diametric. A marketing campaign changes surface appearances without changing the underlying reality. Let’s see how it plays out within a business.
Developers want to focus on the functionality of the website. They don’t want to be interrupted seven times a day. Requests from marketers to change some copy is distracting and menial. Developers want to deliver high-value improvements to the website. That’s difficult to do when you’re constantly being disrupted by marketers. Marketers need to realize that developers are high-level performers. Developers are more than machines that turn coffee into code.
Yet marketing is crucial to a business. Marketing matters because it works. Marketers know this. But developers can often downplay marketing’s importance to the organization. Marketers manage important campaigns, the sales funnel, and product launches. They want to make changes and test them quickly. But having to rely on developers to make small changes hurts marketing’s effort. And sure, technically we could teach marketers to become adept developers. But as Sir Charles Hoare, the developer of the quicksort algorithm, said, “Some problems are better evaded than solved.”
MVC gives marketers more control because the design is separate from the function. Marketers can make superficial changes without breaking the entire website. So, developers are comfortable giving marketers more control over the design.
So by using the MVC framework, you can give both your developers and marketers more control.
“The best way to predict the future is to implement it.”—DHH
You know that Microsoft technology is transitioning from ASP.NET Web Forms to ASP.NET MVC. And you have seen that the MVC framework brings more control over your website. It brings more control to developers and marketers. MVC is the future. And it’s a future where you have more control.
Kentico is here with the MVC technology. We’re here to bring you more control, from eCommerce to digital marketing. You can build an intranet or online community. If you’re ready to take advantage of the MVC framework, Kentico is here to empower you.