📜 ⬆️ ⬇️

"Heavy" applied software: everyday development and implementation



I'll tell you about the features of "heavy" commercial application software for large companies and give a couple of examples from Russia.

Come on in, show the perfectionist hell.
')
In big business there are simply no such situations when you can buy a license and immediately sit down to use. You need to carefully refine the file, and often so that sometimes writing from scratch takes the same amount of time.
- Software is never 100% ready, because changes are constantly taking place in business.
- Software never stops in modifications.
- Software needs to be constantly maintained.

Purpose of implementation


The main task of any corporate software is the automation of something that has not been done before or done by hand. That is, translating into a human language — either saving (most often) or getting new functionality for more successful problem solving.

For example, every time your child eats a Barney bear, or you chew Dirol, or teenagers do not find a foil in the open Alpen Gold, many complex processes occur. With the purchase, you indirectly start a multitude of transactions in ERP, logistics and other IT-systems of retail and manufacturer. All this in one way or another is sent to data centers, where it is calculated. The most important task is timely, accurate deliveries, so that the logistics work out correctly. At the same time, well-written software saves millions of dollars on optimizing warehouses, improving the timetable of vehicles (reducing the number of required machines), the accuracy of demand prediction and, consequently, less marriage in terms of shelf life. For example, here with bears and the rest the customer saves several million rubles a year. Or here is an example of my colleague about the census, where it was possible to save both on equipment and people (and there, for a second, half a million people walk around the country).

That is, the purpose of automation at the moment is almost always - savings (in the future). In my second place, according to my feelings, the importance of the motivation to develop the IT infrastructure is more control and transparency. For example, the same workflow systems and BPM are introduced to improve control. Here's another situation where the company could easily lose the car became just because of the characteristics of accounting.

There are also purely technical goals - automating changes in IT subsystems (so as not to pull the IT department every time a business director needs to change something), control code changes, monitor all assets (licenses, servers, etc.) , monitoring and other things. An example of IT multi-way automation solutions is here .

Naturally, there are no universal solutions, just as there are no two identical companies. All software, all software and hardware systems and other solutions - all this is done specifically for the customer.

Lyrical digression about the Russian development


While we have not gone further, it is worthwhile to dwell on the important issue of completions and finishing with a jigsaw. In big business, the main word is customization. It is necessary to write under the process, with a clear understanding of who will work, what tasks to solve exactly and so that it is convenient. Otherwise, the automation software becomes not a help in work and a means of saving, but a crutch, or, worse, an obstacle hindering normal operation. From here - either very, very serious finishing of box versions together with vendors, or development based on some framework (examples below), or even from scratch.

Accordingly, in the first two cases, the difficult question (especially in the current economic environment) is whether the development is Russian. No, it is clear that computers were invented not in Russia, boolean logic, too, Russian operating systems are also not particularly visible - but a clear criterion is still needed. In November, the Ministry of Communications and Mass Media offered its own vision of the concept “Russian development” in November. This is a kind of software, the legal owner of which is a Russian company, and deduction to foreign companies for the use of their modules does not exceed 30%. In general, it is quite democratic and convenient for the market - we are talking about good customization.

But let's show the examples of our developments.

Medical terminal


Let's start with a fairly simple thing: a device consisting of a well-known set of “designer parts” with relatively simple software. This is a PAK that looks something like an ATM, which in less than 3 minutes can be used to diagnose the main indicators of the state of the human body. Put on the premises.

In the basic configuration can:
- To measure pressure, pulse and blood oxygen saturation,
- sniff your breath and report alcohol in it,
- Authorize the employee on a smartcard (for example, from the access control system to the room) or fingerprint (in the near future, the ability to authorize the iris of the eye will be implemented),
- Take a video of the survey itself and transmit it to the server,
- Store data in the database and send them to other subsystems of the company,
- Conduct analytics based on current measurements and previous surveys.

Of course, additional modules can be supplied to it, for example, to remove one ECG lead or to check the skin resistance (roughly speaking, the level of stress).

His appointment is extremely simple - to check employees before the shift. For example, simplify the pre-flight medical examination, record the status of the NPP operator, put it in the Ministry of Internal Affairs, on the drilling rig on the shelf or in the taiga, and so on. On tests, we put it right next to our dining room - a whole line of people willing to test themselves lined up. Many people like to regularly follow the basic indicators.



This is a build from a hardware platform, writing an integrating software or rolling a turnkey solution from Western colleagues with the same kiosks, plus a bundle with the company's database.

Rosavtodor - state services support


