Influence of key elements of the functional approach. Functional and process approach to management. Functional and process approaches to management

The effectiveness and quality of managerial work are determined, first of all, by the validity of the methodology for solving problems, i.e. approaches, principles, methods. Practice is blind without good theory. However, only some approaches and principles are applied to, although more than 14 scientific approaches are currently known:

  • Complex
  • Integration
  • Marketing
  • Functional
  • Dynamic
  • Reproductive
  • Process
  • Normative
  • Quantitative
  • Administrative
  • Behavioral
  • Situational
  • Programmatic approach

A complex approach

A complex approach when making management decisions takes into account the most important interrelated and interdependent factors of the external and internal environment of the organization - technological, economic, environmental, organizational, demographic, social, psychological, political, etc.

Within the framework of an integrated approach, two specific approaches are distinguished:

  • search - oriented towards the future and determining the state of the control object in the future, provided that the current trends of its development are maintained;
  • target - planning purposeful change of the control object in the future, taking into account possible ways and the timing of the transition of the controlled subsystem from the current state to the desired one.

Integration approach

An integrative management approach aims to explore and strengthen the linkages between:

  • separate subsystems and elements of the management system;
  • stages of the life cycle of the control object;
  • vertical control levels;
  • horizontal control levels.

Integration is the deepening of cooperation between subjects, management of interaction and interconnections between the components of the management system.

Marketing Approach

The marketing approach provides for the orientation of the control subsystem in solving any problems on the consumer:

  • improving the quality of the object in accordance with the needs of the consumer;
  • saving resources for the consumer by improving quality;
  • saving resources in production due to factors of the scale of production, scientific and technical progress (STP);
  • application of the management system.

Functional approach

The essence of the functional approach to management lies in the fact that the need is viewed as a set of functions that must be performed to satisfy it. After establishing the functions, several alternative objects are created to perform these functions, and the one that requires the minimum total costs for the life cycle of the object per unit of useful effect is selected.

Dynamic approach

With the dynamic approach, the object of management is considered in dynamic development, cause-effect relationships and subordination, a retrospective analysis for five or more years and a prospective analysis (forecast) are performed.

Reproductive approach

This approach is focused on the constant resumption of the production of a product / service to meet market needs with less than the best technological object for this market, the total cost per unit of beneficial effect.

Process (procedural) approach (1960s)

