The concept of mass delivery is very enticing, but is it realistic and can it be achieved? We have not yet reached the demand that justifies that kind of delivery model, but we are quickly approaching it. With the amount of devices in the market and the technical enablement needs for consumers, it is only a matter of time until the market starts to standardize and come up with a structured way of delivering these mobile solutions faster and with higher quality.
In mass delivery, or what we call a factory model, we need to have a very structured process, module-based decomposition and specific input/output for every component we are building. The hard work is usually on integration and testing to make sure these pieces can all fit together at the end.
In mobile application development there are several models:
- Web browser–based applications, which let the user access applications as a web page on a web browser
- Native applications, developed for the specific OS (iOS, Android, Windows 8 and so on)
- Hybrid applications: cross-platform applications that can be built for various platforms while maintaining one code base. These types of applications run on a native container.
Apple has led mobile application development for the last several years on iOS. The application structure they use, which is based on the model view controller (MVC), has set the required level of discipline needed for mass delivery. Even with the added flexibility introduced under Android it is wise to follow MVC. This also applies to hybrid mobile application development.
So taking MVC as an assumption we can break our mobile applications into four major components:
- View (the user interface the user interacts with)
- Model (the business logic and data the user executes and processes)
- Controller (the processes that manage the sequence of events based on user interactions)
- Interface (the layer that allows the application to interface with enterprise services)
In a factory we have different types of work cells that specialize in specific areas. I would like to think of our factory as a structured factory where there are super cells that consist of multiple smaller, more specialized cells. So if we focus on the super cells we can map these to the top-level components, and we would have a view build cell, a model build cell, a controller build cell and an interface build cell. But these cells are not enough to completely manufacture our final product; we have to first design that product, so we need a design cell. We also have to integrate all the components we are building, so we need an integration cell And finally we need to test our product, so we need a test cell.
View component manufacturing line:
Model component manufacturing line: