Once we had this:

And now it’s like this:
')
The story began almost two years ago, when we first came to Habr . Our first topic was, in particular, about bug reports, tips and ideas. Especially a lot of suggestions were on the old personal account. Since it would not be limited to a quick rework there, we began an almost complete replacement of the system.
To begin, I will tell you why you made the decision to do it from scratch. It was an opportunity to completely sort out the architecture. The old personal account was working on at least 10 years ago software that did not scale and had certain limitations
Technical part
A 32-bit platform was used, which imposed certain restrictions on the size of the RAM used, and the use of the legacy API, which was often not supported by the manufacturer, adversely affected the stability of Java applications.
The old version of the personal account for load balancing used only the HTTP session balancer functionality. At the same time, if there were any problems with one of the application servers, then the current user sessions associated with that application server were lost.
The weak modularity of the solution and the presence of a large amount of logic on the presentation layer made the application architecture “monolithic”, which required considerable labor costs in developing and testing even simple changes. It also complicated horizontal scaling and reduced the overall speed of the application. As a result, certain operations, especially sensitive to performance, such as the output of billing and customer information, were performed unnecessarily long. In addition, the processing of invoices for the first billing cycle at the beginning of the month could take several days. The problem was in the processing algorithm, in which temporary data was saved to the disk array, which slowed down the work.
We switched to the 64-bit platform, abandoned the use of legacy libraries. Now, to increase fault tolerance and load balancing, a cluster is used both at the application server level and at the database level. When designing and implementing a new version of the personal account, the integration with adjacent systems was greatly changed and it was quite difficult.
The transition from the "engineering" interface to the "human"Important changes have affected the functionality of the system, especially in terms of subscribers of the postpaid billing system. There was a group operations functionality, an address book, a visual presentation of financial information using graphs and charts, a custom report designer, where users can set parameters and filters themselves.
Compared with the previous version, the new system already at the time of launch has a capacity three times larger in terms of the number of subscribers and about five times more in the number of simultaneous transactions. So, about 100 transactions per second are being processed. But we can provide a large load.
From the point of view of the amount of data, about 80 million subscribers are stored in the system and for each of them there are services, tariffs, balances, invoices, ordered details and other information.
One of the problems of the previous version was the speed of processing invoices. Every month about 4 TB accounts pass through the new personal account.
At the same time, the bulk of accounts falls on the first billing cycle at the beginning of the month. New solution allows you to process account data more
than 3 times faster, stacking at 8 o'clock.
In addition, and this is very important, the initial system limitations on capacity building were removed, and now, if necessary, we can gradually expand it, based on market requirements.
In addition, a personal account is an interface to a large number of internal systems. We have implemented integration with more than 15 information systems, including the billing system, prepaid platforms, content platforms, a website, a CRM system, etc. It is necessary to ensure fast and reliable operation of the entire complex integration chain.
Interface philosophy
Profile "before" and "after"Look at the comparison of screenshots of the same screens of the old and the new personal account. We regrouped the elements, maximally focused everything on the user in terms of perception of information, translated most of the terms into Russian (as subscribers call these things when they call the call center) and much more.
The main task is to prevent the cabinet from being perceived as something that requires special knowledge. We have an example of Europe, where any retiree can simply go and log into the personal account of his operator in order to change something in his user profile. (In Norway, about half of the subscribers of local operators use a personal account, we have only a few percent).
The difference in achieving the goal is almost an order of magnitude.In principle, for calls to the call center there is a basic reason - concern for the balance . More precisely, the question: “am I not overpaying”? For example, most likely, most of the readers of this topic do not know what is more profitable for them - their current tariff or the one advertised on TV. For customers without technical knowledge, the easiest thing is to simply ask the operator. Such a mechanic - a new video came out, a man saw him during a commercial break, got worried, decided to check, called us. The same applies to checking whether the money came: “I put 100 rubles yesterday through the terminal, did they come?” And write-off questions. In general, the subscriber needs control. We tried to give this feeling of control, having collected on the main screen a maximum of the right data at once, plus, making quick statements. Extracts allow you to accurately understand what was happening with the account, and are very pleased with many. And here it was important to tighten the technical part (you already know why) and make the correct interface, otherwise even a quickly generated statement would simply not be found.
Financial informationHow to make prototypes and tests
At the entrance were our data on what the user needs (we have one of the most famous usability laboratories in Russia), the vision of the Lebedev Studio specialists, plus data from technical experts on what is possible and what is not. It turned out a prototype, which was first tested according to our methodology, and then went to the iteration of statements and tests.
Visual result of interaction with living people.The tests were done as follows: we recruited people "from the street" in accordance with the profile of ordinary subscribers who apply to the call center. They launched a certain prototype of their personal account and set tasks in the form in which they are facing users. For example, not “Make an extract from the account for the last 15 days”, but: “I wonder how much the call from Ukraine you made during the last trip cost?”, Not “Connect the tariff option such and such”, but “Tomorrow you are driving to Kiev, try to see how cheaper it is to call relatives. ” The man himself studied the office and sought a solution. We wrote his eye movements, mouse movements, clicks, plus a general video "from the side." Such tests were run hundreds of times for each model, until it became clear that most of the “random” people (we recruited them before each new iteration) did quite well.
Then there was a very long beta testing, where Habr also helped a lot - in an hour of habraeffection there were as many errors as testers found in a week.
We continue to refine it, and also we are going to put all personal accounts (including a home Internet account) into one in the future, as they have now reduced access to different SIM cards in one account.