COMPONENT LIBRARY

or templating and automation
in enterprise Web applications

Part I Web application development as a business process

The purpose of this series of articles is an attempt to consider and evaluate all the pros and cons of developing your web component library when developing enterprise Web apps. The first article of this series briefly describes the features of developing Web apps for business and formulates the main goals and principles of developing enterprise Web applications. This series of articles is intended for project managers, scrum masters, and web application developers working in the corporate sector.

A few words about the features of corporate Web applications

What is special about Web apps developed for corporate clients is the need to focus primarily on the fastest and most efficient implementation of functionality and not on meeting the requirements of the maximum number of users.

As a rule, the total number of users of a corporate Web app seems strictly limited and is determined by the size of the company (except Web stores). At the same time, the basis of the corporate Web application functionality is primarily the business process and not the preferences of the end-user.
So, the business process and the ways to improve it are the major priorities in the enterprise Web apps development. At the same time, the speed of digitalization (the implementation of the business process in digital form), the speed of optimization (increasing the efficiency of the business process), as well as the speed of expansion (the introduction of new opportunities into the business process) determine the effectiveness of Web app development.

The goal of developing a modern enterprise Web app is multiple (several times, rather than a fraction of a percent) optimization of business processes. Digitization of business processes is not a goal in itself but serves to increase the efficiency of the business, as well as (equally important) increase its agility to provide an efficient (i.e. fast, reliable, and inexpensive) way to make changes and expand the business.

Developing an app just to transfer a real existing process to a computer or phone is not optimal, it is not the best solution. It is far more efficient to develop an app in order to improve the business (increase profitability). And this creates great opportunities: the ability to see and fix broken processes, the ability to easily and visually add and debug new processes, etc. Yet to get these opportunities, it is vital to think about them in advance, to be ready for them, first of all psychologically and organizationally.

We can also mention that any business process can be perceived as a structured process of communication between people, and a corporate Web application is a modern tool that allows you to simplify and speed up this communication.

Web application as a reflection of business and business as a reflection of the Web application

Another distinctive feature of the development of a corporate Web application is that to ensure the efficiency of the business, the development process must be continuous and must not stop. That is to say, the business application must grow and evolve in parallel with the development of the business day after day from year to year. In this case, the application will be an accurate reflection of the real business process. Ideally, it is not the Web app that should be built around the business process, but the business process should be a reflection of the functionality of the business application, i.e. the Web app should be the core around which the business is built. In this case, as the Web app is a reflection of the business, so the business process will be a reflection of the application.

In other words, a minimal improvement in the application will automatically lead to a natural, evolutionary change in business processes at all levels, which is the key point in modern business application development.

IMAGE #1 The classic model for making modifications to a business process 

  1. ANALYSIS OF THE EXISTING BUSINESS PROCESS
  2. OPTIMIZATION OF THE BUSINESS PROCESS DIAGRAM (AS REPRESENTATION OF THE BUSINESS PROCESS)
  3. CHANGE IN THE ACTUAL BUSINESS PROCESS (USERS)
  4. MODIFICATION OF THE APP
  5. ADAPTATION OF USERS TO MODIFICATION THE APPLICATION

Improvements or changes are made to an existing business process, then transferred to the application, and then users have to re-adapt to the modifications in the application.

IMAGE #2 The modern model of making modifications to the business process

ANALYSIS OF THE APPLICATION (AS A REFLECTION OF THE REAL BUSINESS PROCESS)

OPTIMIZATION AND MODIFICATION OF THE APPLICATION (AS A DIGITAL BUSINESS PROCESS)

ADAPTATION OF USERS TO MODIFICATION OF THE APPLICATION

Analysis, improvements, or modifications are made directly to the application, which leads to the automatic and natural implementation of changes in business processes as a reflection of the Web application. Besides, in this case, it is quite easy to break down a complex and confusing business process into simple and understandable stages, which will lead to multiple increases in inefficiency. That is to say, once the application is improved, the business process improves automatically.

In the first case, when optimizing the business process, we, first of all, strive to improve the business process itself, as if computers did not exist at all. That means we draw a process on paper and think about how to improve it, and then, through oral or written orders to employees, we change the organizational process. Following that, we make the appropriate changes to the application. Briefly, the business process (as the organization of interaction between people) is primary, and the application is secondary.

Speaking of the second case, we evaluate and change directly only the application itself as a reflection of the business process. And the real business process changes as a result of changing the application to which users automatically adjust, which means we do not optimize the real organization of the work of people, but only modify the application! In this case, the application is primary, and the business process is secondary. So the application is the business process.

This model is typical and is easily implemented in new, young companies and startups not burdened by a set of historically established traditions and restrictions as well as a considerable number of employees.

Attempting to classify customers of enterprise Web apps

Small modern startups appear to be perfect objects for obtaining the most impressive results in modern business Web app development. At the initial stage, their business processes are quite simple and transparent, while the business processes, and the companies themselves, are very flexible and have not become ossified in the thousands of existing relationships with users and customers, they have not yet acquired hundreds and thousands of employees with vast experience. Yet at the same time, startups put forward very high requirements for the cost and speed of implementation, they do not own large funds and cannot wait long for the finished application. Moreover, it is extremely difficult for startups to plan long-term investments in development.
In contrast to startups, there are established companies that already have developed business processes. Such companies can be divided into two groups.

The first group includes companies that are demonstrating the first attempts at digitalization (i.e., their business is almost entirely carried out in manual mode using direct communication or recordings, even if communication or recording is done via telephones and computers). As a rule, these are traditional, conservative companies.