According to the process approach, management is a series of interrelated and universal management processes (planning, organization, motivation, control and connecting processes - the communication process and the decision-making process). The management calls these processes management functions, and the management process is the sum of the listed management functions (Fig. 1.

The "father" of the process approach - Henri Fayolle - argued that "to manage means to predict and plan, organize, dispose, coordinate and control."

Figure: 1. Interaction of management functions

Normative approach

The essence of the normative approach is to establish management standards for all management subsystems. The standards should be established for the most important elements:

  • target subsystem;
  • functional subsystem;
  • supporting subsystem.

Quantitative approach

The essence of the quantitative approach lies in the transition from qualitative assessments to quantitative using mathematical statistical methods, engineering calculations, expert assessments, scoring systems and others. You can control numbers, not just words.

Administrative approach

The essence of the administrative approach lies in the regulation of the functions of rights, duties, quality standards, costs, the duration of the elements of management systems in regulations.

Behavioral approach

The purpose of the behavioral approach is to help the employee realize his own capabilities. The main goal of this approach is to improve the efficiency of the firm by increasing the role human resources... Behavioral science will always improve efficiency as individual workerand the firm as a whole.

Situational approach (last quarter of the XX century)

The situational approach states that different methods management should be applied depending on a specific situation, since an organization is an open system that constantly interacts with the outside world (external environment), therefore, the main reasons for what happens inside the organization (in internal environment) should be sought in a situation in which this organization is forced to act.

The central point of the approach is situation - a specific set of circumstances that affect the organization's activities in this moment time. The situational approach is associated with a systems approach and attempts to link specific management practices and concepts with specific situations.

This approach aims to directly apply new scientific methods to specific situations and conditions.

Here "situational thinking" is important - understanding which techniques will be more effective for achieving goals in a given situation. The main difficulty is that situational processes are numerous and interrelated and they cannot be considered independently of each other, so it can be quite difficult for a leader to determine the knowingly correct method.

The situational approach is designed to link specific techniques and concepts of management with specific specific situations, to study situational differences between organizations and within organizations themselves.

The situational approach theory is based on four main points:

  • the leader must be familiar with effective means professional management... To do this, you need to understand the management process, the characteristics of individual and group behavior, possess the skills of system analysis, know the methods of planning and control, quantitative methods of decision-making;
  • the leader must anticipate the likely consequences of applying each of the management methods in a given situation, which always have both strong and weak sidesas well as certain comparative characteristics. For example, you can increase wages all employees for additional work, which will undoubtedly increase their motivation for some time, but it is necessary to compare the increase in costs with the benefits received; perhaps such a measure would be ruinous for the organization;
  • the leader must be able to correctly interpret the situation, identify the factors that are most important in the current situation, determine the possible effect of changing certain variable indicators of the situation;
  • the leader must be able to link specific techniques that have had the least negative effect with specific situations to ensure the greatest effectiveness in achieving the goals of the organization.

The method of situations is the basis of the teaching methodology at the most prestigious business school in the United States - Harvard.

Systems approach

With a systematic approach, any system (object) is considered as a set of interrelated elements that have an output (goal), input, connection with the external environment, feedback. In the system, "input" is processed into "output". The most important principles:

  • the decision-making process should begin with identifying and clearly articulating specific objectives;
  • it is necessary to identify and analyze possible alternative ways to achieve the goal;
  • the goals of individual subsystems should not conflict with the goals of the entire system;
  • ascent from the abstract to the concrete;
  • unity of analysis and synthesis of the logical and the historical;
  • manifestation of different quality connections and interactions in the object.

Programmatic approach

Programmatic approach is based on clearly defining the goals of the organization and developing programs to optimally achieve these goals, taking into account the resources required to implement the programs.

Even at the stage of formulating the desired goals, a generalized model of organization arises. Then alternative options for management decisions are considered, one of them is selected, and the development of programs begins. At each stage of the program, the strategic goal of the organization is subdivided into sub-goals, the main tasks and priorities for their solution are highlighted, which are linked to material, labor and financial resources... Assessment of the results of the stage implementation is carried out according the following indicators: main result, volume and time.

For the convenience of linking all stages of the program implementation, it is advisable to draw up a tree of goals, where the root of the tree is the main goal of the program ( AND), the first level of vertices are subgoals of the first level ( IN and FROM), then there are the vertices of the second level ( D and E) etc.; the lower levels of the goals tree are the means and methods of achieving higher-level goals (Fig. 2). After building the tree of goals, the program is drawn up in the form of a directive - a document of the manager, mandatory for all performers.

Figure: 2. Goal tree

The progress of implementation of the program adopted for execution is constantly monitored, since at each stage new, previously unaccounted for factors may arise.

Russia has accumulated significant experience in program-targeted management, but not all programs were implemented in full and on time due to insufficient control, low level of responsibility, lack of proper motivation for the participants in the implementation of these programs.

Operations management process-oriented management.

The functional approach is that the activities of the organization are presented in the form of a set of functions assigned to functional units in the organizational structure. This approach identifies the organization's capabilities and establishes - what do we have to do - divisions and performers within the framework of their functions.

Functional specialization, as a rule, ensures a high quality of performance of individual work, however, it requires constant coordination of the activities of departments and employees, whose goals may not coincide. The need to resolve the emerging contradictions between specialized units increases the burden on management.

With a functional approach, in order to perform a common task, it is necessary to work out the mechanism of interaction between the functions assigned to the departments in relation to the business process and intensively coordinate the actions of the participants.

With the process approach, the activities of the organization, departments, managers and direct executors are initially aimed at obtaining the final result and are perceived by them as a set of interrelated business processes that ensure the achievement common goal - implementation of the main operational function of the organization. A specific technology for performing each process and operation is determined - how it should be doneto satisfy the consumer of its results - external or internal client.

When implementing the process approach, it is necessary:

    Orient the activities of the organization, its departments and employees to the satisfaction end consumer and consider it as a set of business processes. This forms an appropriate culture of perception of tasks in the organization.

    Determine the customer and owner of each business process.

    Regulate business processes, i.e. describe the sequence of operations, responsibility, the order of interaction between the performers and the procedure for making decisions to improve the business process.

    Determine the key indicators of each business process, allowing you to assess the result of its implementation and the impact on the results of the organization as a whole.

The process approach and the development of related cross-functional and inter-organizational integration allows:

    target departments and employees to meet customer requirements;

    more effectively delineate authority and responsibility using delegation of authority;

    reduce the dependence of the results on an individual performer;

    identify sources of costs and reduce them;

    reduce the time for making management decisions;

    reduce the amount of cross-functional coordination (operational leadership).

With the process approach, the manageability of the organization increases, the influence of the human factor and costs decreases, and most importantly, there is a qualitative change in the organization itself and the formation process-oriented organization, in which the entire team is a conscious participant in the continuous process of activity associated with the final result of the production of the product and the satisfaction of the consumer.

Integration of activities. Operational Integration Policies and Operational Specialization

The development of specialization, contributing to the emergence of high qualifications of employees and the quality of work performance, leads to differentiation, i.e. increasing the degree of independence of individual employees and functional units in the organization. However, in order to achieve common goals, differentiation requires appropriate integration (ensuring the necessary interaction) between functional departments and employees. This problem is solved by the management of the organization, providing the necessary degree of interaction between the performers of independent areas of work to achieve the overall goals of the organization.

Integration of activities is usually considered at four levels: operational, functional, cross-functional, and inter-organizational.

The first three levels (operational, functional and cross-functional) are referred to as internal integration. However, it should be noted that the functional level already presupposes a certain independence of performers in their interaction with the external environment, therefore, some presence and external integration. The interorganizational level of integration is referred to as external integration.

At the operational level integration is provided for individual operations and functions. For instance: Suppliers- transportation - warehousing - handling - warehousing - transportation- Buyers... Each of the structural divisions has local goals and indicators for assessing the results of activities, which are largely isolated from the assessment of their impact on the conditions and results of activities of other divisions or services of the enterprise. Integration at the operational level is provided by activity coordination systems: operational maps of processes, description and highlighting of business processes, systems of administrative coordination of activities vertically and horizontally (for example, Gantt charts).

At the functional level integration combines related operations and functions. Limitedly integrated areas emerge, such as purchasing management, inventory management, warehousing and transportation, manufacturing, sales and distribution management. Their partial integration leads to the formation of a list of main functions and functional areas. For instance: Suppliers- supply - production - sales- Buyers... There are still local goals, objectives and performance assessment indicators that are more consolidated than at the operational level of integration. With advanced integration within each consolidated function and functional area (supply, production, sales), there is a functional isolation of various services and functional areas from each other. Therefore, preferences of the goals of the controlled subsystems to the goals of the control system may arise and the overall efficiency may decrease.

At this level of integration, functional areas are administratively coordinated and functional unit budgets are controlled. The main goal is to control the use of resources and ensure the optimal level of stocks within the framework of cross-functional coordination. However, in general, the cost system is focused on functional activities and does not take into account cross-functional components, therefore, the volume of resource flow is often difficult to measure and control, and therefore to determine the cost of the capital associated with it.

At the cross-functional level integration is developing, which makes it possible to concentrate the efforts of all structural divisions and services of the organization on obtaining the final result. The works and their performers are united around the final result.

Cross-functional integration tools are MRP, JIT, ERP systems. These systems make it possible to more fully coordinate the activities of employees and various departments, encouraging people to interact in a single information system and forming a common view of the business process. To overcome structural contradictions in the organizational structure, departmentisation by results is used.

However, in modern conditions, cross-functional integration is not enough, its presence is a necessary, but not sufficient condition for successful work organization, therefore requires the use of inter-organizational (external) integration.

Inter-organizational level integration proceeds from the fact that the stability of an open system is ensured not due to internal functional hierarchy, but due to developed interaction with the external environment. Understanding the impact of external factors can lead to greater predictability in the behavior of an open system and to a reasonable ordering of the functioning of its constituent parts.

At this level of integration, inter-organizational interaction is realized, as a result of which the efforts of enterprises connected with each other by common business processes or joint transactions are combined.

The most important element of the mechanism for strengthening interorganizational interaction is the information space or information flows, which make it possible to establish such relationships in which it becomes known exactly what demand is generated by the consumers themselves, which allows the organization to more accurately plan its activities and improve the accuracy of forecasts. In addition, building relationships with external links is one of the ways to ensure the sustainability of the supply chain.

Traditional vertical integration can also be used, when the enterprise concentrates all or almost all of the production necessary for the manufacture of the final product. However, the effectiveness of this integration tool is known to be limited by the scale of its manageability.

The tools for the development of interorganizational relations are the formation of partnership relations, strategic alliances, contractual interactions.

With the development of information technology and telecommunications, the provision of interorganizational integration is automated and develops into machine integration (Machine-to-Machine). Automation of inter-organizational processes and their subordination to certain rules of doing business reduces the need for human intervention at every stage of activity.

When managing an organization, one, several or all of the considered levels of integration of activities as an object of management can be used. Depending on the considered level of activity, we can talk about the management of operations, functional areas, cross-functional or inter-organizational interactions.

The effectiveness of the management of individual functional areas depends on the quality of the organization at the operational level of the integration of activities. The basis of inter-organizational integration is inter-functional interaction in individual organizations, and the effectiveness of this interaction is ensured by the quality of the organization of functional work. The process approach to management makes it possible to ensure the operation of a network of business processes of an organization without separating functional and cross-functional levels.

The enterprise can conduct a policy for integrating operational functions or specializing in operational functions.

Operations Integration Policy lies in the fact that when implementing the main operational function, the organization also focuses on the functions that ensure the functioning of the operating system, i.e. strives to perform as many of these functions as possible on its own.

The advantages of such a policy are: centralized control; the possibility of increasing the reliability of the system until problems arise associated with the scale of controllability; reducing the cost of attracting contractors and subcontractors.

However, the refusal to involve third-party performers and centralized control leads to an increase in the supporting subsystem of the operating system, which can lead to the development of a cumbersome and ineffective organization from the point of view of manageability, the diversion of significant forces from performing the main operational function.

Operational Function Specialization Policy consists in specialization in one area of \u200b\u200bcompetence and the transfer of auxiliary operational functions to other performers (counterparties) located outside the organization.

Outsourcing Is the transfer of production of auxiliary activities to third-party organizations (counterparties). In practical terms, this is the cooperation of various enterprises producing products and services based on the specialization of each of them in one type of activity, which allows each participant in the process to concentrate efforts and resources on this activity and contributes to the achievement of better overall results.

For example, the manufacturer of the final product may abandon its own production of any assemblies and parts and transfer their production to an enterprise that manufactures these components for many consumers. Not to deal with the issues of packaging and shipment of their products, but to transfer this work to an independent specialized company, which forms consignments for shipment, packs, ensures the delivery of goods to anywhere in the world, solving all the necessary procedures for customs and other clearance. Give up your own transport facilities and entrust transport services to another company. Refuse to maintain a division for the repair of technological equipment and use the services of specialized firms. Many activities such as catering, cleaning, building and maintaining computer and security systems have become entirely outsourced.

This allows:

    to concentrate efforts on the implementation of the main operational function;

    reduce efforts in the field of solving auxiliary problems;

    use the main competencies (products) of high quality contractors and subcontractors, which provides an opportunity to improve the quality of their products;

    reduce the number of employees, increase the productivity and manageability of the organization.

However, such a policy may exhibit the following disadvantages:

    loss of control over part of the process of creating their products;

    dependence on suppliers;

    risks associated with violation by counterparties (suppliers) of their obligations.

When deciding to transfer support functions to counterparties and subcontractors, the following factors are usually assessed:

    available production facilities;

    special knowledge and own competencies;

    the level of development of the quality management system in the organization;

    characteristics of demand that are important for the release of a product or the provision of a service;

    the ability to reduce costs.

Operations specialization and outsourcing policies were introduced later than the operational integration policies, but they are widespread today. As a rule, organizations focusing on the main operational function and using outsourcing for this purpose achieve higher quality results.

Today the functional approach plays important role in biological and social sciences, in particular in economics, where the functioning of any object, including a brand, is associated with the manifestation of its general properties in environment... Thus, each brand, along with the presence of internal connections between its attributes and associative elements, is characterized by external relationships and relationships - functions. The interpretation of branding as a trademark management process in order to form and develop a brand that can create new value, influence consumer consciousness, protect and expand market share, that is, implement certain functions, suggests that the role of a functional approach in this aspect is undeniable and is a fairly urgent scientific and practical task of its analysis.

The work of domestic and foreign researchers D. Aaker, P. Doyle, G. Kunz and S. O'Donnell, Y. Markov, M. Mescon and others is devoted to the problems of the functional approach in scientific research, but it should be emphasized that the role of the functional approach in determining the effectiveness of certain methodologies and specific studies is rather reduced, there is a discrepancy in the classification system in the functional aspect.

The underlined problems determined the objective need for further research, determined the relevance, goal and objectives.

The scope of the functional approach in modern economics quite extensive. He found the broadest application in management, marketing, innovation activities.

In management, as you know, the allocation of various functions in the management of an object and their analysis laid the foundation for the concept of "scientific management". The functional approach serves as the basis for the formation organizational structures management of enterprises and organizations. As follows from the works of well-known specialists in management, it is the management functions that determine the structure and content of the management system, determine the essence of management activities at all levels of management.

In marketing, the functional approach made it possible to systematize the concepts of the marketing complex and the marketing process through the isolation and analysis of marketing functions. Marketing itself in most scientific and educational publications is revealed, studied and taught as a system of marketing functions: market research, product development, demand generation, pricing, distribution and promotion. Namely, on the basis of the functional approach, the overwhelming majority of marketing services enterprises, the management process is scientifically substantiated life cycle goods.

In innovation, the key role of one of the methods of the functional approach in the design of any objects is assigned to the functional-cost analysis (FSA), the method of a comprehensive technical and economic study of the functions of an object, aimed at optimizing the ratio between the quality of performance of specified functions and the cost of their implementation.

The role of the functional approach is to break down the barriers between different branches of knowledge, focus on the generality of functions, in its complexity. It is the complexity of the functional approach that caused its widespread use in the study of economic phenomena, in particular in the analysis of planning processes, accounting economic activity enterprises and industries. It was the study of complex economic systems that acquired the features of cybernetic science, took shape as its special direction - economic cybernetics. Within the framework of this direction, it became possible to develop theoretical ideas about the processes of transmission and processing of information in economic systems.

Thus, the functional approach permeates all spheres of human life and activity, allows you to study the internal content, internal connections of the system during scientific research.

The transition to a more detailed representation of the system is clearly traced, where, within the framework of this representation, the functional properties and connections of subsystems are of interest. In hierarchically organized complex systems the essence of the functions of any element in this system is determined not so much by the structure of this element as by its role in the structure of the system itself. Thus, the function is implemented by the structure and explained using the structure.

With regard to the brand as an object of research, the most interesting is the essence of the functional approach as a methodological basis for the study of various products intended for consumption, acting as a product that is in close dialectical relationship with the brand.

Revealing the essence of the functional approach in this aspect, it is important to emphasize that the role of the functional approach is to reveal the utility (functionality) of the object. The entire study of an object is carried out in relation to its functions and functions of its elements, considered in terms of their significance (importance), forms of manifestation, formation and the amount of costs for their manifestation (implementation) in order to fully satisfy the specified requirements, ensure effective ways of their implementation. With the functional approach, an object is described based on a set of characterizing it consumer properties, i.e. in the language of the functions it performs, and the task is to find alternative ways of performing them, to reveal the classification of the object's functions. When using the functional approach in practice, the most often used is a simple procedure of dividing an object into separate elements-carriers of functions and assessing their significance, as a result of which the main, main and secondary functions are identified. This process of defining and classifying features is called random feature analysis.

Speaking about the relationship of functions and structure in branding, it should be noted that, based on the fact that a brand is a certain associative symbiosis in the mind of a consumer, the brand structure should be considered, first of all, as a system of associations, and not as a combination of a name, logo, colors, etc. sounds. Thus, it becomes possible to analyze the functions of individual associations in the structure of the associative brand image.

As for the possibilities of using FSA in branding, it should be borne in mind that the brand extends its influence to all goods, often of a wide range, sold under it, and the methods of forming and developing a brand are simultaneously aimed at its different functions. Therefore, the use of FSA, as a method of valuation, for analyzing the functions of a brand with a mono-brand policy of a company seems too difficult and not rational, which cannot be said about the basic functional approach, focused primarily on analyzing the quality of performance and the significance of functions. Functional-cost analysis is advisable to carry out with the polybrand policy of the company, when each brand has its own specific market function.

Considering that it is the functions of a brand that determine its essence and purpose, and the quality of their implementation is a direct result of the effectiveness of branding, it should be emphasized that the prospects for further analysis are an in-depth study of the application of the functional approach, functional modeling methods as the most objective scientific basis for assessing the effectiveness of branding.

Literature:

1. Aaker, D. A. Strategic market management [Text]: trans. from English under. ed. Yu. N. Kapturevsky. - SPb .: Peter, 2002 .-- 544 p .: ill. - (series "Management theory and practice"). - ISBN 5-318-00781-3

2. Doyle, P. Value-Based Marketing [Text] / trans. from English under. ed. Yu.N. Kapturevsky. - SPb .: Peter, 2001 .-- 480 p .: ill. - ISBN 5-318-00226-9

3. Kotler, F. Marketing management [Text]: 2nd edition / per. from English under. ed. O. A. Tretyak, L.V. Volokova, Yu.N. Kapturevsky. - SPb .: Peter, 1999 .-- 896 p. - ISBN 5-8046-0048-6

4. Kunz G., O'Donnell S. Management: systematic and situational analysis of management functions [Text] / per. from English - M .: Progress, 1981 .-- T. 1. - 495 p.

5. Markov Yu.G. The functional approach in modern scientific knowledge [Text]. - Novosibirsk: Publishing house "Science", 1982. - 255 p.

6. Mescon M.Kh., Albert M., Khedouri F. Fundamentals of management [Text] / M.H., Mescon, M. Albert: trans. from English M .: Delo, 1992 .-- 702 p.

7. Nadtoka T.B., Vinogradov A.G. Functional and cost analysis: Uch. allowance. - Donetsk: DonNTU, 2007 .-- 132 p.

8. Chumachenko N.G., Savchenko A.P., Korneev V.G. Making decisions in production management. - Kiev: Technika, 1978 .-- 192 p.

9. What is innovation - [ Electronic resource]. - Eletron. text data (6015 bytes) - Access mode:

Functional programming - a section of discrete mathematics and a programming paradigm, in which the computation process is interpreted as the calculation of the values \u200b\u200bof functions in the mathematical understanding of the latter (as opposed to functions as subroutines in procedural programming).

It is opposed to the imperative programming paradigm, which describes the computation process as a sequential change of states (in a meaning similar to that in the theory of automata). If necessary, in functional programming, the entire set of sequential states of the computational process is represented explicitly, for example, as a list.

Functional programming involves calculating the results of functions from the initial data and the results of other functions, and does not imply an explicit storage of the program state. Accordingly, it does not imply the mutability of this state (in contrast to the imperative one, where one of the basic concepts is a variable that stores its value and allows you to change it as the algorithm runs).

In practice, the difference between a mathematical function and the concept of "function" in imperative programming is that imperative functions can rely not only on arguments, but also on the state of variables external to the function, as well as have side effects and change the state of external variables. Thus, in imperative programming, when you call the same function with the same parameters, but at different stages of the algorithm execution, you can get different output data due to the effect of the state of variables on the function. And in a functional language, when a function is called with the same arguments, we always get the same result: the output depends only on the input. This allows execution environments in functional languages \u200b\u200bto cache the results of functions and call them in an order not determined by the algorithm and parallelize them without any additional action on the part of the programmer (which is provided by functions without side effects - pure functions).

Functional programming languages[ | ]

The not yet fully functional initial versions of both Lisp and APL have made special contributions to the creation and development of functional programming. Later versions of Lisp such as Scheme, as well as various variants of APL, supported all the properties and concepts of a functional language.

As a rule, interest in functional programming languages, especially purely functional ones, has been more scientific than commercial. However, notable languages \u200b\u200bsuch as Erlang, OCaml, Haskell, Scheme (after 1986) and specific (statistics), Wolfram (symbolic mathematics), and ( the financial analysis), and XSLT (XML) have found their way into the commercial programming industry. Such widespread declarative languages \u200b\u200bas SQL and Lex / Yacc contain some functional programming elements, for example, they are wary of using variables. Spreadsheet languages \u200b\u200bcan also be thought of as functional, because in cells spreadsheets an array of functions is specified, as a rule, depending only on other cells, and if you want to model variables, you have to resort to the capabilities of the imperative macro language.

Story [ | ]

The first functional language was Lisp, created by John McCarthy during his work in the late fifties and implemented initially for the IBM 700/7000 (eng.)russian ... Lisp first introduced many concepts of a functional language, although the language uses more than just the functional programming paradigm. Further development of Lisp became languages \u200b\u200bsuch as Scheme and Dylan.

Concepts [ | ]

Some concepts and paradigms are specific to functional programming and are mostly foreign to imperative programming (including object-oriented programming). However, programming languages \u200b\u200bare usually a hybrid of several programming paradigms, so “predominantly imperative” programming languages \u200b\u200bmay use some of these concepts.

Higher-order functions[ | ]

Higher-order functions are those functions that can take as arguments and return other functions. Mathematicians often call such a function an operator, for example, the derivative operator or the integration operator.

Higher-order functions allow you to use currying - converting a function from a pair of arguments to a function that takes its arguments one at a time. This transformation got its name in honor of H. Curry.

Pure functions [ | ]

Functions that have no side effects of I / O and memory are called pure functions (they depend only on their parameters and return only their own result). Pure functions have several useful properties, many of which can be used to optimize a:

  • If the result of a pure function is not used, its call can be removed without harming other expressions.
  • The result of a pure function call can be memoized, that is, it can be stored in a value table along with the call arguments. If later the function is called with the same arguments, its result can be taken directly from the table without being calculated (sometimes this is called the principle of transparency of references). Memoization, at the cost of a small memory consumption, can significantly increase performance and reduce the growth order of some recursive algorithms.
  • If there is no data dependence between two pure functions, then the order of their calculation can be changed or parallelized (in other words, the calculation of pure functions satisfies the thread-safe principles)
  • If the entire language does not allow side effects, then any computation policy can be used. This gives the compiler the freedom to combine and reorganize the evaluation of expressions in the program (for example, to exclude tree structures).

Although most compilers of imperative programming languages \u200b\u200brecognize pure functions and remove common subexpressions for pure function calls, they cannot always do this for precompiled libraries, which generally do not provide this information. Some compilers, such as gcc, provide the programmer with keywords to denote pure functions for optimization purposes. Fortran 95 allows you to designate functions as “pure”.

Recursion [ | ]

Recursive functions can be generalized using higher-order functions using, for example, catamorphism and anamorphism (or "convolution" and "unfolding"). Functions of this kind play the role of such a thing as a loop in imperative programming languages. [ ]

Approach to calculating arguments[ | ]

Functional languages \u200b\u200bcan be classified according to how the arguments of a function are processed during its evaluation. Technically, the difference lies in the denotational semantics of the expression. For example, with a strict approach to evaluating the expression

print (len ([2 + 1, 3 * 2, 1/0, 5 - 4]))

the output will be an error, since division by zero is present in the third element of the list. With a loose approach, the value of the expression will be 4, since, strictly speaking, the values \u200b\u200bof its elements are not important for calculating the length of the list and may not be calculated at all. In strict (applicative) computation order, the values \u200b\u200bof all arguments are calculated in advance before evaluating the function itself. With a loose approach (normal order of evaluation), the values \u200b\u200bof the arguments are not calculated until their value is needed when evaluating the function.

As a rule, the lax approach is implemented in the form of graph reduction. Shallow computation is the default in several purely functional languages, including Miranda, Clean, and Haskell. [ ]

In non-functional languages[ | ]

In principle, there are no obstacles to writing functional-style programs in languages \u200b\u200bthat are traditionally not considered functional, just like object-oriented programs can be written in structured languages. Some imperative languages \u200b\u200bsupport constructions typical of functional languages, such as higher-order functions and list comprehensions, which makes it easier to use the functional style in these languages, in particular, this approach is widely used in the practice of the Python language. Another example is Ruby, which has the ability to create both anonymous functions using bound variables (λ-objects) and the ability to organize higher-order anonymous functions through a block using the yield construct. In C, function pointers as argument types can be used to create higher-order functions. Higher-order functions and lazy list structure are implemented in C ++ libraries. In language version 3.0 and higher, you can use λ-functions to write a program in a functional style.

Programming styles[ | ]

Imperative programs tend to emphasize the sequence of steps to perform some action, and functional programs to the arrangement and composition of functions, often not indicating the exact sequence of steps. A simple example of two solutions to the same problem (using the same Python language) illustrates this.

#imperative style target \u003d # create an empty list for item in source_list: # for each element of the source list trans1 \u003d G (item) # apply function G () trans2 \u003d F (trans1) # apply function F () target. append (trans2) # add the transformed item to the list

The functional version looks different:

#functional style # FP languages \u200b\u200boften have compose () built in compose2 \u003d lambda A, B: lambda x: A (B (x)) target \u003d map (compose2 (F, G), source_list)

In contrast to the imperative style, which describes the steps leading to a goal, the functional style describes the mathematical relationship between data and a goal.

More precisely, there are four stages of development of the functional style, in descending order of the role of data in programs:

  • Refal (for this category, represented by a single language, there is no generally accepted name);
  • Applicative (Lisp,, Tcl, Rebol);
  • Combinatorial (APL / /, / );
  • Pointless (pure concatenative) (Joy, Cat, Factor, PostScript subset).

In the first case, the entire structure of the program is determined by the data structure, in the latter, the data as such are absent in the original e, they are only implied at the input. Some languages \u200b\u200bsupport a range of styles: for example, Haskell allows you to write in both applicative, combinatorial, and pointless styles.

Features: [ | ]

The main feature of functional programming, which determines both the advantages and disadvantages of this paradigm, is that it implements stateless computing model... If an imperative program at any stage of execution has a state, that is, a set of values \u200b\u200bof all variables, and produces side effects, then a purely functional program has neither the whole nor parts of the state and does not produce side effects. What is done in imperative languages \u200b\u200bby assigning values \u200b\u200bto variables is achieved in functional languages \u200b\u200bby passing expressions to function parameters. The immediate consequence is that a purely functional program cannot change the data it already has, but can only generate new ones by copying and / or expanding old ones. A consequence of the same is the rejection of loops in favor of recursion.

Strengths [ | ]

Increased reliability a[ | ]

The attractive side of stateless computing is the increased reliability due to clear structuring and no need to track side effects. Any function works only with local data and works with them in the same way, no matter where, how and under what circumstances it is called. The impossibility of mutating data when using them in different places of the program eliminates the appearance of hard-to-find errors (such as, for example, the accidental assignment of an incorrect value to a global variable in an imperative program).

Convenient organization of unit testing[ | ]

Since a function in functional programming cannot generate side effects, objects cannot be changed either inside the scope or outside (unlike imperative programs, where one function can set some external variable read by the second function). The only effect of evaluating a function is the result it returns, and the only factor that affects the result is the values \u200b\u200bof the arguments.

Thus, it is possible to test every function in a program by simply evaluating it from different sets of argument values. In this case, you do not have to worry about calling functions in the correct order, or about the correct formation of the external state. If any function in a program passes unit tests, then you can be sure of the quality of the entire program. In imperative programs, checking the return value of a function is not enough: the function can modify the external state, which also needs to be checked, which should not be done in functional programs.

Compile Optimization Capabilities[ | ]

The traditionally mentioned positive feature of functional programming is that it allows you to describe a program in the so-called "declarative" form, when a rigid sequence of performing many operations necessary for calculating the result is not explicitly specified, but is generated automatically in the process of calculating functions. This circumstance, as well as the absence of states, makes it possible to apply rather complex methods of automatic optimization to functional programs.

Concurrency capabilities[ | ]

Another advantage of functional programs is that they provide the broadest possibilities for automatic parallelization of computations. Since the absence of side effects is guaranteed, in any function call it is always possible to evaluate two different parameters in parallel - the order in which they are evaluated cannot affect the result of the call.

disadvantages [ | ]

The disadvantages of functional programming stem from the same features. The absence of assignments and their replacement with the generation of new data leads to the need for constant allocation and automatic freeing of memory; therefore, a highly efficient garbage collector becomes a mandatory component in the execution system of a functional program. A loose computation model leads to unpredictable order of function calls, which creates problems for I / O, where the order of operations is important. In addition, it is obvious that input functions in their natural form (for example, getchar from the standard language library) are not pure, since they can return different values \u200b\u200bfor the same arguments, and some tweaks are required to eliminate this.

To overcome the shortcomings of functional programs, the first functional programming languages \u200b\u200balready included not only purely functional tools, but also imperative programming mechanisms (assignment, loop, “implicit PROGN” were already in Lisp). Using such tools allows you to solve some practical problems, but it means moving away from the ideas (and advantages) of functional programming and writing imperative programs in functional languages. In pure functional languages, these problems are solved by other means, for example, in Haskell, I / O is implemented using monads, a nontrivial concept borrowed from category theory.

see also [ | ]

Notes [ | ]

  1. A. Field, P. Harrison Functional programming: Per. from English - M .: Mir, 1993 .-- 637 p., Ill. ISBN 5-03-001870-0. P. 120 [Chapter 6: Mathematical foundations: λ-calculus].

Functional management

With a functional (hierarchical) approach to the organization of management, a number of functions are assigned to each structural unit of the organization (employee, department, management), the area of \u200b\u200bresponsibility is described, and criteria for successful and unsuccessful activities are formulated. At the same time, as a rule, horizontal links between structural units are weak, and vertical ones, including the “boss-subordinate” line, are strong. The subordinate is responsible only for the functions assigned to him and, possibly, for the activities of his unit as a whole. He is not very interested in the functions and results of the work of parallel structural units.

The main disadvantages of a functional approach to managing an organizationhigh overhead costs are recognized as arising from the lack of focus on the final result, long terms development of management decisions, the risk of losing customers.

FP advantages:

    The boss is always right \u003d\u003e quick response to instructions execution

    "Install and use" - quick start of the organization into operation

    Create and Try - Encouraging Creativity

    A clear responsibility \u003d\u003e to move forward career ladder enough emotional factor

BPM-business process management is the modeling, execution, management and optimization of business processes.

BPM objectives:

    Gaining knowledge of debugging and documentation different types organizations

    Knowledge on identification and classification

    Establishing the quality characteristics of business processes

    Modification of the previous management

    Creation of information support for making sound decisions in the company's activities.

  1. The concept of "organization". Types of organizations, their differences Process approach to managing an organization. Business model concept. Features of a process-oriented organization.

Organization- socio-technical economic system, a group of people striving to achieve common goals

Operation - Joint Activity

The organization consists of:

    Informal

    Formal (legal entity)

Informal organization- a spontaneously emerging group of people who regularly interact with each other.

Formal:

Formal organization- an organization that has the right of a legal entity, the objectives of which are enshrined in the constituent documents, and the functioning of which - in the regulations, agreements and provisions governing the rights and responsibilities of each of the participants in the organization.

Formal organizationsare subdivided into commercial and non-commercial organizations.

Commercial organizations- organizations whose activities are aimed at systematic profit from the use of property, the sale of goods, the performance of work or the provision of services.

Non-profit organizations- organizations that do not have profit making as the main goal of their activities and do not distribute the received profit among the participants of the organization.

Process approach to management

Management is the process of informative interaction between the subject of management (SU) and the object of management (OS), prompting to take some action to achieve the goals of the subject

Control scheme:

The activity of any organization is a continuous process, therefore, if we consider the company as a system of processes. The process approach is one of the possible aspects of business optimization. The system based on processes should reflect the essence of the studied activity and the development of the enterprise.

The process approach views management as an uninterrupted series of interrelated management functions:

    Action planning

    Organization of actions

    Motivation for action

    Coordination of actions

    Action control

And also additional connecting processes: communication and decision making.

A process-oriented organization is an organization that can provide within itself the conditions for a continuous process of producing goods and services, including ensuring control and quality of results by stages of the process, with the interaction of departments and employees.

Continuity conditions -the ability to organize replacement of equipment and employees without creating a critical situation.

Business model- a compact simplified view of the business, designed for a holistic view and analysis of the activities of the entire system of interrelated business business processes

Features of a process-oriented organization:

    Availability of business models.

    Organized information management system

    Development of a clearly established procedure for the development of documentation.

    The organization has a hierarchy of management levels

    Level strategic management (decision making with a perspective of 3-5 years)

    Performance management level produced (1-1.5 years)

    Operating activities. -Operational management (planning within the calendar month) -Operational management (current month)

    Real time control (what it is now)

    Provides the ability to define indicators and criteria performance evaluations, management at each stage of the management chain.

What process orientation gives:

    Reducing the execution time of processes due to regulation and automation

    Increasing the quality of products or services

    Indicator-based management introduced

    Flexibility, (willingness to change co-workers)

 

It might be useful to read: