Setting the task of import substitution of an information system, for example Notion

There is a correct design for the reader's respect, Notion written with capital letters and italics.

Enjoy your reading.

Written plan, plan

In our company, employees use the foreign Notion system to complete work tasks.

The product is good, the guys like it, everything is convenient and clear.

A problem has emerged – the company is officially leaving the Russian Federation due to sanctions. Considering that this was previously stable, and no one expected such events, everyone is used to using SAAS services for their work.

The emerging prospect of losing access to corporate data, as well as to its management, raised the question of how to solve the problem that had arisen.

Having consulted with people who see possible scenarios, our management collectively saw the possible risks of data not being under the control of our company, but located on the servers of any “vendor”.

In addition to international risks, companies in the Russian Federation can also close, disappear, technically they can lose, and also leak data.

Determining needs

The task of information exchange of collective knowledge and facts about the ongoing activities of the company, it was decided to study the possibility and feasibility of moving to our own solutions.

In this regard, two key issues were addressed:

  1. Selecting an opensource technology solution.

  2. Developing a solution that meets our key needs using our own resources (or those of external specialists).

To solve this problem, we formulated the needs according to the principle “what if not”, namely:

  1. Let's go through the list of Notion system functions.

  2. We are compiling a list of the functions that are used in our company – those for which regular information exchanges are recorded.

  3. Sort the list in descending order of activity.

  4. We add a column to the right of each function and write in it what will happen to our company's activities if this function does not exist. (nothing, or such and such a process will stop and kill the business in a chain).

How we use the system now

To our surprise, we use almost all of the declared functions of the system only tabular data to create summary reporting pages from them.

We use text blocks as a replacement for internal and external electronic documents.

Overall, we use the system as a single point of reference for up-to-date information.

The simplicity of dividing pages into blocks allows each employee to keep control of their area of ​​information exchange, be responsible for its relevance, and the team to use its blocks in work, knowing that they will always be relevant.

It is also possible to organize such a knowledge system connectivity in Google electronic documents, but this is a Western company, and it is not so practical to constantly move around files (there is a regular break in context and loss of attention) than in one web application.

Do we need kanban boards?

We separately examined the capabilities of to-do trackers, as well as kanban boards, and came to the following conclusions.

Viewing the boards is useful for quickly getting a feel for the format.how are we doing” in direct work, that is, the person who moves the cards himself, as well as his colleague who is involved in these cards, are already familiar with them, and a quick glance really facilitates perception.

But given the division of responsibility between the teams, it makes no difference to the external participant (relative to each team) where these cards are located.

A person not initiated into daily activities can only receive an answer in the form of satisfying curiosity that something is being done “there”. And what exactly – for this you need to immerse yourself, which is not included in his work interests and time possibilities.

Considering that each group leader is responsible for the results of his group, and he provides management information about the status and list of results obtained in the form of a short table of names and components, it was decided that any boards can be used at the discretion and preference of the teams, and they will not leak beyond the outer contour of the team.

We allow teams to work in a way that is convenient for them, and do not limit the creative process and convenience, since there are already plenty of boards and some are very decent.

Questions of development of capabilities

The situation regarding the possible development of the system, any integrations we need that we may already know about, as well as the understanding that we do not know what integrations we may have over time, was also considered.

The situation with ChatGPT shows that a solution that may solve someone's problems will appear in an external system only when it becomes mainstream.

Unfortunately for the system Notion integration with our 1C accounting system, as well as our smaller, but no less necessary needs, did not become mainstream. It is proposed to solve this by external specialists, or integration with the same external services, the risk of whose presence in the internal circuit we have already discussed.

There is also an interesting feature that we did not add, that sometimes we work with closed corporate clients, and we need confirmation of the integrity of our information circuit.

Plans for future work with government customers are not currently being considered, but in the future, anything can happen.

We define the requirements

