Pengujian dan Startup AI: Wawancara dengan Adam Carmi (Applitools)


Ada frasa populer "garuk-garuk gatal Anda sendiri": jika Anda ingin membuat produk baru, lakukan yang Anda sendiri kekurangan. Dalam hal ini, Anda sebaiknya memahami cara melakukannya dengan baik.


Adam Carmi sangat menyadari kurangnya alat pengujian visual yang akan membantu orang tidak merusak mata mereka dalam mencari tata letak yang dilalui. Dan pada akhirnya, ia menciptakan alat seperti itu, mengadaptasi AI untuk ini, dan menjadi salah satu pendiri Applitools. Kedengarannya seperti pekerjaan impian: ketika Anda berjuang dengan rasa sakit yang Anda tahu, Anda merasa bahwa Anda mengubah dunia menjadi lebih baik. Tetapi kesulitan apa yang dihadapi seorang spesialis TI ketika nasib seluruh perusahaan bergantung padanya?


Dan karena alat Applitools itu sendiri juga perlu diuji, Adam belajar banyak tentang proyek pengujian dengan AI. Besok di Heisenbug dia akan berbicara tentang bagaimana melakukan ini, dan laporannya akan disiarkan langsung - sehingga semua orang dapat menontonnya langsung. Sementara itu, kami bertanya kepadanya tentang kedua topik: bagaimana rasanya menciptakan perusahaan, dan hal-hal yang berkaitan dengan pengujian dan AI.


Kehidupan awal


Evgeny Trifonov ( phillenium ): Anda adalah seorang karyawan selama bertahun-tahun, dan kemudian Anda memutuskan untuk membuat startup. Bagaimana ini bisa terjadi dan apa dorongannya?


Adam: Pekerjaan saya sebelumnya adalah perusahaan keamanan informasi. Saya bekerja di sana selama 8 tahun. Saya pikir Anda dapat membayangkan berapa banyak UI yang ada dalam produk keamanan. Sejumlah besar log, bagan, grafik, kueri, dan peringatan. Dan di sekitar semua ini ada banyak UI yang tidak terlihat.


Semuanya menjadi rumit oleh fakta bahwa UI ini diterjemahkan ke dalam 6 bahasa dan dipasok dengan lima merek berbeda. Untuk menguji semuanya secara manual dari awal hingga selesai dalam semua variasi, perlu waktu sekitar satu minggu. Ada 20 penguji yang melakukan ini setiap iterasi. Artinya, jika rilis membutuhkan beberapa iterasi, maka ini membutuhkan siklus rilis setidaknya 2-3 bulan.


Karena itu, pada tahun-tahun ketika saya bekerja di sana, saya tidak memiliki solusi untuk masalah ini. Tentu saja, kami terlibat dalam otomatisasi. Selenium saat itu masih merupakan produk muda, kami menggunakannya, tetapi tidak mencakup UI. Saya terus-menerus menjelaskan masalahnya kepada vendor pada saat itu (HP, Microsoft dan IBM) dan meminta solusi. Jawabannya selalu satu: tidak mungkin. Untuk memverifikasi bahwa antarmuka tampak sebagaimana mestinya (bukan hanya "berfungsi sebagaimana mestinya"), penguji manual akan selalu dibutuhkan.


Mendengarkan jawaban ini selama bertahun-tahun, saya memutuskan untuk terlibat dalam instrumen semacam itu untuk tim saya sebagai proyek sampingan. Saya sudah menulis kode sejak 10 tahun, saya sangat menyukainya, saya bisa melakukannya. Dan karena itu, bahkan ketika saya memimpin tim besar, saya selalu memiliki proyek kesayangan: Saya menulis permainan untuk anak-anak saya, lalu saya hanya bermain-main dengan hal-hal menarik. Dan saya benar-benar ingin menyelesaikan masalah ini. Saya segera melihat betapa sulitnya itu, tetapi itu hanya mendorong saya untuk bekerja lebih keras dan mengambil keputusan.


Dalam sekitar satu tahun kerja, saya berhasil meletakkan fondasi. Dan pada saat ini, perusahaan tempat saya bekerja dibeli oleh perusahaan lain. Dan saya memutuskan untuk melanjutkan bisnis saya sendiri daripada pindah ke yang lain.


