ElectroNeek CTO Interview: Von der Codierung zum Prozessmanagement

Bild



Ich habe mit den Gründern des Startups ElectroNeek gesprochen: Sergey (CEO), Dmitry (CIO) und Mikhail (CTO). Am Ende des Interviews - ein Video, in dem der Roboter live zusammengebaut wird.



- Dmitry, bitte senden Sie ein Foto für den KDPV, wo Sie alle zusammen sind.

- Ob Sie es glauben oder nicht, wir haben uns in zwei Jahren noch nicht so oft getroffen.)


ElectroNeek entwickelt ein Ökosystem von Softwareprodukten, mit denen Roboter erstellt werden können, die alle Aktionen von Büromitarbeitern an einem Computer mit darauf installierten Anwendungen wiederholen. Somit ist es möglich, die Prozesse im Unternehmen ganz oder teilweise zu robotisieren. ElectroNeek ist auf die Zusammenarbeit mit Systemintegratoren und IT-Teams spezialisiert, die RPA-Kompetenzzentren erstellen. Mit anderen Worten, ihre Produkte sind für diejenigen gedacht, die Roboter in großer Anzahl entwickeln und nicht mehrere spezifische lokale Automatisierungsprobleme lösen.   



RPA (Robotic Process Automation) ist eine Technologie, die dabei hilft, sich täglich wiederholende Aufgaben zu automatisieren. Mit RPA können Sie die Aktionen eines normalen Benutzers an einem Computer buchstäblich emulieren. Sie haben mit der Maus über die Schaltfläche gefahren und geklickt, dann den Text mit der Tastatur eingegeben und die Eingabetaste gedrückt. Genau das ist RPA. Als die Nachfrage zunahm, begannen RPA-Anbieter, ihre Lösungen weiterzuentwickeln, um flexiblere Automatisierungsmechanismen bereitzustellen. Es gibt Integrationen mit Programmiersprachen, mit Technologien wie OCR, die ernsthaft über die Einführung von maschinellem Lernen nachdenken. Roboter können jetzt gleichzeitig, nach Zeitplan, aus der Ferne usw. gestartet werden. Fallbeispiele: eins , zwei , drei , vier, fünf .



- Was ist ein Roboter?



Mikhail: Robotisierung ist eine Emulation einer Person. Eine Person kann in verschiedenen Erscheinungsformen emuliert werden. Sie können physisch. Der Roboter geht wie ein Mensch. Der Roboter klickt wie ein Mensch auf den Monitor. Tippen wie ein Mensch. Es gibt niemals eine vollständige menschliche Nachahmung. Der Aspekt der menschlichen Emulation ist jedoch die Robotisierung.





- Mikhail, Yandex hat dich gejagt, aber du hast dich trotzdem für ElectroNeek entschieden. Was ist deine Motivation, in einem Startup zu arbeiten und nicht in einem warmen, garantierten Job?



Mikhail: Wenn Sie in einem Startup arbeiten, sind Sie selbst der Schmied Ihres eigenen Glücks, aber in der Firma sind Sie begrenzt. 



- Michael, wie wurdest du erwischt?



Mikhail: Zu diesem Zeitpunkt hatte ich Akronis bereits für ein Jahr verlassen, ich hörte auf, meinen Entwicklungsvektor zu sehen, ich wollte verschiedene Technologien studieren, machte Haustierprojekte. Ich wollte etwas Eigenes machen und suchte ein Team. In der Zwischenzeit suchten Dimitri und Sergei einen CTO und warfen ihren Bekannten einen Schrei zu. Ich war mit Dmitry von der Universität vertraut, obwohl wir nicht viel kommunizierten, also kamen wir zusammen. Ich war bereit für diesen Vorschlag. 



Ich musste verstehen, ob ich an das Projekt glaube oder nicht. Wir haben uns mit Sergei in einem Café getroffen, er hat mir sehr oberflächlich beschrieben, was Electroneek ist, und nach dem Treffen habe ich das RPA-Thema unabhängig genauer studiert und mir die Konkurrenten angesehen. 



Wir haben wieder angerufen, schon drei von uns. Sergey und ich saßen nebeneinander und Dmitry war zu dieser Zeit in Amerika. Wir sprachen über das Produkt, wie sie es sehen, wo sie es entwickeln wollen, für wen es ist, wie wir uns abheben werden und warum es „einen weiteren Roboterkonstrukteur“ auf dem Markt gibt. 



Ich habe gesehen, dass es zumindest in Russland Nachfrage gibt. Dmitry sprach über den globalen Markt, insbesondere über die Vereinigten Staaten. Zuvor arbeitete er bei Ernst & Young und leitete dort RPA für Fortune 500-Unternehmen, sodass er die Nachfrage gut kannte.



Sergey und Dmitry haben beschlossen, sich mit einer einfachen und bequemen Benutzeroberfläche von der Konkurrenz abzuheben, um die Robotisierung für Unternehmen jeder Größe zugänglicher zu machen. Ich musste wissen, ob meine potenziellen Mitbegründer verstehen, wie die Benutzeroberfläche aussehen wird und was genau ihre Coolness ist. Ich hörte die ehrliche Antwort "Wir wissen es nicht." Die Jungs wussten im Moment nicht, was genau sein sollte, aber sie wollten es herausfinden.