Now let's take something “heavier”, for example, working with the data stream of a state-owned company. For state-owned enterprises there are regulatory documents defining the list of services that need to be rendered electronically. In 2012 and 2014, we won Rosavtodor competitions for the implementation of such tasks . In short, the situation is as follows: earlier it was necessary to make extracts from the Unified Road Register of the EDRAD, and to receive appeals from citizens. The second then dropped out of the list of public services, I suspect - because it was one of the few forms where you could write in the spirit: "I have been driving this road since 87 and during that time it has never been repaired." They wrote on all occasions, and according to the rules, the state body is obliged to consider any application and redirect it to the correct department.

As for requests for statements, the architecture is as follows: requests are sent to a single portal of interdepartmental electronic interaction, and then go to Rosavtodor in a formalized form. We accept and parsim, put in the electronic document management system on the side of the Rosavtodor, further forward the task to the electronic registry of roads and process it, including receiving information about payment for services from the State Information System about state and municipal payments. They made a decision - it goes in the reverse order to the portal of public services through a connector. In the course of the movement - it is signed by EDS, it falls into the personal account of the applicant.


Application form for extract from EDRAD

According to the road registry itself, there are more than 160 thousand different road owners in our country. The order obliges to provide all information - on the condition, length, owners, etc. - on the roads. Previously, this information was provided in paper form - and they were entered into the register by employees of the agency. Now the owner of the road is doing this, so the customer has freed up resources that no longer need to be disassembled at the house number next to the object, what the road is and from where, and the risk of error has decreased - each info card now subscribes to EDS, and only after that it automatically hits in the registry.

We have been working with this since 2003 since the year, and the subject area is well known. Customer appreciates.

Of the difficulties on such projects is the desynchronization of the actions of the departments: for example, the Ministry of Communications is responsible for the form on the site, and we are responsible for the connector. To meet the deadlines, you often need to do a lot of things in advance, and here the understanding of the subject area is very important. Of course, the customer speaks his own language - you need to constantly translate into and from the specifications language. After each meeting - the protocol, what we agreed on in the functional part and what it means.

The most important part of the development is to make sure that we and the customer understand each other correctly. Therefore, we use our own framework for workflow, where there is an opportunity to assemble scary, but working prototypes on the fly. The correct GUI is pulled over the abstractions afterwards, the main thing is for the customer to see that if you click this, then the application in this form will go to the workflow. Not only colleagues from Rosavtodor like this type of insurance for reporting form layouts.

But do not think that the UI - the last thing. The end users of the system are not IT specialists, and they need a lot and much to adapt everything. In the logic of the developer you need to make attribute forms that describe all the parameters of the request. In user logic, simple interfaces are needed, where elements are grouped not by developer convenience, but by employee convenience. So that in one group there were controls related to the same subject matter, the process was simple and clear. We tried a lot of things - even learning does not give a great result. Therefore, simplified interfaces are specially made (for us this is additional work) - this greatly simplifies implementation.

According to my practice, if this is not the case with prototypes and GUIs, the decision is likely to go to the trash. It turns out a product that formally meets the requirements, but is not suitable for everyday use. Probably why we are so long on the project. Other contractors often change, new people often look at us with suspicion. Then they see that we are really doing, looking at the results, understanding comes.

TaskList Integrator


But there is another class of tasks designed to automate automation, or to simplify the interaction of users with the company's IT subsystems. For example, in recent years one more problem of subsystem integration has begun to appear. Here is our own solution, which, in particular, is used inside the CRIC.

The situation is this - the customer (and we also) often have a large zoo of IT subsystems. Tasks for an employee can come from different sources. For example, a new order came in the workflow system, BPM needed to move to the next project stage, the chief set a new task in the tracker, urgently needed to do something else in CRM, plus the personnel subsystem awoke and a reminder about regular technical work. Hell.

All this is convenient and simply reduced to one type of mail-tracker system.



Log in through connectors to interact with other systems, output - through the same connectors to update data from the outside. Made changes to the TLI - got edits in the system, you don’t even need to enter it. "Under the hood" Tomcat, PostgreSQL and CentOS / RedHat, JAVA.



The tablets have offline mode and constant synchronization, very convenient for traveling top managers and engineers. In one state corporation, for example, this solution plus special protection - executives tablets (x509, GOST, smartcard input, VPN, EDS, jailbreak wipe). There are iOS, Win and Android-butt.



The project is young, only 2 years old. The reason for the appearance of such a product is that Enterprise software is often written either not “beautifully” or inconvenient. About UI / UX think so - what is there to think, then it is necessary to shake. Therefore, if someone is faced with a jumble of uncomfortable systems, you can solve this way. Connect inconvenient systems to the integration platform, connect TLIs to it and get information from all information systems in one place with a user-friendly interface.