Secara umum, motivasi saya adalah mengerjakan sesuatu yang membuat saya tertarik pada tingkat teknologi. Saya tidak punya ambisi untuk menjadi pengusaha yang hebat. Itu hanya soal bisa mengerjakan apa yang membuatku terpesona.


Eugene: Ketika orang-orang IT menemukan perusahaan, seringkali bukan masalah teknologi yang menjadi masalah, tetapi sisi bisnis. Anda memiliki pengalaman dalam posisi manajerial - seberapa banyak itu membantu? Apakah Anda merekomendasikan untuk mendapatkannya sebelum mendirikan perusahaan Anda?


Adam: Pertama-tama, saya ingin mencatat bahwa seseorang tidak boleh membingungkan pengalaman manajemen dengan bisnis. Ini adalah hal yang sangat berbeda.


Menjadi teknisi adalah keterampilan terpisah. Anda menarik orang-orang berbakat, menginspirasi mereka untuk bekerja keras, memastikan bahwa mereka tetap berada di tim Anda selama bertahun-tahun dan pekerjaan itu memikat mereka. Saya percaya ini sebagian besar karena menjadi insinyur yang baik, dan tidak terkait dengan bisnis.


Ada orang yang percaya: karena saya membuat startup, maka saya akan menjadi CEO. Saya sendiri tahu segalanya, tidak ada penasihat saya. Banyak orang berpikir dan gagal. Bahkan mereka yang telah menjadi CEO yang sangat baik. Anda bisa membuat kesalahan dengan cara ini.


Posisi saya benar-benar berbeda. Saya segera menyatakan bahwa saya tidak tahu bagaimana menjadi CEO. Oleh karena itu, saya berkata: mari temukan seseorang yang sudah tahu apa yang harus dilakukan dan yang memiliki pengalaman yang relevan dalam masalah ini. Dan biarkan dia menjadi CEO, dan saya akan bertanggung jawab untuk komponen teknis.


Ini tidak menjamin sama sekali bahwa dalam hal ini semuanya ternyata, tetapi setidaknya saya tidak membuang waktu membuat kesalahan yang dapat sepenuhnya dihindari jika orang yang berpengalaman menangani ini.


Sebelum perusahaan tempat saya bekerja selama 8 tahun ditelan, CEO kami datang untuk memberi tahu saya tentang ini, kami mulai memikirkan rencana untuk masa depan, dan saya memberi tahu dia apa yang sudah saya kerjakan pada waktu itu. Dia segera menjadi tertarik, menyelidiki situasinya dengan benar, memutuskan untuk bergabung dengan saya, dan sejak itu kami berdua bekerja di Applitools.


Saya ulangi, saya percaya bahwa seorang insinyur bukanlah pilihan terbaik untuk memulai. Peluang tidak ada di pihak Anda. Perlu menemukan seseorang yang tahu apa yang dia lakukan. Ini akan meningkatkan peluang keberhasilan, meskipun tidak menjamin apa pun.


Eugene: Mengerti. Dan dalam situasi ini, ketika tugas bisnis yang rumit ada pada orang lain, hal apa yang paling berkeringat bagi Anda?


Adam: Itu membuat saya berkeringat ... Saya tidak ingin merinci tentang kesulitan khusus untuk Applitools. Saya pikir ini: senang sekali bahwa wirausahawan pemula sangat naif. Tentu saja, ini adalah klise yang diulangi semua orang, tetapi sampai Anda melakukannya sendiri, Anda bahkan tidak membayangkan tekanan, ketidakpastian, naik turunnya psikologis yang Anda alami dengan perusahaan. Pada hari yang sama tampaknya Anda akan menaklukkan dunia dan Anda harus memecat semua orang. Butuh waktu untuk beradaptasi dengan ini dan mulai melihat hal-hal dalam perspektif. Ini sangat sulit.


Nah, ada kesulitan yang biasa - untuk produk bekerja dengan baik, untuk berurusan dengan komponen teknik, bekerja keras.


Mikhail Druzhinin ( xomyakus ): Kedengarannya seperti pengembangan adalah bagian yang sederhana. Setidaknya dia bisa ditebak.