Diese Ehrlichkeit und Offenheit war mir wichtig. Mir hat gefallen, dass sie ehrlich über die Situation waren. Dies ist wichtig für zukünftige Beziehungen. Alles so zu sagen, wie es ist, und wenn eine Person angemessen ist, wird sie verstehen. Wenn Sie ehrlich sind und irgendwo ein Pfosten herauskommt, können Sie sofort nachsehen, wie Sie das Problem lösen können, unabhängig davon, wer es vermasselt hat.



- Wie sah Electroneek aus, bevor Sie dem Projekt beigetreten sind?



Michael:Vor mir gab es einen funktionierenden Prototyp, der gezeigt werden konnte. Es war ein Projekt auf GitHub, um zu zeigen, was sie tun werden.



Als ich ankam, zeigten sie mir einen Prototyp, erzählten von den Konkurrenten, von den Aufgaben, die gelöst werden mussten, und baten um gute Arbeit . Nicht am Knie, sondern lange, damit es sich entwickeln kann. Aber es gab keine Zeit, lange zu sitzen, um sich zu entwickeln, es war notwendig, schneller in den Kampf zu ziehen. Es war notwendig, zu Kunden zu laufen, es war notwendig, Geld anzuziehen. Daher habe ich von den ersten Tagen an angefangen, Code zu schreiben. Zu dieser Zeit war ich bereits mit Electron vertraut. (Electron ist ein Framework, mit dem Sie Desktop-Anwendungen mithilfe des Web-Technologie-Stacks schreiben können.)



- Was unterscheidet die Entwicklung eines RPA-Produkts von den anderen?



Sergey:Was ist der Unterschied zwischen der Entwicklung einer RPA-Plattform und einem Produkt "an sich"? Die RPA-Plattform, insbesondere ElectroNeek, ist ein Entwicklungswerkzeug. Ein Mittel, um etwas zu erschaffen, indem man mit etwas Drittem interagiert. Dies ist kein separates Produkt wie CRM, das an sich und nur manchmal über die API mit etwas anderem interagiert.



Ein auf ElectroNeek basierender Benutzer erstellt eine Softwarelösung (Roboter), die mit anderen Produkten interagiert, die sich ständig ändern: Browser, Desktops. Sie steuern nicht die Umgebung, mit der das Entwicklungsergebnis interagiert. Dies stellt enorme Anforderungen an die Qualität, an UX und an die Entwicklung von Produktlösungen.



- Warum ein anderes RPA-Produkt auf dem Markt?



Sergey:Leute kommen oft zu uns und sagen: "Warum entwickeln Sie sich, wenn Sie auf eine Website gehen, ein fertiges RPA-Clickermodul herunterladen und es erstellen können?" Ja, er kann ein Notizbuch öffnen, sich mit einem Internet Explorer vertraut machen und Google öffnen. Sobald Sie jedoch weiter gehen (sobald XPath oder Selektoren angezeigt werden), verschiedene Varianten von Websites, Regierungs- oder SaaS-Ökosystemen, werden Sie feststellen, dass diese nicht bereit sind und nicht funktionieren. Wenn Sie dann Ihre eigene Plattform entwickeln, müssen Sie sich an die Änderungen anpassen. Wenn bereits alles fest verdrahtet ist, können Sie sich nicht flexibel an die Änderungen anpassen. Wir hatten es auf dem Piloten.



- Wie haben Sie den Technologie-Stack ausgewählt?



Michael:Das Projekt implizierte, dass es sowohl einen Desktop als auch ein Webpart geben würde, eine klassische Vorderseite, eine klassische Rückseite und eine Desktop-Anwendung. Am Anfang war an dem Projekt kein großes Team beteiligt. Ich verstand, dass wir in den ersten Monaten, in denen ich alleine sein würde, nicht vorhatten, in einem grandiosen Tempo zu expandieren.



Ich musste eine Art Multi-Station bereitstellen, damit 1-3 Personen alles tun konnten. Deshalb haben wir uns für Electron entschieden. Sie können damit eine Desktop-Anwendung, ein Backend und ein Frontend in derselben Sprache schreiben (wir haben TypeScript).



In Zukunft können Sie sich spezialisieren, aber zu Beginn ist es sehr praktisch, wenn jeder alles kann.



In der Regel besteht das Problem, den Kontext vom Backend zum Frontend zu wechseln. Zum Beispiel Backing in Python, Front in JavaScript, beliebte Kombination. Und selbst wenn eine Person dies in sich selbst kombiniert, wird es für sie kostspielig und schwierig sein, von einer Sprache in eine andere zu wechseln. Und wenn Sie ein Problem lösen, wechseln Sie häufig, es ist nicht bequem. Wir haben das losgeworden, nichts ändert sich beim Wechsel: eine Sprache, ein Ansatz, sogar alles sieht gleich aus.



Dann suchte ich nach Bibliotheken, die einige meiner Aufgaben sofort schließen können, und versuchte nicht, alles selbst zu schreiben. 



Zu Beginn müssen Sie nicht versuchen, etwas mit dem Fahrrad zu fahren. Nehmen Sie es fertig, wenn es Ihren Anforderungen entspricht. Vielleicht müssen Sie dann dieses Stück wirklich herausziehen und durch Ihr eigenes ersetzen. Gleichzeitig haben Sie aber sofort ein Werkstück.