The second group includes companies that have already made successful attempts to digitize business processes, but at some point stopped the process of investing in the development and the existing solution, or it became obsolete and the cost of support and maintenance increased significantly (or simply became impossible) or the existing business application no longer corresponds to the current business processes (or there is simply no possibility of further development).

The task of developing the best solution for the third group of customers is particularly difficult, since at the time of application development there are already established models of business processes, models of user interaction, and even established elements of the user interface to which everyone is accustomed. In this case, applying even the smallest changes to business processes and even minimal changes to the user interface is very difficult and time-consuming.

Naturally, real customers may have characteristics from different groups, but the reason for the development of one or another enterprise Web application is one of three:

  1. a new business process with new users;
  2. an existing business process with existing users;
  3. an existing business process with existing users and an existing enterprise application;

Customers from different groups tend to put forward different requirements for the application. At the same time, regardless of the reasons for developing an application, the main goal remains to ensure business efficiency.

The main stages of developing an enterprise Web application

So, the main goal of developing a corporate Web application is to ensure maximum efficiency of business processes as well as to ensure application flexibility. Moreover, it is necessary to focus on this goal at all stages of the development of a Web application. 

At the moment, there are three main stages of working with a business application: initial development or development from scratch, ongoing development, and support or maintenance. Let us examine each stage in more detail.

IMAGE #3 Key elements of the application development process

Initial development, or development from scratch, includes a considerable amount of preparatory work, such as preparing and setting up runtime environments (test and main), setting up security and data access protocols, setting up continuous integration systems, setting up documentation systems, and work managers, setting up maintenance and support systems, digitizing business processes, developing a basic object model and basic services, setting up testing systems, preparing basic tests, developing a design and basic style elements, developing a prototype, etc.

Ongoing development involves working with a ready-made, working application and includes the following elements: digitalization (or digitization) of business processes, implementation of business logic in the application, development of the user interface, and testing.

Support and maintenance imply the operation of the support system (as a rule, in the development context, we are talking about the technical support system), the development and maintenance of accompanying documentation, user training, and bug fixes in the application.
Also, two particular processes can be distinguished separately: the process of technological update of the application and the process of updating the business model.

A technological update means primarily the update of modules, systems, services, and tools that make up the Web application to modern, most efficient, and secure versions (both technical and software tools and tools), for instance, versions of operating systems, services of cloud runtime environments, languages and development environments, version control tools, error control, instant messengers and more.

Updating a business model means changing existing business processes in order to optimize or expand, as well as the implementation of new business processes of the company.
Besides, both updating processes can be performed in two ways: periodically, in which a set of necessary changes is accumulated and implemented in one package, or continuously, in which all changes are implemented within the framework of daily current work in small parts from day today.
Today, global experience demonstrates that the latter method is the most effective and safe, although it requires some investment in current work.

The first classical approach is already very outdated at the moment since there is a very high risk that the accumulated volume of necessary changes will require a return to the initial development stage, which requires significant unforeseen investments and which takes a long time.

IMAGE #4 Timeline of the application development process

Thus, one of the main tasks in the development of a business Web application is to ensure a continuous and efficient process of ongoing development.

Enterprise Web app development as a business process

A business Web app development (like any other development of anything) is a business process in itself, from which efficiency is also required. It is impossible to develop an effective application by working ineffectively. That is to say, ensuring development efficiency is the main task in the development of a business application.
Development efficiency consists of three main indicators: development speed, development cost, and the development result quality.

Development speed means the new business functionality implementation speed (i.e., the time between understanding the need for a new business function and the actual availability of this function by end-users).
Development cost means the cost of implementing a new business functionality.

Development quality primarily means the reliability of the developed business functionality, which, first of all, affects the cost of supporting the application. For instance, as the number of errors in an application decreases, the downtime and cost of restoring the application, as well as the cost of fixing those errors, decreases. As the usability improves, the number of support requests decreases. By effectively structuring and optimizing business processes, it increases the efficiency of the application itself.

IMAGE #5: Correlation between Cost, Speed, and Qualitys

These parameters are interrelated. Each of the indicators affects the other. For instance, cost optimization leads either to an increase in development time and/or to a loss of quality. Lack of sufficient development time can very much affect the quality or require a substantial increase in the required resources. That is to say, a rapid increase in one of the indicators can result in a rapid drop in the other two. The goal of effective development is to ensure that these indicators are balanced and to ensure compliance with the goals and requirements of the customer.

Today, one of the most effective ways to increase the efficiency of application development throughout its entire life cycle is automation at all stages of development, which means any repetitive process that requires human attention should be automated whenever possible.

The next most efficient way to optimize development is templating, i.e. bringing similar repetitive processes to a single pattern for their further automation.
The use of templating and automation leads to a sharp reduction in development time and an increase in quality, i.e. provides high efficiency of enterprise Web app development.

Conclusions

  • The basis of the corporate Web application functionality is primarily the business process, and not the preferences of the end-user. 
  • The prime goal of developing a corporate Web application is to ensure maximum efficiency of business processes and to ensure the application’s effective flexibility. 
  • The Web application should be the core around which the business is built. In this case, both the Web application is a reflection of the business, and the business process will be a reflection of the application. That is to say, a minimal improvement in the application will automatically lead to natural changes in business processes at all levels. 
  • The business application must develop simultaneously with the business development day after day from year to year.
  • One of the main tasks in the business Web applications development is to ensure a continuous and efficient process of ongoing development.
  • The use of templating and automation leads to a reduction in development time and an increase in quality; provides high efficiency of enterprise Web app development.

Thank you for reading the article!