Adam: Tepat sekali.


Selama bagian pertama kehidupan startup, ketika tidak jelas apakah dia akan bertahan, tidak mudah untuk menemukan diri Anda dalam situasi di mana Anda menemukan bahwa Anda tidak lagi memiliki uang. Anda sudah naik ke tabungan pribadi Anda untuk membayar gaji kepada karyawan. Mereka yang sebelumnya Anda yakini dengan bantuan karisma Anda meninggalkan tempat mereka dan bekerja untuk Anda dengan gaji yang lebih rendah hanya karena mereka percaya pada Anda.


Tetapi bahkan ketika Anda meninggalkan mode bertahan hidup, Anda memiliki produk dan pelanggan yang luar biasa, jika Anda mengumpulkan dana, Anda memiliki investor yang akan menunggu untung dari investasi mereka. Sekarang ada tekanan konstan untuk tumbuh dan berkembang pada kecepatan yang sangat tinggi, dan ini membutuhkan pendekatan kreatif dan banyak pekerjaan, karena Anda harus mengatasi pertumbuhan ini.


Katakanlah penjualan Anda berjumlah X juta per tahun, dan Anda bersukacita karena kesuksesan. Tapi tahun depan Anda harus menjual dua kali lipat, bagaimana melakukannya?


Michael: Anda berkata tentang kreativitas, apa sebenarnya yang dimaksud dengan ini?


Adam: Biasanya Anda berpikir: Saya membuat produk yang hebat, sekarang seluruh dunia akan menggunakannya.


Kenyataannya adalah bahwa dunia ini sebenarnya sangat sibuk. Dunia tidak tahu tentang keberadaan Anda. Dunia selalu memiliki 10 hal berbeda untuk dilakukan, dan Anda tidak dapat mengontrol di mana Anda akan berada dalam daftar ini. Dan Anda tidak punya banyak uang untuk mengenal Anda. Uang adalah anggaran untuk iklan, konferensi, webinar, penjualan pribadi. Semua ini hanya membutuhkan satu ton uang.


Dan kreativitas di sini berarti berpikir di luar stereotip dan menggunakan pendekatan yang hanya membutuhkan sedikit uang dan sumber daya. Applitools dapat melakukan ini, ini memungkinkan kita untuk mengambil ketinggian baru setiap tahun. Tetapi setiap kali kita harus melampaui.


Michael: Tepat, Anda harus berpikir lebih luas. Saya perhatikan bahwa banyak pengembang dan penguji berpikir sangat mudah, mereka hanya melihat satu solusi untuk masalah ini. Butuh lima bulan dan banyak sumber daya untuk pengujian. Kemudian mereka diberitahu: Anda tahu, hanya tinggal satu bulan lagi, dan kemudian kita semua akan mati. Di sinilah kreativitas dimulai!


Adam: Ya tentu saja. Ada juga kreativitas, yang menyangkut produk itu sendiri: Anda selalu perlu mengikuti, melakukan beberapa hal lebih cepat dan lebih efisien. Ini tidak perlu dikatakan lagi.



Eugene: Kembali ke topik pertumbuhan: berapa banyak orang saat ini bekerja di Applitools, dan seberapa cepat angka ini tumbuh?


Adam: 110 orang bekerja hari ini. Dan pada awal 2018, ada sekitar 20 orang dari kami. Pertumbuhannya cepat, lima kali dalam beberapa tahun.


Eugene: Mengesankan, ya. Tetapi apakah sulit pada tingkat pertumbuhan seperti itu, ketika banyak orang baru datang, untuk mempertahankan budaya perusahaan?


Adam: Pertanyaan yang bagus. Dari pengalaman saya sendiri, saya menyadari betapa pentingnya budaya perusahaan yang terdefinisi dengan baik. Tampaknya sekarang saya bisa membuat laporan lengkap tentang topik ini.


Untuk memulainya, konsep budaya perusahaan di Israel tidak terlalu berkembang. Jika seseorang mencoba melakukan ini, reaksi orang adalah "oh, ini omong kosong perusahaan".