Ich nahm eine fertige Bibliothek zur Visualisierung. Unser Hauptprodukt ist eine Entwicklungsumgebung und es gibt eine Flussdiagramm-Visualisierung. Natürlich habe ich es nicht selbst geschrieben, sondern die Open-Source-Joinjs-Bibliothek genommen. Es ermöglicht Ihnen, auf der SVG-Ebene zu arbeiten. Zeichnen Sie Schnittstellen mit Vektorbildern.



Wir haben lange darauf gesessen. Manchmal denken wir, wir werden sie los, das kann jederzeit gemacht werden, aber bis jetzt führt sie alle Aufgaben aus und hält die Last.



Es ist wichtig, alles modular zu schreiben, damit Sie ein Stück wegwerfen und nicht in Ihrem eigenen Code-Netz verwirrt werden. Der modulare Ansatz ermöglicht es Ihnen, Bibliotheken schnell loszuwerden.



Unser Programm ist nicht nur ein Flussdiagramm-Editor, es löst ein bestimmtes Problem - es automatisiert den Desktop. Sie verwenden es zum Verwalten von Desktopanwendungen.



Ein wichtiger Teil unseres Programms ist eine Bibliothek auf niedriger Ebene für die Interaktion mit Anwendungen, das Drücken einer Taste, das Zählen eines Bildes und das Erstellen eines Screenshots.



Ich habe die Standard-C # -Bibliothek UIAvtomation verwendet, die zu dieser Zeit auch von unseren Mitbewerbern verwendet wurde. Wir haben es kürzlich durch ein moderneres ersetzt.



Diese Bibliothek hatte einen Wrapper, eine ziemlich enge API, die wir verwendet haben. Dann konnten wir diese Bibliothek wegwerfen, eine neue anhängen und sie mit einem Adapter an diese API kleben. Es passiert schnell und schmerzlos und sollte getan werden.







- Wie wurden die Funktionen implementiert?



  Mikhail: Ich habe mit den Mitbegründern gesprochen, sie hatten Erfahrung in der Integration der Lösung eines Mitbewerbers, sie haben verstanden, welche Funktionen benötigt werden. Sie gaben mir eine Liste von Funktionen, die sie häufig verwendeten. Ich fing an, sie eins nach dem anderen zu machen.



Buchstäblich ein oder zwei Monate später begannen wir mit einem Pilotprojekt für die russische Post.



Wir haben das Problem des Entladens der Automatisierung für sie gelöst. Sie hatten eine Desktop-HR-Anwendung für die Verwaltung von Lebensläufen. Es gab keine Schnittstelle, und Sie mussten alle Lebensläufe da rausholen. Es gab keine API, keine Datenbank und sie konnten sie nicht herausziehen.



Wir haben einfach auf diese App geklickt, die Daten von dort abgekratzt und auf die Festplatte gestellt.



Die Hauptlösung war nicht schwierig, ich habe den Algorithmus in wenigen Stunden geschrieben, aber der Teufel steckt im Detail. Viele Nuancen: Dokumente unterschiedlicher Art, einige Arten von Feldern sind möglicherweise nicht vorhanden usw. Ich habe noch etwas Zeit damit verbracht, fertig zu werden.



Für jedes Feature habe ich mich gefragt, welche Lösung ich jetzt brauche, damit ich in Zukunft Probleme dieser Art lösen kann. Wenn ein Feature diesen Filter bestanden hat, habe ich ihn hinzugefügt. Zu Beginn werden Funktionen ohne viel Diskussion hinzugefügt. Die Codebasis ist klein, hinzugefügt, ausprobiert, entfernt, es ist einfach.



Wenn die Anwendung bereits groß ist, muss für jede Funktion eine Diskussion geführt werden. Was wird das Feature beeinflussen, ob es etwas kaputt macht und ob wir einen anderen Weg haben. Zu Beginn ist es leicht, Merkmale zu sehen, sie brechen nichts, weil es immer noch nichts zu brechen gibt.



- Wie war der Umfang der Arbeit für die russische Post?



Mikhail: Der Antrag enthielt alle Mitarbeiter der russischen Post im ganzen Land. Es ist unmöglich, es mit den Händen zu schreien.



Was unser Roboter tat. Er gab eine Suche mit leeren Filtern ein. Das Ergebnis ist eine Liste aller Mitarbeiter, die über mehrere Bildschirme scrollen. Sie müssen auf jedes Element der Liste auf dem Blatt klicken, ein Fenster wird geöffnet, es gibt einen Teil der Daten und mehrere Schaltflächen, die andere Fenster öffnen. Alle Fenster mussten geöffnet werden, alle Daten mussten zusammengefügt werden, die Fenster mussten wieder geschlossen werden und zum nächsten Element in der Liste gehen. Und mit solchen Iterationen alles zu stehlen. Hier ist eine grobe Zusammenfassung des Prozesses.



Der Pilot war für beide Seiten frei und wir haben ihn nicht auf den Produktionsstand gebracht. Für uns selbst haben wir einen Proof of Concept erstellt: Auf der Plattform können Sie solche und solche Probleme lösen, Sie können damit Geld sammeln, Sie können an Kunden verkaufen und unterwegs fertig werden. Dies ist, was wir begonnen haben zu tun.



