La médecine se déplace vers le Web, les forums de discussion et les applications mobiles. Conversation avec BestDoctor

image

Il y a un mot étrange "télémédecine", et je ne l'associe qu'aux sessions de Kashpirovsky à la télévision et à charger l'eau depuis l'écran. Ce n'est en fait qu'un terme pour désigner les technologies qui peuvent éloigner la médecine.

Il s'agit d'un domaine immense dans lequel l'informatique se développera très sérieusement lorsque toutes sortes de formalités seront réglées, telles que les retards juridiques, les domaines de responsabilité et les litiges concernant les données personnelles. Eh bien, lorsque nous acceptons de confier aux startups technologiques et aux entreprises d'analyser nos organismes et d'offrir des programmes de traitement de la même manière que nous faisons maintenant confiance aux hôpitaux conventionnels.

En attendant, les startups de la technologie médicale font les choses relativement plus simplement. Par exemple, ils fournissent des services de consultation et d'archivage dans les cliniques. BestDoctor - nos interlocuteurs actuels - offre un tel service aux entreprises au lieu du VHI classique. À propos de ce que c'est, à quel point il est difficile de développer un produit médical et d'embaucher des gens pour cela, nous a dit CTO Filipp Kuznetsov et HR Polina Rusakova.

Traditionnellement, nous vous parlerons de l'évaluation de l'entreprise chez My Circle: BestDoctor faisait partie de notre classement des meilleurs employeurs en informatique (dans la catégorie des petites entreprises) avec une note moyenne de 4,6 . Les employés l'apprécient pour ses excellentes relations au sein de l'équipe, les possibilités de croissance professionnelle et la modernité des technologies utilisées, mais surtout - pour le fait que BestDoctor rend le monde meilleur.



Comment fonctionne l'alternative VMI?


- En quoi votre système est-il différent du VHI ordinaire?

- Philip Kuznetsov: Lorsque vous prenez le VHI classique, vous donnez immédiatement le montant total de la police. L'assurance gagnera sur ce qui reste entre le coût de la police d'assurance et les paiements aux cliniques pour le traitement. Il s'avère que la compagnie d'assurance souhaite payer le moins possible pour gagner plus. Et si vous avez dépensé moins en médicaments que vous n'en avez payé pour le contrat, cet argent ne sera pas remboursé.

Dans notre système, vous payez les services fournis. Par exemple, un millier de personnes travaillent pour vous. Certains d'entre eux ont trouvé mille roubles, une dizaine de milliers, quelqu'un n'est même jamais allé chez le médecin. Vous n'avez pas besoin de payer les mêmes politiques pour tout le monde. Il existe un budget médical global prévu sur lequel de l'argent est prélevé lorsque les employés demandent de l'aide.

Dans le même temps, vous ne devez pas immédiatement indiquer le montant de l'année à venir, mais effectuer un dépôt pour le trimestre. L'argent non dépensé est remboursé ou reporté à la prochaine période de service. Par exemple, nous avons prédit que l'équipe aura besoin de 20 millions. Mais l'année a été bonne et les employés sont peu malades. Vous pouvez récupérer l'argent économisé ou le dépenser pour étendre le programme. Et pour ceux qui ont peur du surentraînement, nous avons un accord sur les risques.

Nous gagnons une commission fixe pour chaque employé attaché. Il s'agit d'une redevance pour le service - une application mobile, un compte personnel, la maintenance, pour la base des cliniques et le flux de travail que nous fournissons. Nous disons où il vaut mieux aller, nous conseillons quand les gens ne savent pas quoi faire. Par exemple, j'ai reçu un pack de tests, mais on ne sait pas où les porter.

Autrement dit, nous nous concentrons sur la facilité d'entretien. Le patient peut nous appeler à trois heures du matin, car l'enfant a un bouton sur le nez, et nous vous dirons si cela vaut la peine de s'inquiéter. Même si l'enfant n'est pas assuré chez nous, nous vous conseillons quand même. Par conséquent, nous ne sommes pas intéressés par le fait que les employés recevront le moins de services possible et le moins cher possible. Nous n'en aurons que mal à la tête.

- Et pourquoi ne pas encore sortir du VHI habituel?

- FC : Personne ne fait encore ça en Russie. Lorsque nous, les trois fondateurs d'une startup inconnue de quiconque, sommes venus dans l'entreprise et avons déclaré que nous allions maintenant créer un système cool et bon marché qui fonctionnait à coup sûr, et qu'il n'y avait pas de problème, l'entreprise a pensé à choisir une assurance fiable et bien connue ou un jeune projet sans nom. C'est l'un des principaux problèmes que nous avons rencontrés - il est très difficile d'obtenir un crédit de confiance.



- Y a-t-il eu de tels problèmes avec les cliniques?

- FC : Non, pour les cliniques, nous travaillons de la même manière que l'assurance, avec presque les mêmes contrats. Nous envoyons des listes de patients, des lettres de garantie. Ils nous facturent, nous les payons.

- Polina Rusakova : Nous avons l'un des départements clés, communique en permanence avec les cliniques afin de maintenir la qualité et les prix de gros. Si les cliniques populaires donnent des prix élevés, ce sera plus difficile pour nous. Les cliniques s'intéressent au flux. Si vous leur donnez un flux, tout va bien. Si vous demandez un contrat et dites qu'il y aura un patient par mois, ce n'est bien sûr pas avantageux pour eux.

- Qui aide aux consultations? Cliniques ou vos spécialistes?

- FC : Nous avons nos propres médecins, des personnes ayant une formation médicale.

- PR : Nos fondateurs étaient à l'origine des médecins. Par conséquent, nous prenons la sélection très au sérieux. BestDoctor pour nos médecins n'est pas le principal lieu de travail. Nous n'engageons que ceux qui ont une pratique médicale constante. Cela leur permet d'être constamment focalisés, au courant des changements et des meilleures pratiques.



Comment le produit rassemble les médecins, les patients et les modèles ML


"Que faites-vous du point de vue épicerie?"

- FC : Auparavant, c'était juste un compte personnel pour les patients sur le web. Là, vous pouvez laisser une demande de rendez-vous à la clinique et voir le programme de traitement. Il y avait un back office qui traitait les demandes d'enregistrement et un centre d'appels. Nous avions également un algorithme statistique qui nous a permis de calculer le budget. C'était notre outil interne pour la notation, la sélection des cliniques et des programmes pour les clients.


Ensuite, la fonctionnalité du cabinet RH a été ajoutée. Il s'agit d'un système dans lequel eychars peut gérer les employés connectés au système, en attacher de nouveaux, voir combien d'argent a été dépensé en médicaments au cours de quel mois, vérifier les documents comptables, etc. (les données médicales personnelles des employés sont, bien sûr, cachées). Maintenant, il y a toujours une application mobile qui duplique les fonctions de votre compte personnel en termes de programme et d'enregistrement, mais il y a toujours une conversation avec nos médecins et un centre d'appels.

Il existe également un ticket modérateur, également appelé franchise. C'est semblable aux compagnies d'assurance, mais pas tout à fait. Nous avons un ticket modérateur - c'est un pourcentage du service que l'employé paie pour lui-même. Par exemple, un rendez-vous avec un thérapeute coûte 1000 roubles. Si le ticket modérateur est de 10%, il paie 100 roubles lui-même, 900 roubles - l'employeur.

Nous facturons directement à partir de la carte bancaire du patient pour réduire le fardeau de la comptabilité du client. De plus, nous effectuons un ticket modérateur en fonction du type de service, par exemple, uniquement pour la dentisterie ou un appel médical à domicile. Ou pour chaque clinique spécifique.

- J'ai lu que quelque part parmi tout cela, il y a l'apprentissage automatique. O??

- FC : Oui, dans le modèle de scoring, qui vous permet de prédire les budgets clients. Lorsque nous avons commencé, nous avions des statistiques sur des décennies. Nous avons construit le modèle initial sur eux. Maintenant, nous l'enrichissons avec nos données.

Nous devons inventer nous-mêmes des modèles, car personne ne les utilise.

Et pourtant, afin de supprimer correctement le ticket modérateur, vous devez comprendre à quoi le service fait référence - dentisterie, clinique. Pour ce faire, nous comparons les listes de prix des différentes cliniques. Ici, un problème se pose: par exemple, dans une liste de prix, il est dit «rendez-vous principal avec le thérapeute», dans un autre «accueil principal avec le thérapeute». Mais il faut qu'il ait été automatiquement compris que c'est une seule et même chose.

Autrement dit, les services sont les mêmes partout, mais sont appelés différemment, et nous pouvons traduire leurs noms dans notre langue interne. Pour ce faire, nous avons écrit un modèle qui permet de comparer les listes de prix des différentes cliniques et de classer leurs services selon notre liste de prix interne. Nous pouvons comparer et savoir où ce service est fourni, où non. Nous pouvons classer les cliniques par prix afin d'optimiser la politique de prix.

Le faire manuellement coûtera cher. Maintenant, le travail du modèle est vérifié par une seule personne, et pour le marquage manuel, nous aurions besoin d'au moins une douzaine d'entre eux, car chaque mois un nouveau registre de services vient.

- Le modèle donne-t-il beaucoup d'erreurs?

- FC: Lorsque nous l'utilisons sur la liste de prix, la précision est d'environ 80%. Et lorsque sur des registres entiers, il y en a presque 100%.

- Tous ces développements sont propres?

- FC: Oui. Du tiers, nous utilisons uniquement la plateforme de chat. Mais nous développerons notre propre, ou utiliserons un autre cadre plus flexible. Nous n'avons pas notre propre téléphonie, mais nous y avons ajouté nos propres analyses, creusant un peu dans la structure de la base de données.



Comment apprendre Python et créer une entreprise en même temps


- Qui travaille sur tout ça?

- PR : Toute l'équipe est assise dans un bureau à Moscou, nous sommes maintenant 74. Certains gars travaillent à distance. Trois chefs de produit sont actuellement impliqués dans le produit, chacun responsable de sa propre direction. L'équipe de conception est composée de deux personnes: l'une est responsable de la conception graphique et des illustrations, la seconde s'occupe de la conception des produits. Il y a 12 personnes dans le département de développement, mais maintenant nous nous développons. Tout y est standard. Backend, frontend, testeurs et devops sur un site distant.


- Est-ce qu'une si petite équipe s'en sort?

- FC : Il n'y a toujours pas assez de développeurs. Quelle que soit la taille des équipes, il y aura toujours des tâches sur lesquelles vous pourrez confier plus de développeurs. Naturellement, j'aimerais faire certaines choses plus rapidement. Mais l'équipe fait face à ses tâches.

- J'ai lu dans Vedomosti votre histoire d'un point de vue commercial. Parlez-nous de l'histoire du développement?

- FC: En août 2015, nous avions un développeur qui ne pouvait pas se développer. Pour l'année, nous avons créé MVP, juste ce compte personnel avec un programme de traitement. Nous avons choisi la pile d'entrée la plus simple - Python. Ils ont pris le framework Django le plus populaire, et ils ont commencé à voir le produit dessus.

Toute la première année, nous avons eu un développeur. Au cours de la deuxième année de travail, nous avons commencé à agrandir l'équipe. D'abord, un autre back-end est venu, puis le front-end est apparu. Viennent ensuite les produits. Nous avons commencé à passer progressivement à d'autres technologies.

À partir d'une application de modèle standard, nous avons commencé à refaire en SaaS avec une API REST (en fait, nous sommes immédiatement passés à GraphQL). Nous avons une personne responsable de la Data Science, une devopa est apparue. Nous avons choqué notre architecture, nous avons tout fait comme les gens. CI normal et déploiement, car auparavant déployé via git push-git pull. Ensuite, nous avons eu un développeur mobile. Nous avons commencé à écrire sur React Native immédiatement sous deux plates-formes.

Maintenant, nous avons ce que nous avons - une équipe de 12 personnes, et chacun est engagé dans sa propre pièce.

- Je n'ai tout simplement pas bien compris: en tant que développeur qui ne pouvait rien faire, a travaillé sur le produit pendant deux ans?

- FC: Tout est très simple, j'étais ce développeur. Je suis biophysicien de formation.

"Vous avez donc appris Python et écrit sur le pouce?"

- FC: Oui, je le devais.

- Et quand ils ont commencé à recruter une équipe, avez-vous modifié la vôtre ou avez-vous tout jeté et commencé à écrire à partir de zéro?

- FC: raffiné. Je ne me souviens pas que nous jetions quelque chose directement. A moins que des pièces qui n'aient pas du tout été utilisées. La pile n'a pas non plus changé. Comme Django et Python ont commencé à utiliser depuis lors, nous l'utilisons. Et sur le frontend de TypeScript et React. Nous avons pris Typescript parce que je suis un fan de la frappe statique.

En Python, nous sommes également passés à une version qui prend en charge l'annotation de type afin de tirer parti de la frappe statique - mais pas sous une forme aussi explicite que dans les langages véritablement typés statiquement.