Dan bagi kami itu telah menjadi titik awal. Apa yang saya putuskan untuk lakukan dengan Applitools sebagai manajer R&D? Melihat kembali pengalaman saya di perusahaan lain, saya ingin melakukan percobaan: secara umum, saya tidak akan diizinkan untuk menurunkan standar ketika merekrut orang, hanya mengambil spesialis yang sangat baik dan itu saja. Tidak ada kompromi. Itu sangat sulit.


Tentu saja, karyawan pertama adalah mereka yang Anda kenal secara pribadi dan yang Anda yakini akan mengunjungi Anda. Namun setelah itu menjadi sangat sulit untuk tumbuh. Terkadang kami membutuhkan 6-8 bulan untuk menemukan karyawan yang tepat.


Tetapi seiring berjalannya waktu, itu menjadi lebih mudah, karena tim Anda sudah memiliki banyak spesialis yang kuat, dan mereka mengenal orang-orang berbakat lainnya. Dan ketika orang-orang berbakat ini mulai mencari pekerjaan, mereka melihat nama-nama karyawan perusahaan Anda - dan ada pembicara yang kuat di konferensi internasional, yang terkenal di masyarakat setempat. Dan kemudian menjadi mudah: mereka lebih tertarik pergi ke Anda daripada di beberapa perusahaan besar.


Ini memungkinkan kami untuk membuat proses pengembangan yang unik, yang bahkan sulit disebut proses. Setiap pengembang kami memiliki tanggung jawab untuk semua yang terjadi. Kami tidak memiliki sprint, rilis yang direncanakan, kami bahkan tidak memerlukan tim produk untuk memberikan spesifikasi lengkap.


Sudah cukup bahwa Anda punya ide, dan Anda bertanggung jawab untuk implementasinya. Anda sendiri sedang mencari informasi yang Anda butuhkan, Anda sendiri sedang mencari orang untuk membantu Anda. Jika Anda tidak tahu cara melakukan sesuatu, Anda bertanggung jawab untuk mempelajari cara melakukannya.


Jadi kami berhasil membuat sesuatu yang istimewa. Dan ketika kami menarik sejumlah besar investasi dan tahu bahwa kami akan tumbuh, saya sangat khawatir tentang hal itu. Bagaimana cara mempertahankan keunikan kita, dan tidak menghancurkannya selama pertumbuhan, ketika tim teknik berlipat tiga?


Keputusannya adalah untuk memperbaiki proses ini dan dengan jelas mendefinisikan budaya.


Saya mulai dengan mempekerjakan SDM yang sangat baik yang bekerja untuk Dropbox. Faktanya, dia mengumpulkan seluruh tim Dropbox, dan sekarang dianggap sebagai salah satu tempat terbaik untuk bekerja di dunia. Dia sangat berpengalaman. Kami hanya duduk dan mulai menulis konsep budaya baru kami.


Kami mempresentasikan pencapaian kami kepada Timlids, yang sepenuhnya menolak semua ini. Dan mereka menjadi sangat marah. Dan kemudian dialog dimulai. Dalam proses diskusi dengan sejumlah besar umpan balik, kami dapat merumuskan apa artinya bekerja di perusahaan kami. Kami mendapat daftar nilai yang disetujui semua pemimpin tim.


Butuh beberapa bulan, tetapi pada akhirnya, ketika kami mempresentasikan hasilnya kepada seluruh tim, orang-orang segera mengambilnya. Mereka segera merasa bahwa kata-kata itu mengungkapkan dengan tepat mengapa bekerja di perusahaan kami sangat menyenangkan. Kali ini kami mendapat tanggapan yang bagus.


Sekarang kami secara religius menjaga nilai-nilai ini dan memastikan bahwa ketika memperluas negara, tidak ada konflik dengan mereka. Ini membantu kita dalam membuat keputusan dan mempertahankan atmosfer, dan saya berharap bahwa di masa depan itu akan terus membantu.


Eugene: Detail menarik lainnya tentang Applitools: kantor pusat Anda berada di Lembah Silikon, tetapi R&D ada di Israel. Bisakah Anda memberi tahu mengapa demikian?