- Wie haben Sie Investitionen angezogen?



Michael:Wir brauchten einen funktionierenden Prototyp, der die Investoren beeindrucken würde. Die Oberfläche der Lösung für die russische Post war nicht schön, sie wurde von mir erstellt und ich bin kein Designer. Ich habe für mich den IDE WebStorm Dark-Modus erstellt.







Die frühen Phasen des







ElectroNeek- Prototyps im Jahr 2021



Investoren wissen, wie man Fantasie einsetzt. Sie können ihnen einen krummen Prototyp zeigen und ihnen sagen, wie er sich ändern wird und sie werden verstehen. Der Prototyp kann sogar fehlerhaft und fehlerhaft sein, aber die Hauptsache ist, ein Körnchen Bedeutung zu zeigen, damit der Investor die Essenz erfassen kann. Kunden müssen ein fertiges und schönes Produkt zeigen. Angemessene Personen verstehen den Unterschied zwischen einem MVP und einem Endprodukt. Und es ist besser, nicht mit unzureichenden zu arbeiten. Sie nehmen Investoren für eine lange Zeit, es ist angenehm, mit adäquaten Leuten zu arbeiten.



- Wie waren die Demonstrationen für Investoren?



Michael:Nehmen wir an, ich habe eine neue Funktionalität geschrieben, die morgen früh den Anlegern demonstriert werden muss. Ich verstehe, dass es in dieser Form nicht gezeigt werden kann. Vielleicht steckt etwas ein, vielleicht gibt es kein gutes Beispiel, um die Funktionalität zu zeigen. Ich sitze dort und beende nachts, finde Beispiele und fange Käfer, damit es morgens gut aussieht. Am Morgen komme ich ohne zu schlafen für die Demonstration. Ich zeige das Produkt den Investoren. Fast ohne Schlaf, aber erfolgreich.



Ohne geht es zunächst nicht. Es gibt keinen normalen Entwicklungsprozess, wenn es eine vollwertige Entwicklungsumgebung, Testumgebung, Rangliste und Produktion gibt. Es gibt nur eine Umgebung, die sowohl für Sie als auch für die Produktion bestimmt ist. Sie sind der einzige und Ihre Aufgabe ist es, es schneller zu machen. Und Sie arbeiten als Chirurg, der sich gerade für die Operation fertig gemacht und den Code "geöffnet" hat, und sie sagen zu ihm: "Nun, lass es uns schneller nähen und los geht's."



Ich musste alles tun und mithalten. Solange die Anwendung klein ist, passt sie gut in den Kopf, ein guter Entwickler kann alles selbst machen und nichts verpassen. Wenn die Anwendung wächst, ist es nicht mehr möglich, auf QE zu verzichten.



Sergei: Wir hatten begrenzte Ressourcen, wir erhielten nur 150.000 Dollar, von denen 70.000 in bar kamen. Dies war alles, was benötigt wurde, um den Prototyp zu einem normalen Produkt fertigzustellen und die ersten Verkäufe in Russland und den USA zu zeigen. Dann sammelten sie 0,5 Millionen Dollar. Wir zeigten schnelle Verkäufe. Investoren glaubten an uns.



Michael:Sobald das Geld erschien, begannen sie, das Team zu erweitern, um so schnell wie möglich ein gutes Produkt herzustellen. Was bedeutet "gut"? Sie brauchen nicht früh ein perfektes Produkt, obwohl es hergestellt werden kann. Das ist ein Fehler. Viele Leute wissen, wie man es perfekt macht, aber es dauert lange. Wenn schnell und gut, dann zu teuer. Alles ist auf einmal unmöglich. Dementsprechend muss es hier gut genug gemacht werden . Gut genug, um zu verkaufen.



Sie können ein Produkt mit Fehlern erstellen, wenn diese nicht kritisch sind, nicht in das Bein schießen und Funktionen schneller hinzufügen. Die Leute kaufen ein Produkt mit einem Fehler, sie sehen einen Fehler, einen Bericht darüber, wir beheben ihn genau dort. Die Leute sehen Feedback. Es gibt kein Problem.



- Wie stellen Sie Entwickler ein?



Michael:Ich konzentriere mich mehr auf Fähigkeiten als auf Erfahrung. Erfahrung ist wichtig, aber Entwicklung ist etwas, wo man ständig etwas lernen muss. Wenn Sie eine neue Bibliothek in das Projekt ziehen müssen, ist die Wahrscheinlichkeit, dass Sie sie kennen, nicht sehr hoch. Grundkenntnisse sind wichtig. Wir brauchten Kenntnisse in TypeScript, es dauerte lange, bis wir uns in einer anderen Sprache umgeschult hatten. Der Rahmen ist wünschenswert zu wissen. Wir verwenden von Angular.



Für uns ist es wichtig, dass eine Person ein komplexes Problem schnell und fehlerfrei oder mit leicht zu behebenden Fehlern lösen kann, die während des Laufs auftreten. Eine Person sollte in der Lage sein, viel zu denken. Wenn er in der Lage ist, viel nachzudenken, um zu verstehen, welche Art von Eckfällen es im Allgemeinen gibt, dann ist das cool.