- N'était-il pas préférable d'abandonner Python et d'en prendre un vraiment typé?

- FC : Parfois, je pensais que ça valait la peine de réécrire sur autre chose. J'ai regardé C # et parfois même Java (avec les gens, il arrive que vous regardiez inexplicablement où, on ne sait pas pourquoi). Il est possible que nous basculions vers une autre pile. Mais cela est dû au fait que nous avons besoin de choses spécialisées. Par exemple, si nous comprenons que Python n'étire aucune partie de notre cookie en termes de performances, nous le prenons simplement et l'écrivons sur Go. Ou si vous avez soudainement besoin d'asynchronisme, et nous réalisons que nous ne voulons pas le faire sur Python - nous prendrons en dernier ressort "Noda" ou un élixir.

Mais tous les problèmes que j'ai rencontrés en Python n'étaient pas insolubles. Nous avons juste un produit de service, pas de science fusée. Nous n'avons aucune tâche avec une surcharge élevée et des algorithmes complexes. Nous n'avons pas besoin d'un langage spécialisé, comme "Pros" ou le même Elixir. Nous avons besoin d'un langage général.

Dans cette langue, vous pouvez rapidement trouver de bons spécialistes pour peu d'argent. Python est désormais très populaire, et il me semble que sa popularité ne fera que croître, car il y a ML, Data Science, Web. Quelqu'un fait même des jouets mobiles dessus.

- Il me semble que Python est populaire auprès des non-développeurs. Ils l'étudient en plus de leurs occupations principales. Par exemple, vous êtes biophysicien ...

- FC : Oui, je suis d'accord, de nombreux experts l'étudient afin d'automatiser indépendamment leurs principales tâches. Les mêmes testeurs apprennent Python à écrire des autotests.

Mais si une personne peut bien faire en Python et en développement Web, alors je me fiche des raisons pour lesquelles elle a commencé à l'étudier. L'essentiel est qu'il puisse à l'entrevue répondre à la question que je vais lui poser, puis - montrer le résultat. Le fond n'est pas important, j'ai devant mes yeux mon propre exemple, donc je traite ces personnes normalement. Il y a des gens qui apprennent sérieusement Python - tout comme les développeurs. Il y en a aussi pas mal.

- Avez-vous également écrit des modèles d'apprentissage automatique lors de vos études en déplacement?

- FC : Quand nous n'avions que des statistiques et qu'il n'y avait pas d'apprentissage automatique, nous avons créé l'algorithme avec les autres fondateurs. Et j'ai fait l'implémentation du logiciel. Lorsque des modèles d'apprentissage automatique sont apparus, nous avions déjà un data scientist.



Comment recruter des personnes dans une startup risquée


- Comment avez-vous recruté l'équipe?

- PR : C'était probablement la période la plus difficile. Quand je suis arrivé ici, l'entreprise comptait 23 personnes. Peu de gens connaissaient BestDoctor sur le marché informatique, mais c'est un problème pour toutes les petites entreprises.


Notre problème était que peu de gens croyaient au projet. Au début, les gens sont venus parce qu'ils voulaient travailler dans un projet socialement important, mais ensuite ils sont allés travailler dans une banque. Nos offres ont souvent été refusées. Nos dates butoirs étaient respectées, mais au final, nous avons constitué une équipe vraiment cool. Maintenant, nous n'avons plus de chiffre d'affaires. Au cours des six derniers mois, 1 à 2 personnes sont parties.

Les startups doivent se développer rapidement, mais vous ne pouvez vous développer que si de nouvelles personnes viennent. La plupart des techniciens sont venus via My Circle ou Telegram, et nous avons beaucoup parlé des recommandations. À ce moment, j'ai porté tous les développeurs que je connaissais à l'oreille.

- On dirait qu'ils étaient prêts à emmener des gens, mais devaient-ils être filtrés par les compétences d'une manière ou d'une autre?

- PR : Bien sûr, nous avons filtré, et pas seulement par compétences techniques. Prendre une personne qui ne vous convient pas est un énorme risque. Tôt ou tard, soit il vous refusera, soit vous le rejetterez. Par conséquent, nous ressaisir et dire «non, nous allons chercher plus loin» est une décision assez compliquée. Quand nous avons compris que l'homme n'était pas le nôtre, nous avons regardé plus loin.

- Pourquoi une personne n'est peut-être pas la vôtre?