In this regard, we claim that we need the following functions:

  1. Possibility of block editing of text information, with basic WYSIWYG functions:

    1. Working with text, italics, bold, lists, inserting images, quotes, code examples, links (maybe we'll add something later, that's enough for now).

  2. Working with tables:

    1. Quickly create from a template and change the contents of cells and columns directly by clicking as in Knowshe and in Excel.

    2. Ability to customize property attributes such as currency (currently rubles), text, choice from a list of options one of or many of.

  3. The ability to attach information from other documents to a separate one needed for work.

    1. Support texts without editing.

    2. Support tables, with the ability to filter data for display:

      1. Selecting properties to display

      2. Sorting by creation and update dates of records

      3. Filtering by values ​​- substring, comparisons greater than less than or equal, by the presence of specific options.

  4. Hierarchy of documents.

  5. Possibility of dividing workspaces.

  6. Availability of accounts.

  7. Collaboration and editing.

  8. Sustainable development requirements:

    1. A clear space for developing a solution with minimized dependencies on external circumstances.

    2. Guaranteed encryption of stored information, when in the event of theft of the database itself, only encrypted information is leaked.

We go two ways

In light of the above statements, we have decided on two courses of action:

  1. Receive a report on the feasibility of using an opensource solution that meets the specified requirements.

    1. Required qualifications of specialists for installation and operational support.

    2. Possibility of improvements and development (this requires knowledge and experience of working with this solution; if this knowledge is not available, a program for obtaining this knowledge and confirmation of “taking” control with deadlines is required)

  2. Find out possible solutions with confirmation in case of independent development with the same requirements for specialists and the possibilities of improvements and development in conditions of unknown needs in the future.

Principles of path selection

For the first point, we assigned a specialist to study this issue, while simultaneously launching the task for Sanya, because he always has a brain and does not let go of the topic of independent developments from scrap materials.

For the first question, to get answers, we set the task of market research, we continue to monitor the situation, off the top of our head it is necessary to get a summary report using a proven method https://deppkind.livejournal.com/4523.html:

  1. Project name

  2. Percentage of matching required features and their availability in the product

  3. Timeframes for receiving a sample for work

  4. Cost and conditions of official use, licensing issues.

  5. Development opportunities

Since simple reading and familiarization with the materials takes time of immersion and also requires analysis, it cannot take less than one working day, but we are in a hurry, and will set two questions of receiving a sample for one day each.

Market research results

Since we trust the best, we used thoughtful research Kirill Mokevnin, founder of the Hexlet programming school. According to our observations Notion It is used there in abundance, and the problem of sanctions has also affected these guys.

From the results of his research, we will conclude that one way or another there are candidates, but according to the matching principle indicated above, there is no solution, even the one that Kirill chose for himself.

But we know that Kirill, like us, is an entrepreneur and already a businessman, and for an entrepreneur and a businessman the choice is simple, not the best solution, but the least worst of all the unsatisfactory 100% paths of development.

While we click and click, already roughly understanding the answer (most likely something from the list, we will feature our exorbitant requests), we will wait to see what Sanya will tell us with his inventions and fantasies.

Then the answer came about Sani, and he again began to talk when he was not asked:

1) I've already got it figured out and am ready to sit down and make you a demo, everyone is on the rubble, the frondenders will start howling in the swamps again

secondly, throw your lists in the trash, what about encryption and development – you immediately hang on someone, only rearrange the beds in your enterprise and nothing new

3) where is the sample? Am I going to use this? I can write it, but you will throw it out as usual, branding it a stream of consciousness.

So you got something, what next, how to poke with what and where, how will you understand that this is it? Maybe you should call someone? Then call him to me right away and don't roll the cotton wool around.

Don't force yourself into a fractal-type Procrustean bed, I'll quote myself again:

  • If you don't know what you want (to do with it), then any system will satisfy you.

  • If you don't know what you want (to do with it), then no system will satisfy you.

First your sample, I will give you an action item, I am waiting. Here is an example https://neolurk.org/wiki/Rob_corovans

I always want to somehow show him his place, but when it comes to the matter, the person says – how will we understand that in the end?

Let's formulate a test, how we will understand that this solution suits us, it seems we understand:

Try:

  1. Let's say I register

  2. I will create a new workspace

  3. I'll make three pages, drag them into the menu one after another, ok

  4. I'll rename it and see that everything is updated everywhere like in Notebook

  5. I will add text and make all the edits listed above, such as italics, list, etc.

  6. I'll upload a file from my desktop directly into the text – a photo of Sanya from Gelendzhik, the one without the black eye, in the gardens.

    1. Let's make this page the main workspace page

  7. Let's add a table on the other two pages

    1. Clients with columns full name, phone number, oh yes, we need comments on the client card and the last comment field!!!

    2. Orders – status, amount, number from 1c, enough

  8. We will add sections to the main page

    1. New clients, filter by quantity – 5, and display the date of record creation, sort by descending date of creation.

    2. Latest orders, you can filter by amount, so it would be interesting to look at the big ones, no need for small ones.

  9. Well, we won’t make a task tracker and a wiki for now, it’s already clear that if the first points are ok, then we’ll move on.

Having sent this sample to Sanya, we received in response an order number and a comment:

– I'll get in touch tomorrow evening, I'm in another city.

The next day we receive the answer:

I did it, in the table of received on the requested.

Here's a link to the video without time codes, it's 6 and a half hours long, YouTube barely made it through, VK is still loading, RuTube and Zen sent me to hell.

Table of received results for the requested

Table of received results for the requested

Comments on the “Comments” block – they will be, but then, as you decide that ok, this is all already a fantasy on the topic of how it will be convenient for you to work, like you have already received the product. Get it first, fighters.

Development Requirements Reference

  1. Encryption – I see you wrote, but did not request directly, but data encryption out of the boxit turns on with one line, don't even think about it.

  2. Scaling – starting from “on the director’s laptop” before horizontal scaling, sharding out of the box.

  3. Storage – whatever you want, even any FS, even S3 and if you need your own adapter, write (do you need it?). For example, there are examples of integrations with nextcloud files downloaded from your CRMs.

  4. DB – relational whatever you want, Sqlite, Mysql, Postgresql If you're bored, you can rewrite it to MongoID.

  5. As long as you don't drive millions of users, you won't need any understanding of what's going on with clouds, just take a solid piece of hardware for pennies and live happily.

  6. Rails is an open one-man-framework, to support your solution according to your needs you will need only one recent Baumanka student, or anyone who has completed courses with the same Kirill on Hexlet.

  7. The demo shows that resource APIs are simply generated automatically; making the necessary extensions for feeding into services that work via API takes 10 minutes.

  8. Write a web hook receiver to receive the same stuff from other systems – 10 minutes.

  9. Cover with tests – well, 20 minutes if it is not clear what was demonstrated as part of the scaffold procedure.

  10. The most amazing documentation that guides what's on api.

Should you go or play checkers?

In general, if you want to go and not just play, here's a solution for you, write that you are ready to take it, I will issue an invoice, you pay and receive:

  1. Clean code with comments where appropriate.

  2. Combed into modules, what needs to be taken out somewhere will be taken out.

  3. Cover with tests as stated – so that you receive a tool for checking the integrity of what is being transferred and purchased, not only from my words and videos.

  4. Prepared for and deployed to you on your VPS.

In the meantime, I'll upload the video to Habr and briefly write what it's about.

I haven't written there for a billion years, the guys will like it there, finally I have something that's not an obvious translation of the movie-captain but a real craft, just like they loved in the best years, maybe I'll even get the Habra effect, wow, how interesting.

All the guys there are adequate and friendly, not some weirdos starting with the letter M.

Sasha is an interesting person, let's wish him luck in his fantasies.

Conclusions and choice

Well, we have a simple choice: we have a proof system that meets our initial requirements.

The sample is ready for the next step. We will postpone the question of choosing SAAS until later, when we fail with the current development.

We decide that we can still invest a week on this, everything is clear to us.

We understand that we will always find developers for any smell and color, we like everything, stylization is a matter of time, it is clear that the basic requests are working, everything is fast, in general we take it and will try to transfer new cases to this system.

As for the old ones, we'll download them, we'll have to ask Sanya what's going on with the import, well, that's later, maybe it won't be necessary, we're loudly declaring that we have such systems, but at a guess our intern will copy-paste everything three times in two days, how many pages do we have there in total – 50?

Yes, let him stomp on the keyboard, let's give him a bonus for initiative, it's time to finish with this, I'm already tired of generating this story.

Similar Posts

Leave a Reply

Your email address will not be published. Required fields are marked *