Es kommt oft vor, dass Leute ein Programm schreiben, aber sie haben einfach nicht über einige Fälle nachgedacht. Und an wen wird er denken? QA kann auch nicht an sie denken. Und dann schießen sie. Gleichzeitig reichen die Anfangsdaten aus, um diese Eckfälle vorherzusagen. Für mich ist dies der Unterschied zwischen einem vielversprechenden und einem vielversprechenden Entwickler: Wie viele Eckfälle am Anfang kann er vorhersehen.



- Wie viele Leute gibt es jetzt?



Mikhail: Sechs Leute - Kernentwicklung, die die Plattform direkt machen. Vier Leute, die auf sindMachen Sie die Plattform wiederverwendbare Lösungen. Sie nutzen die Plattform sowie zusätzliche Tools in Skriptsprachen und erstellen spezifische Projekte. Ich spreche jetzt nur von Entwicklern. Es gibt auch eine QS-Abteilung, ein separates Produktteam. 



- Wie sind Sie als CTO von der Kodierung zur Führungsverantwortung übergegangen?



Mikhail: Nachdem ich die Investition erhalten hatte, habe ich mehrere Monate lang aktiv Code geschrieben. Obwohl wir QA eingestellt haben, war ich mir ihrer nicht besonders sicher. Ich habe die Codeüberprüfung selbst geschrieben.



Dann sah ich auf dem Kanbanbrett, dass ich ein schmaler Hals war. Und ich verstehe, dass es Zeit ist, die Zügel loszulassen, um zu akzeptieren, dass Probleme in der Produktion an mir vorbeigehen werden.



Ich habe die kritischsten Dinge überprüft. Begann sich auf die Qualitätssicherung zu verlassen. Es war ein schrittweiser Prozess, die Kontrolle loszulassen. Wenn Sie alles durch sich selbst führen, sind Sie sich des Ergebnisses sicher. Sie sehen alles, Sie können alle Probleme selbst erfassen. Dies ist jedoch keine skalierbare Geschichte. Sie ist am Anfang gut, dann musst du sie schlau loswerden. Also ließ ich nach und nach los, überprüfte nur kritische Stellen und hörte dann auf zu schreiben und zu überprüfen. Jetzt macht es jeder ohne mich. 



- Jetzt haben Sie sich mit dem Qualitätsverlust abgefunden. Wie geht es weiter?



Mikhail: Schau, ich habe nicht mehr die Möglichkeit, den Code zu überprüfen, wir haben dies bereits durchlaufen. Was kann ich sonst noch tun? Jetzt können Sie die Prozesssachen anpassen.



Angenommen, die Entwickler führen nicht sehr hochwertige Funktionen in der Hauptniederlassung zusammen. Wahrscheinlich stimmt etwas mit der Bewertung nicht. Wir werden sehen. Sie sehen, was die Leute überprüfen. Aha, um die Jungs darauf aufmerksam zu machen. Sie gehen zu den Anweisungen. Debugging-Prozesse. Auf der Suche nach Schwachstellen. Sie versuchen nicht zu arbeiten, Sie erstellen Prozesse.

Hier überprüfen die Entwickler, aber die Funktionen sind immer noch nicht sehr zusammengeführt. Fügen wir einen Funktionstest hinzu, bevor wir ihn zusammenführen. Hinzugefügt. Was ist passiert? Jetzt hat die Qualitätssicherung keine Zeit, sie zu testen. Okay, wahrscheinlich müssen nicht alle Funktionen auf diese Weise getestet werden, sondern nur die gefährlichsten, die das gesamte Projekt betreffen. Sie balancieren



Es gibt keine Vorlage für verschiedene Unternehmen, aber der allgemeine Ansatz ist der gleiche - um Ihr System zu testen und Engpässe prozedural zu beheben. Dann ist es schon eine skalierbare Geschichte.



Meine Aufgabe ist es, den Engpass zu finden, an dem das Prozessproblem liegt, mit Menschen zu sprechen und eine funktionierende Lösung zu implementieren.



Wenn ich beiseite gehe, funktioniert im Idealfall alles. Am Anfang ist das unmöglich. Schritt zur Seite, alles ist kaputt. Und jetzt sollte es sein, dass ich für einen Monat wegging und nichts kaputt ging.



- Wie kann man verstehen, wann eine bestimmte Person eingestellt werden muss?



Mikhail: Gibt es genug für diesen schmalen Hals eines Mannes? Wenn eine Person zu mindestens 70% mit dieser Aufgabe beschäftigt ist, können Sie einstellen. Wenn Sie in 5% der Fälle eine Person benötigen, können Sie diese wahrscheinlich selbst erledigen.



- Was machst du jetzt?



Mikhail: Ich bin immer noch für die Prozesse verantwortlich. Und ich werde mich noch lange mit ihnen befassen.

Ich diskutiere Features wie Sergey. Hier wächst unser Produkt. Er gibt es durch sein eigenes Prisma, ich durch mein.