- PR : Soit les gens ne nous convenaient pas techniquement, soit nous ne le faisions pas. Au début, le projet n'était pas aussi intéressant et global qu'aujourd'hui. Maintenant, il se développe et il y a un an, l'histoire était complètement différente.

Et il arrive qu'ils ne correspondent tout simplement pas à la culture d'entreprise.

- C'est quoi?

- PR : Tout le monde n'est pas prêt à travailler dans une startup, il a sa propre atmosphère et énergie. Une startup est un endroit où beaucoup de gens pensent vouloir aller. Mais lorsque vous parlez franchement des avantages et des inconvénients d'une interview, les gens se demandent vraiment s'ils le veulent.

Les startups et les entreprises où il y a une interaction active avec l'utilisateur vivent toujours dans le format «faites-le le plus rapidement possible». Quelque chose pourrait arriver vers deux heures du matin, et vous devriez être prêt à allumer.

Eh bien, si seulement une personne veut travailler sur des projets qui rapportent de l'argent et rien de plus, nous ne serons probablement pas d'accord. Notre objectif est de rendre les gens en bonne santé et de prolonger la vie. La plupart des membres de l'équipe ont vraiment eu l'idée de changer un système loin d'être idéal. Beaucoup de gens eux-mêmes ont fait face à des imperfections et veulent maintenant travailler à l'amélioration.


"Mais comment avez-vous compris qu'une personne est un bon développeur?"

- PR: Nous avons immédiatement recherché des intermédiaires et des seniors, car dans nos conditions, il est difficile de travailler avec des juniors. Dans les tests de compétence, tout est assez standard. Comme toute entreprise, nous envisageons l'auto-apprentissage. Aucun cours ne sera organisé, vous devez constamment apprendre de nouvelles choses vous-même.

La flexibilité est nécessaire pour travailler en équipe. Une startup est un endroit où vous ne pouvez passer côte à côte que dans des moments difficiles. Si l'on se détourne, toute l'équipe éprouve du stress. Il est important d'être en contact étroit, de surveiller les changements.

- FC : Côté technique, j'ai demandé les choses les plus élémentaires, qui montrent qu'une personne est vraiment moyenne ou senior, et fait vraiment du Python depuis de nombreuses années. Questions standard: «qu'est-ce qu'un gestionnaire de contexte», «en quoi un itérateur diffère-t-il d'un générateur», «quelles méthodes magiques connaissez-vous» et ainsi de suite. Questions de syntaxe de base que j'ai moi-même rencontrées en trois ans de travail. Et si je sais, alors une personne devrait certainement savoir. Cela a éliminé la plupart des candidats: la personne dit qu'elle est un pythoniste moyen, mais ne peut pas répondre à des questions simples de base.

Une fois le «test contre les poux» terminé, nous sommes passés aux tâches. L'une consistait à tester les algorithmes, mais il n'y avait aucun problème à résoudre de la manière la plus optimale. L'objectif était de créer une solution de travail, puis de discuter de la façon de l'optimiser.

La deuxième tâche consiste à travailler avec la mémoire. Ici, il était important de voir dans quelle mesure une personne peut penser, contourner les restrictions. Se souviendra-t-il que vous pouvez utiliser l'écriture sur disque ou toute autre chose liée à l'utilisation du réseau.

Depuis que nous avons travaillé avec Django, les choses sont devenues un peu plus compliquées: créer une vue interne pour le panneau d'administration, redéfinir les méthodes ou écrire une fonction qui utilise PostgreSQL.

- PR : Nous avons délibérément rejeté les tâches de test pendant longtemps. Lorsqu'une startup sans nom donne un test volumineux, la chance déjà faible d'obtenir une personne devient presque nulle. Il y avait certains risques, et nous les avons consciemment pris.

- Avez-vous déjà rencontré le fait que les tests contre les poux peuvent éliminer les bonnes personnes?

- FC : Oui, je connais une telle pensée. Mais je n'avais pas besoin de définitions claires des livres. J'attendais une réponse aux questions auxquelles une personne aurait certainement dû faire face si elle se développait depuis plusieurs années. , , . , . , - .

, , . , , .

— , ?

: , . , . , , , . . , .

— , ?

: , , . , , . . , , .

— — . , , .

: , , - . — , . , . , .

— - , ?

: , . . , . , , . — .



! — hr@tmtm.ru « ».

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


All Articles