The integration platform, by the way, can be used not only for this task, but also as a whole in order to combine disparate enterprise applications into one comprehensive “super-system”. The system will provide online data synchronization between applications, complex processes will be performed that affect several systems at once, and most importantly, there will be no mess and confusion with data and reference books.

Single environment


Sometimes work can begin not at all with documenting processes or solving a specific problem, but rather building the infrastructure from scratch.

For DIT Moscow, we carried out infrastructure projects (design, creation and support of infrastructure) within the framework of the organization of the Unified Medical System EMIAS and the development of specialized infrastructures (electronic signature environment, for example). All this since 2011. There are a lot of things there, in particular, one of the largest ALT Linux installations in the world (22 thousand users for whom the unified infrastructure is fully accessible). Together with the developers of ALT, we found and corrected unusual bugs caused by scale.

Framework


Of course, the development of corporate software and require well-designed infrastructure on our part. For many processes there are not (and cannot be) ready-made products. The same office management system in courts and arbitration or in election commissions is a good example.

Therefore, we periodically develop information systems from scratch. This can be either a standalone solution or a piece of the customer’s IT infrastructure, which closes some processes and is integrated with other systems.

For the most part, corporate information systems are quite similar in terms of architecture. There are general abstractions of data streams (input-change-report). There are GUI-clients where the user works with data. These can be either “fat” or web clients. Here, trends follow the general trends of the industry: once there were web clients on asp, then thick clients on .NET, then again the web. Now to the last added more mobile clients.

Although the solution requires a completely custom solution, sometimes it can be implemented on a box, such as a portal or crm. But the more custom, the less it makes sense.

Since we are engaged in custom systems for a long time, the process is set. No one writes from scratch at all. There are frameworks. They were for ASP, and for .NET, Java, and Web. The basic idea is that your framework allows you to go through a full cycle: from “drawing” an entity-relation model to a GUI.

In a matter of days, you can roll out a standard butt - here the data is entered, validated, processed here, added up, and displayed here. You can sit down with the customer and show the running application. As a rule, at this moment the customer will also formulate requirements (which solves the problem “oh, and I have another feature” before the release) and we understand better what the customer exactly wants. With a complete TK rarely comes, more often - with the need or criteria for solving the problem.

As they say, “fast does not mean quality.” The resulting application will have a typical model-oriented interface, rather than a process. Of course, there is a big temptation to leave it (after all). By the way, if this is some kind of administrative interface that is used by two people (and both are not chiefs), then you can leave it that way. And for a serious system, of course, customization begins. But we do not modify “something inside” (as in the approach with box systems), but simply program (.net / java / javascript) using the api libraries included in the framework. Those. The initial sample application is only the default behavior in the absence of customization. Therefore, the final result is directly proportional to the expended efforts of the project development team.


Developer's work tool for creating a data structure model


An example of a test application based on a framework for managing polls and voting:

Total


My colleagues regularly do such things as managing video conferencing, monitoring workouts before elections, fixing court sessions, consolidating bank customer data from different subsystems, call center logic, clerical work, and even optimizing the layout of money in ATMs - in general, everything is , anything. And, despite all the economic and political conditions, services and own development - this is what, given the availability of expertise, will continue to be in demand.

Unlike conventional solutions, starting with the size of a medium-sized business, almost no installation can do without collecting information for at least a month about what the task is, how it should be solved, who participates in the processes, and so on. We ask questions, draw huge diagrams, check them, carry prototypes, communicate, participate in negotiations (when each department tries to get some functionality or control over the process), communicate with many managers and eventually roll out a solution that solves the problem and all satisfied (if possible). And then we train people to use it, if necessary, and support it.

Of course, “heavy” software is a sea of ​​organizational work. The most important skill is the ability to receive data and turn them into lines of TK. The ability to think of the customer in terms of what will happen next after the introduction and remove the problems that would inevitably appear in the future. Long, painfully complex arrangements are part of our work. Standards, step by step documentation, certification, a ton of paper on the project - too. We need to keep track of thousands of things, and we, of course, automate for ourselves and these processes within the company. There are all sorts of features like control of the work of the loaders with the server, where the butt will be spinning - too, otherwise they will drop it, and implementation will be delayed for 2-3 months.

Of course, the process rarely stops at implementation. Customer requirements are changing, changing environment, we need new features, improvements, bugs pop up in very unusual situations - in general, a complete set.

It is hard, but worth it, because when the output of a working product is satisfied, everyone is happy.

Source: https://habr.com/ru/post/251995/


All Articles