Wir sind Entwickler, die ein Entwicklertool schreiben. Ich kann nicht alle Funktionen verfolgen, die wir ausführen, aber ich analysiere wichtige, komplexe, kritische oder interessante Funktionen und gebe dem Produktteam Feedback, das die darauf basierenden Funktionen optimiert. Ich beschreibe nicht, sondern höre zu, was sie tun werden, und gebe Feedback. Sergey macht dasselbe in Bezug auf Funktionen. Dies ist etwas, das wir definitiv nicht loslassen werden. Es ist wichtig zu verstehen, wohin sich das Produkt bewegt und wo wir es entwickeln.



- Wie lernst du?



Michael:Zunächst stelle ich das Problem klar dar. Die Lebenserfahrung ermöglicht es Ihnen bereits, viel zu entscheiden. Ich weiß bereits viel mehr als nach meinem Universitätsabschluss, aber es gibt immer noch Probleme, die ich nicht lösen kann.

Zuerst finde ich heraus, wo das Problem liegt. Nehmen wir an, ich habe kein Werkzeug. Ich google, schaue YouTube oder einen Kurs und finde heraus, wie sich Profis in einem bestimmten Bereich verhalten.



Wie testen Sie beispielsweise große Anwendungen, wenn viele manuelle Tests durchgeführt werden? Wir haben keine Zeit, was zu tun?



Wenn Sie in der Vergangenheit keine coole Qualitätssicherung waren, verstehen Sie indirekt, was was ist, aber Sie kennen möglicherweise einige Nuancen nicht. Ich öffne YouTube, höre mir eine einstündige QS-Vorlesung mit langjähriger Erfahrung an. Ich verstehe, dass das, was ich gehört habe, angewendet werden kann. Ich versuche es, ich analysiere. Wenn es passt, lasse ich es.



Es ist unmöglich, alles zu wissen. Die Aufgabe eines jeden Managers ist es, alles Mögliche zu lernen, zu delegieren und die Kontrollfunktion beizubehalten.



Legen Sie den Rahmen fest, in dem Personen arbeiten, und steuern Sie das Ergebnis innerhalb dieses Rahmens. Sie treffen ihre Entscheidungen selbst.



Wenn es ein Problem auf dem Markt gibt, kann die Entscheidung ohne mich getroffen werden. QA sagt, dass die Aufgabe kritisch ist und sich möglicherweise für ein Rollback entscheidet. Ich muss dafür nicht aufwachen. Die Hauptsache ist, dass die Leute den Rahmen verstehen.



- Ratschläge für dich in deiner Jugend?



Michael:Am Anfang schien es mir, dass ich zuerst viel lernen musste. Etwas, das ich noch nicht weiß. Ich kann keine Website schreiben, ich kann kein Backend schreiben. Ich wollte zuerst einen Kurs belegen oder eine Universität beenden. Nicht wirklich. Nimm es und probiere es aus. Google ist ein großartiges Tool, alles ist da. Lösen Sie Probleme punktuell. Sie wissen nicht , wie zu ihm speziell zu tun, und lernen zu tun , es speziell . Sie wissen nicht, wie Sie Nginx konfigurieren sollen. Studieren Sie dies daher speziell.



Du kannst nicht alles lernen. Es ist zu zeitaufwändig, einen mehrwöchigen Programmierkurs zu belegen. Besser mit dem Programmieren beginnen. Diese Probleme, die für Sie auftreten werden, und lösen Sie sie. Auf diese Weise geht es schneller. Und noch mehr in das Problem vertieft als ein Buch zu lesen. Wenn Sie 600 Seiten von vorne bis hinten lesen, ist das Wissen oberflächlich. Wissen ist tiefer in der Erfahrung.  



Ich habe Google in dem Sinne "entdeckt", dass ich mit meinem Wissen komplexe Dinge tun, googeln und punktuelle Lösungen für Stecker finden kann. So habe ich mich in Zukunft entwickelt.



Ich lese selektiv Bücher. Als ich ein Problem löste, fand ich ein Fragment, das die Lösung beschreibt. Artikel sind die gleichen. Sie können die Vorlesungen auch nicht vollständig ansehen. Die Vorlesungen dauern 4 Stunden. Finden Sie den Zeitcode, schauen Sie sich nur den interessanten Teil an, es kann genug sein.



- Erzählen Sie uns von Service Organization Controls (SOC)?



Sergey: Wenn Sie eine SaaS-Anwendung auf dem amerikanischen Markt erstellen möchten, insbesondere etwas, das in Unternehmen mit mehr als 200-500 Mitarbeitern funktioniert, stellt sich sofort die Frage nach SOC (Security Organization Control). Während Sie ihn nicht haben, fragen ihn alle. Dies ist eine Geschichte, die die Richtlinien der Organisation, die Verteilung nach Rechten und Zugriffsebenen, das Entwerfen des Codes und die Überprüfung durch die Prüfer kämmt.



Bis Sie es haben, fragen alle normalen Kunden danach und unterschreiben den Vertrag nicht. Sobald es erscheint und Sie sagen "Hier haben wir es, wenn Sie einen Bericht senden möchten", antworten Kunden, dass es nicht notwendig ist, "Wir möchten den Bericht nicht lesen".



Es dauert vier Monate, ist in Ordnung und wird überprüft. Eine Reihe von Aktivitäten, die sich auf den gesamten Technologie-Stack auswirken. Michael kann sagen, er hat diesen Prozess komplett vorangetrieben.