Adam: Pertama-tama, ketika Anda memulai sebuah perusahaan, pada awalnya Anda bekerja dari rumah, dari sebuah kafe di dekat rumah Anda, atau bepergian.


Perusahaan saya didirikan dan tumbuh di Israel, karena ada banyak IT. Dan hanya karena aktivitas kami di Israel, kami berhasil menyebar ke seluruh dunia. Ketika sebuah perusahaan besar memiliki tim di Israel, dan mereka menggunakan semacam alat di tim ini, sebagai hasilnya, tim lain di perusahaan ini (di AS, Inggris, di tempat lain) melihat ini. Dan jika Anda melakukan alat ini, produk Anda tiba-tiba memiliki pelanggan asing, meskipun Anda belum terlibat dalam pemasaran atau penjualan di luar negeri.


Tetapi dari titik tertentu Anda ingin lebih dekat dengan pelanggan Anda. Dan sebagai perusahaan yang menarik investasi, Anda ingin lebih dekat dengan investor yang memiliki jumlah yang sesuai. Dana Israel terutama bekerja dengan startup di tahap awal, sehingga lebih sulit untuk mendapatkan jumlah besar dari mereka. Atau investasi mereka kurang bermanfaat, karena mereka tidak memiliki koneksi seperti dana ventura dari Amerika Serikat. Menjadi dekat dengan orang-orang ini dan menjaga hubungan dengan mereka sangat membantu. Lagi pula, saya ingin berada dalam situasi di mana investor ingin berinvestasi pada Anda dan menoleh kepada Anda (dan Anda setuju untuk menerima uang atau tidak), dan Anda tidak mengejar mereka.


Saya juga ingin lebih dekat dengan klien, dan kami sudah memiliki lusinan manajer penjualan. Di wilayah AS manakah bisnis dapat berjalan paling aktif bersama kami? Kantor kami untuk karyawan ini berlokasi di sana, dan ini juga kantor pusat yang terletak di sebelah investor.


Dan R&D, mulai di Israel, tetap di dalamnya. Ada spesialis yang sangat baik di sini, dan pada saat yang sama menjaga tim insinyur di sini jauh lebih murah daripada di Lembah Silikon, dan persaingan untuk bakat tidak begitu tinggi. Untuk semua alasan ini, saya senang tinggal di sini di Israel, mengepalai kantor Israel. Ini bagus untuk saya dan perusahaan. Dan dua rekanan saya telah berada di San Francisco selama hampir empat tahun sekarang.


Michael: Dan selain bilah tinggi yang Anda sebutkan saat merekrut, apakah Anda menggunakan trik lain untuk mencegah tingkat kualitas jatuh dengan pertumbuhan yang cepat?


Adam: Saya dapat memberi tahu Anda apa yang saya lakukan sekarang (mungkin ini akan berubah di masa depan).


Saya sangat percaya bahwa pengembang yang baik membuat perangkat lunak yang benar-benar berfungsi. Dia tidak membuat perangkat lunak seperti itu yang sudah dia selesaikan, tetapi yang lain masih perlu mengujinya. Adalah tugasnya untuk membuatnya bekerja. Saya tidak peduli bagaimana dia melakukannya. Tidak masalah jika dia menguji semuanya secara manual setiap kali atau mengotomatiskan pengujian. Saya benar-benar tidak peduli. Tapi ini pekerjaannya dan tugasnya.


Secara umum, orang-orang yang menulis algoritma dan backend lebih puas dengan keadaan ini. Tetapi front-end tidak terlalu senang, karena pengujian UI jauh lebih sulit daripada API dengan unit test.


Ada satu masalah dengan semua ini. Tentu saja, Anda kemungkinan besar memiliki pengembang yang memahami bahwa ia harus menguji semua yang ia tulis. Dia tahu bahwa ini adalah pekerjaannya, dan setuju untuk itu. Tetapi ketika Anda bertanya, "Apakah semuanya diuji dengan baik?" Dan dia menjawab "Ya," ini adalah jawaban yang sangat subyektif. Dia melakukan sesuatu, tetapi mungkin 50% dari apa yang seharusnya, dan dia menulis kepada dirinya sendiri di buku catatan "setelah rilis itu akan diperlukan untuk kembali ke ini".


