Building a process model for software implementation
In the last article “ What is a computer information system, ” I raised an important question about basic concepts and understanding of terminology in the interaction of a user (customer) and programmers. As promised, I continue to reveal this topic. And I want to talk about the proper planning of the process of developing and implementing software products.
By the nature of my work, I am constantly confronted with project work. And at the start of any project I face the difficult task of competent planning. Why is this so important? A good plan is almost half the success. Without planning, it is almost impossible to build a job clearly, consistently, to achieve your goals and meet the deadlines. This is especially important when it comes to teamwork.
In principle, a lot has been written about the importance of planning. And here I will not repeat all the known truths. It's simple: if you know where you need to come and manage to make the right route, you will reach the goal. If not - alas, no one will be able to guess in advance where you will end up.
"Pitfalls" of planning in the field of IT
Any plan to achieve the goal should take into account such factors:
- The stated goal, i.e. the result you want to get.
- External factors: materials, environment, features of project participants and future consumers and much more.
If we are talking about objects of the material world, for example, about building a house, everything is relatively simple. There is a customer who tells his wishes. There is a plot of land with certain features. There are building materials with different parameters and cost. And there is a certain budget. Based on this, the final version of the project, the estimate is determined, the stages of work are planned. Even if you have never encountered construction, you have seen many houses, including during the construction process. The result is material, as are external factors. Therefore, the choice of a solution and a plan are rarely difficult.
When working with computer information systems, you are faced with the problem of lack of material factors and results. It will not work here, as, for example, when choosing a foundation for a house, to rely on unambiguous initial data and laws of physics. In addition, the implementation of each software product is a unique project.
Each team, like every person, is unique in its own way. And they always have their own special needs and wishes. The development and implementation of software in order to order to get a solution "for themselves" when the existing standard programs is not enough.
When planning an IT project, you need to:
- Examine the features and needs of the customer;
- Clearly understand the task and take into account all the wishes;
- Agree with the customer selected solutions.
And only after that you can proceed to drawing up a plan of action. In this case, the customer can be any person, commercial or non-profit organization. The main thing is that there is always someone who orders the project and will use it in the future.
Practice shows that just the preparatory work with the customer often causes difficulties. And here an approach based on the definition can come to the rescue:
A computer information system is an idea expressed through a programming language.I gave a detailed description and justification of this definition in the article “What is a computer information system” . For a better understanding, I recommend to read to anyone who has not read it.
The idea and choice of software products
The first and most obvious thing to understand is that in order for a selected or created software product to match your idea, you need a combination of two factors:
- The presence of the idea itself;
- Her clear and unambiguous description for other project participants.
And at the stage of unambiguous and understandable to third parties description of the project idea, the so-called BPM schemes are very useful. In other words, graphical notations describing business processes. You can read more about what it is and how to make up BPM notation in my article “ What is a business process and a description of a business process ”.
At the same time, it is important to understand that this is not necessarily about business processes, using BPM tools, you can successfully describe any kind of labor and other processes, i.e. visually simulate options for translating ideas.
To describe a business or to perform any task, two approaches can be used - process and functional. I also wrote about their differences and features in detail in the article “Business modeling. The main approaches .
When searching for a solution (formulation of the idea itself), many prefer the functional version of the simulation. He helps himself to understand the essence of the problem and the tools needed to solve it. And for effective solution of the task and drawing up a work plan, as shown by my personal experience, process modeling is optimally suited.
How to do it:
- A graphic notation (description) of the business process is created. I recommend using the BPMN 2.0 format as the most advanced and well-developed tool, the use of which reduces the likelihood of errors and ambiguous decisions.
- The idea expressed in the form of BPMN notation is discussed with interested parties (customers, users, in some cases developers).
- Under a consistent idea, they choose software or decide to write a software product from scratch.
- A work plan is drawn up taking into account the selected tools, solutions, and a detailed idea (BPMN notation).
How to create a BPMN model
To successfully compile BPM notation, a person must have certain knowledge:
- Understand the features of the organization (user interaction). Without this, the embodiment of the idea will most likely contain errors. As a result, it will be inconvenient or impossible to use the system.
- Know the features of algorithms and, at least, the basics of programming. This is necessary in order to set correct and realistic requirements for software systems.
- Have skills to work with graphic notations. This format, as well as any infographics, is the most obvious and understandable to all project participants option to display the task.
In cooperation with business or non-profit organizations, the cooperation process is structured as follows:
- The general formulation of the task is formulated by the head of the company;
- Clarification of the stages of work and features of implementation - managers and employees of departments that will work with the software product.
In some cases, the formulation of the task as a whole and the detailing can be performed by one person sufficiently informed about all the important nuances.
Further, the resulting description is made in the form of graphic notation, where there are also several levels of detail. Their number depends on the complexity of the system.
The next stage is clarification and coordination. Here, a ready-made notation is studied by managers and employees of the organization, if necessary, make clarifications. At the same stage, changes in the details of the idea itself are possible, which will help to optimize the work, including at the level of employees and the interaction of departments. Here it is important to understand: the graphic model helps to see many “roughness”, unnecessary duplication of functions, etc. And, of course, when formulating an idea in the form of a notation, it is possible and necessary to discuss these shortcomings of the working process and think over how to optimize them.
Selection of software
You already have a consistent and detailed idea, embodied in the form of graphic notation. What is very important - the notation has passed all the discussions, the company management has signed the final version. It is possible with confidence in the achieved understanding to proceed to the selection or creation of a software product.
Nowadays, for commercial and non-profit organizations, it is extremely rare to write software solutions from scratch. It is expensive and long. Moreover, for the majority of ideas, there are ready (typical) solutions that are sufficiently customized and / or slightly modified.
And here it is very important that among all the software systems that are suitable in subject and functionality, you need to choose the one whose idea most closely matches the customer’s idea.
For example, the idea is: “we need automation of the work of the sales department”.
Stage 1. A CRM system is best suited for implementation. These software solutions are developed specifically for sales departments.
Stage 2. Of all existing CRMs, you need to select those whose functionality best fits the selected work algorithm (implementation of the idea).
Step 3. Selecting from the list of suitable CRMs consists in studying their additional functionality: ready-made solutions for integration with other software products, the presence of built-in tools useful for the idea, price / quality ratio.
It is important to understand: in the implementation of any idea, people are an integral part of the process. And if they do not make the chosen decision, then the software product, with all its merits from the point of view of developers, will be inappropriate for the implementation of the idea.
Moreover, the description of a business process (the embodiment of an idea) is, above all, a description of people's activities. Ideas relate to human activity. Automation is only an auxiliary factor. Therefore, any description of business processes is, above all, a description of the work of people. And only then - the technical part of the question.
Unfortunately, in practice I encountered an erroneous approach, when BPMN notation is fully devoted to the technical part and, in fact, is an alternative variant of writing an algorithm for programmers. In this case, people and their interaction with software solutions are "behind the scenes." And when implementing a solution in practice, overlaps and misunderstandings often arise. As a result, the idea is implemented long, difficult. Or it turns out a failure. Just because when describing it, they forgot about the most important factor - the actions of people.
Benefits of the process approach
Man thinks consistently. At the same time, thinking through several different actions and covering several tasks or areas is extremely difficult. A person thinks step by step, solving one after another tasks as they arrive. And because the embodiment of the idea in the form of a sequence of actions - the most appropriate. It allows you to think through all the details and not miss anything important.
Unambiguity of the decision and ease of coordination by the project participants. Graphic notations are easy to read, they are intuitively understandable to the head of the customer company, close to the algorithmic flowcharts, and therefore convenient for developers. As a result, they are easy to reconcile, and when implemented there is practically no discrepancy.
The BPMN format helps to avoid errors. The very environment of development of graphic notations and simplicity of the display help to notice most of the errors on time, to avoid logical contradictions and "incomplete" processes.
You can learn more about BPMN notations, basic elements and principles of their use, as well as a practical example in my article " A brief description of BPMN with an example ." More examples will be in the following publications.