Mikhail: Wir sind eine Organisation, die Kunden betreut. Bei SOC geht es darum, welche Tools wir in uns haben, um die Sicherheit, Verfügbarkeit und Kontinuität des Dienstes sowie die Sicherheit von Daten zu gewährleisten. All diese Dinge, die große Kunden und wenig Interesse für kleine Organisationen interessieren.



Wenn unser Kunde eine große Organisation ist, kann das Fehlen von SOC ein Problem für ihn sein. Ihre Vorschriften erlauben keine Zusammenarbeit mit Ihnen. Daher tauchte es zu einem bestimmten Zeitpunkt für uns auf.



Entweder haben Sie diese Zertifizierung, SOC (es ist immer noch teuer für ein aufstrebendes Startup), oder das Unternehmen sendet Ihnen einen mehrseitigen Fragebogen, wie Sie sicher sind. Sie lesen es und verstehen die Hälfte davon nicht.



Sie können es für eine lange Zeit füllen, weil Auf Anhieb ist nicht immer klar, worum es in der Rede geht. Während Sie ausfüllen, verstehen Sie außerdem, dass wir dies nicht haben. Und das ist nicht der Fall. Und das ist auch nicht da. Und es macht keinen Sinn, diesen Fragebogen zu senden. Und es scheint nicht so schwierig zu sein, diese Dinge in die Tat umzusetzen. Aber das muss getan werden.



Irgendwann stellten wir fest, dass solche Kunden zu uns kommen, wir füllen ihre Fragebögen für eine lange Zeit aus, aber als Ergebnis der Transaktion gibt es keine. Wir haben uns entschlossen, dieses Problem zu lösen.



Diese Zertifizierung ist ein überwachender, fortlaufender Prozess. Nicht dass du es einmal getan hättest und das war's. Sie müssen regelmäßig eine Art "Kontrollkästchen" setzen. Ihre Daten werden während der Übertragung immer verschlüsselt. Sie haben Daten, die auf den Servern immer verschlüsselt sind. Falls sie irgendwo auf der Festplatte verschwinden, wird niemand etwas herausholen. Es gibt viele solcher Beispiele und auch anspruchsvollere.



Wenn Sie anfangen zu googeln, finden Sie ein 60-Blatt-A4-Blatt, was zu tun ist und wie es zu tun ist. Und jeder Punkt muss zerlegt werden, weil Sie ihn nicht verstehen. Es sieht nach einem sehr langen Job aus.



Okay, das ist der Weg, den wir noch lange gehen werden. Oder können wir ein Unternehmen finden, das unser Leben leichter macht? Unsere Firma. Zu diesem Zeitpunkt waren wir bereits bei Y Combinator. Wir haben diese Frage den Jungs von dort gestellt. Wir wurden von YC-Alumni aufgefordert, diese Geschichte zu automatisieren. Der Service ist nicht kostenlos, aber wir haben einen Service von ihnen gekauft. Dies ist eine Art Admin-Panel, in das Sie alle Ihre Dienste integrieren. JetSuit, Bitbucket, Gitlab, Jira, AWS, Azure, wer hat was. Das Programm selbst untersucht, wo Sie welche Einstellungen haben und sagt, was und wo Sie fehlen. Sie korrigieren es punktuell und alle Elemente in diesem Blatt werden automatisch geschlossen.



Danach wird ein Auditor eingeladen, der bestätigt, dass wirklich alles da ist und einen "Test" setzt. So haben wir unser Leben vereinfacht.



Für große Unternehmen ist dies eine Formalität, ohne die sie nicht weiter gehen und mit uns zusammenarbeiten könnten. Ein Plus, eine echte Steigerung der Kundensicherheit.



- Erzählen Sie uns von Y Combinator mit den Augen eines Entwicklers?



Mikhail: Ich habe nicht wirklich verstanden, wofür YC war. Es war klar, dass dies Prestige war. Und das spezifische Ziel war für mich schwer zu verstehen. Ich habe gelesen, wie es dort sein kann. Es fiel mir schwer, mir vorzustellen, welche nützliche Erfahrung man dort machen könnte. Ich war ziemlich skeptisch, dass ich mich als Profi verbessern würde. Ich habe jedoch verstanden, dass dies ein nützlicher Meilenstein für das gesamte Unternehmen ist.



Wenn wir über das Ergebnis sprechen. Wir haben mehr geschäftliche Vorteile. Sie haben auch mit technischen Ressourcen geholfen und helfen immer noch. Wir haben eine korrektere Infrastruktur in der Cloud erstellt.



Die wichtigste Erkenntnis aus dieser Geschichte ist, dass dies ein großes Plus ist, wenn Sie bereit sind, die von YC bereitgestellten Produkte zu verwenden und tiefer in ihr Verständnis einzutauchen.



Wir haben YC im März 2020 abgeschlossen und die Runde mit 2,5 Millionen US-Dollar abgeschlossen. Es begann ein deutliches Wachstum sowohl des Entwicklungsteams als auch der Aufgaben.



- Wie sind Sie zum aktuellen Produktteam gekommen?