Dan bahkan ulasan kode tidak akan memberi kita gambaran lengkap tentang apa yang terjadi, karena karyawan yang melakukan pemeriksaan kode juga sibuk. Dia mengatakan bahwa ada beberapa tes, dan dia melihat beberapa dari mereka - semuanya baik-baik saja, mari kita lanjutkan.


Itu sebabnya saya punya sutradara yang berkualitas (bukan QA).


Dia memiliki timnya sendiri. Tujuannya di perusahaan adalah untuk memastikan bahwa semuanya telah diuji dan bahwa pengembang benar-benar mencakup semuanya. Sederhananya, segala sesuatu tentang kualitas harus diuji. Direktur berkualitas memiliki banyak wewenang dan kebebasan. Jika dia mengatakan kepada saya bahwa sesuatu tidak cukup tertutup, kita tidak akan melakukan apa pun sampai kita mengetahuinya.


Timnya juga membantu tim pengembangan mengisi kekosongan. Terkadang masalah ditemukan secara retrospektif ketika tim terkait sibuk dengan beberapa fitur dan mereka tidak punya waktu untuk berganti - maka tim direktur kualitas dapat mengambil tugas-tugas ini.


Namun tim ini bertanggung jawab untuk pengujian ujung ke ujung, yang memengaruhi berbagai tim dan produk. Ini adalah zona yang sulit dijangkau oleh tim teknik: mereka dapat menangani apa yang menjadi tanggung jawab mereka, tetapi ketika sesuatu mempengaruhi beberapa tim atau produk sekaligus, sulit untuk berharap bahwa salah satu dari mereka akan mengatasinya dan akan berusaha menjawab untuk semuanya. Itu tidak bekerja seperti itu.Oleh karena itu, direktur kualitas bertanggung jawab atas pengujian yang rumit tersebut. Dia dapat datang dan memberi tahu saya "Saya membutuhkan sumber daya teknik untuk itu," karena untuk beberapa bagian dari tes dia mungkin tidak memilikinya.


Ini adalah cara kerjanya secara umum, meskipun ada beberapa aspek. Ketika Anda bekerja di perusahaan yang terdiri dari lima orang, mereka tidak masalah, tetapi ketika Anda memiliki kantor di bagian lain dunia, dan ada dukungan, banyak komunikasi tiba-tiba muncul sehubungan dengan setiap rilis. Jika sesuatu tidak berfungsi sebagaimana mestinya, atau jika sesuatu yang baru muncul, pelanggan mulai mengajukan pertanyaan dukungan. Dan jika mereka tidak cukup tahu apa yang telah berubah, maka mereka tidak akan bisa merespons dengan baik.


: , , , . , ? , , , . — .


: , ? Applitools Applitools?


: , UI Applitools Applitools. , , , , UI API. .


, , . , , .


: UI, , . , UI. roadmap, , .


— , , , . , . , .


, . , , UI , .


( , , ), . , . , -, — Apple, Netflix, Dropbox, IBM.


AI


: , . «AI and testing», -: « - AI», « AI». AI: ?


: — , AI. - AI, ? , — , , .


, — , AI. 80% , AI.


: «I» , . ?


: .


« , , , ». , AI . , , . .


, . , .


, — . , . , . , , .


AI . AI — , , , .


: AI AI?


: . Applitools Applitools, , AI-. , - AI AI.


, , « ». , , « ».


— , . — , , , .


: , Applitools, AI - — , ?


: . AI «» . , AI . , — :


  • AI. Ini sangat penting.
  • AI, , AI
  • AI , -

— «self-healing tests». , UI , «», .


AI? . : , .


: , , . - — , . . - , , — «». , UI , , .


: , , , AI.


, , AI. , ! .


, , , , . - , . , , . , .


: . , - , . « », . «, , , - ».


: . . , , . , . , , . , . , , . , ?


, . , . , : 100%, . . , .


: Heisenbug , . , , ?


: . , , . , . , , .


, . . , , , , . . . , - , . Mengapa .


: . ?


: . , .


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


, . . , , , . , , .


, . , , . .


Heisenbug, 5 . Heisenbug , . , Heisenbug , , ( , ).

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


All Articles