Mikhail: Unsere Produkte sind ziemlich komplex. Sie müssen Entwickler sein, um ein Produkt für Entwickler zu verstehen. Sie müssen aus Sicht des Entwicklers verstehen, welche Funktionen implementiert werden müssen und wie unsere Kunden sie verwenden. Andererseits lohnt es sich, ein guter Geschäftsmann, ein Marktforscher zu sein. Kombinieren Sie all diese Kompetenzen. Es gibt einige Schwierigkeiten damit.



Sergey:In den letzten 4 bis 5 Monaten von März bis August haben wir zunächst einen Produktmanager eingestellt, der Erfahrung mit RPA hat. Wir haben mehrere Monate mit ihm zusammengearbeitet und keine Ergebnisse erzielt. Wir haben keinen Produktmanager aus der Serie „Wir werden Sie einstellen und Gold wird sofort herausfließen“ eingestellt. Wir wollten ein klares Verständnis dafür erlangen, welche Funktionen wir ausführen. Sie werden benötigt, um den zukünftigen Markt zu erobern und zu lösen spezifische Kundenprobleme für Upselling. Wir haben das Produkt für ziemlich messbare Metriken genommen und darüber diskutiert. Leider rollten beide Produkte. Das ist auch unsere Schuld. Wir haben Leute eingestellt, die angeboten haben, das Feature zu machen, "weil es schön ist". Wie viel Geld wird sie bringen? Nun, es ist schwer zu zählen ... Wem wird sie helfen? Wie kann es Ihnen helfen, aktuelle Trades zu gewinnen oder zumindest nicht zu verlieren? Wir haben es nicht geschafft, eine solche Geschichte zu schreiben.



Womit sind wir gelandet? Ein super komfortables Programm für uns, das unser Unternehmen sehr antreibt.



Wir haben einen UX-Produktmanager, einen Technologie-Produktmanager, einen Head of Engineering, einen CTO und einen CEO als Unternehmensvertreter. Wir haben ein Lebensmittelbüro gegründet, in dem das Produkt in verschiedene Teile „geschnitten“ wird. UX, Analyse neuer Funktionen, Engineering. Mikhail und ich spielen die Rolle von Moderatoren bei der Priorisierung. Ich bin auch für Verkaufsfunktionen verantwortlich. Dmitry untersucht, wie Produktmerkmale sind oder in Marketingmöglichkeiten und -tools wie unsere globale Bibliothek von Bots übersetzt werden können, die von Kunden und Partnern erstellt wurden.



Wir haben spontane Sitzungen, um ernsthafte Probleme zu besprechen. Wir haben auch eineinhalb wöchentliche Anrufe, bei denen wir den nächsten Sprint planen, der bereits innerhalb des Unternehmens priorisiert wurde. Neue Funktionen werden auf drei Spuren eingeführt: Fehler - Wir beheben etwas, das nicht funktioniert, den Verkauf verlangsamt oder aktuelle Kunden stört. UX - wir reparieren das aktuelle, weil wir wissen, dass das Produkt immer verbessert werden kann; Wir fügen dem Produkt etwas Neues hinzu, das es uns ermöglicht, in Zukunft effektiver zu sein. Wir arbeiten in einem solchen Rahmen. Wir möchten zu einer Person kommen, die am gesamten Produkt beteiligt ist, aber bisher scheint es uns schwierig zu sein.



Ich möchte zukünftigen Unternehmern, insbesondere Technikern, raten, nicht nur eine Option in Betracht zu ziehen (dass der CEO einen Product Owner finden muss), sondern dass es ein verteiltes Interaktionsformat gibt, das ein Ergebnis liefert.



- Ist es mit Hilfe Ihres Roboters möglich, Computerspiele und Klicks in YouTube zu bewirtschaften?



Dmitry: An unserer Basis hat ein Kunde einen Roboter gebaut, der den Wasserkocher einschaltet.



Sergey: Der Roboter kann jede Taste drücken. Wir geben ein Entwicklungswerkzeug. Was Kunden darauf aufbauen, liegt in der Verantwortung der Menschen. Sie können alles bauen, was Sie wollen.



Sergey:Wir hatten eine Geschichte. Der Kunde kaufte den Service und schrieb dann: „Ich habe speziell das am wenigsten entwickelte Mädchen in der IT-Richtung in unserem Unternehmen ausgewählt, Olya. Und so konnte "Olya" mit Hilfe von ElectroNeek einen Roboter erstellen. Wenn "Olya" das kann, kann es jeder in meiner Firma. Ich kaufe ein Produkt von Ihnen! " Dies ist ein hoher Indikator für die Benutzerfreundlichkeit. Obwohl meistens Junior- oder Middle-Level-Entwickler uns benutzen. Sie erhalten ein Produkt in einem beliebigen Stapel (Web, Desktop, gibt es eine API oder nicht), erstellen eine Anwendung (einen Roboter?). Dies ist die Freiheit, die unser Produkt bietet.



Dmitriy:Wenn ein Produkt frühzeitig bei Investoren ankommt, wurde dort die Geschichte mit Olya wiederholt, da ist Oli unter den Investoren. Es gab Situationen, in denen Partner amerikanischer Top-Fonds in das Produkt eintraten (Gary Ten von Initialized, ehemaliger YC-Partner und Investor in Coinbase und Instacart). Der Partner begann den Roboter mit seinen Händen zusammenzubauen.



Bonus: Einen Roboter live sammeln







Weiterlesen






All Articles