pengantar
Saya menyapa semua orang, nama saya Kirill, saya adalah manajer produk atau insinyur, penyelenggara atau mandor dan teknisi, atau mungkin tidak keduanya, sejujurnya saya tidak tahu siapa saya berdasarkan profesi, tetapi dalam waktu yang relatif singkat saya berhasil membuat tim pengembangan, pemasang, desainer yang, pada gilirannya, berhasil mengimplementasikan produk besar di bidang IoT. Pada artikel ini saya ingin berbagi dengan Anda kesalahan apa yang kami buat dalam pengembangan produk dan kesalahan dalam bidang hukum dan kontrak dalam pengembangan produk.
Jadi, semuanya dimulai dari saat saya meninggalkan posisi insinyur untuk desain peralatan elevator, dan dengan pendidikan seorang teknolog teknik mesin, saya mendapat pekerjaan di salah satu perusahaan konstruksi besar di kota, sebagai administrator sistem untuk pengumpulan otomatis pembacaan meteran dan kontrol pasokan media termal ke apartemen, seperti Rumah pintar di gedung apartemen. Saat itu, developer memiliki persyaratan sebagai berikut:
- Akuntansi untuk semua perangkat apartemen
- Mengontrol pasokan media termal sesuai dengan prinsip termostat
- Analisis konsumsi
- Alarm dan peringatan
- Antarmuka untuk perusahaan manajemen dengan semua objek
- Antarmuka tempat tinggal
Rumah-rumah dibangun besar, setinggi 20-25 lantai, dengan rata-rata 280-300 apartemen per bagian. Pada saat itu, pengembang memiliki sekitar 10 rumah seperti
itu.Setelah mulai bekerja, hal pertama yang saya lakukan adalah mencari tahu bagaimana kedua sistem yang sudah diterapkan di lokasi konstruksi pelanggan bekerja. Ini adalah dua sistem yang sangat berbeda: dari protokol transmisi antara server dan peralatan lapangan (beberapa memiliki CAN-bus, yang kedua memiliki Modbus RTU dan TCP), hingga arsitektur aplikasi itu sendiri (beberapa memiliki perangkat lunak yang ditulis sendiri yang diluncurkan di awan, yang kedua memiliki SCADA untuk setiap objek dengan komputer lokal).
Tapi satu kesamaan yang dimiliki orang-orang ini, mereka berdua adalah produsen peralatan mereka sendiri (blok, pengontrol, gerbang), yang mereka jual dengan harga yang sangat tinggi, peralatan mereka tidak memiliki sertifikat, itu. dokumentasi, dan tidak ada kemungkinan pertukaran. Jadi, ketika perangkat gagal, dan ini sering terjadi, kami harus membeli peralatan dari mereka dengan harga yang melambung. Dan beberapa momen tidak menyenangkan lagi dalam bekerja dengan rekan-rekan ini.
Mengupgrade aplikasi dari segi fungsionalitas tidak mungkin dilakukan, bukan karena harganya yang sangat tinggi, tetapi karena mereka tidak dapat / ingin / tahu bagaimana cara menghitung biaya revisi, dan mereka tidak membutuhkannya. Mereka memiliki bisnis yang dibangun untuk memelihara dan mengganti perangkat mereka.
Kami membayar perangkat lunak setiap saat, tetapi perangkat lunak apa? Lisensi, pembelian perangkat lunak berdasarkan kontrak, pengembangan perangkat lunak? Hanya ada satu jawaban untuk semua pertanyaan - "Perangkat lunak kami, tulis surat."
Sebenarnya, semua faktor di atas mengarah pada fakta bahwa saya menyarankan untuk mengumpulkan tim pengembang dan memotong sesuatu yang serupa, tetapi menggunakan peralatan buatan pabrik yang tersedia di pasar negara dan Eropa.
Keputusan dan kesepakatan pertama
Jadi saya datang untuk bernegosiasi dengan manajemen saya - direktur # 1. Dia menawarkan untuk membentuk tim untuk pengembangan pengembangan produk siklus penuh - desain - instalasi - start-up - operasi. Untuk memulainya, kami setuju bahwa kami akan melakukan outsourcing satu pengembang back-end - Lech dan melakukan outsourcing tim pengembang dan desainer web. Biaya untukku dan Lyokha sangat kecil bahkan memalukan untuk memikirkannya, tapi aku mengambil kesempatan karena lima alasan:
- , , , .
- ! .
- .
- , .
- , .
MVP
Untuk merayakannya, kami membeli pengontrol Siemens Modicon MT221 pertama dengan ModBus TCP, selama empat hari kami menulis program di dalamnya dalam bahasa Diagram Tangga, di mana, ketika kontak ditutup, register berubah dari 0 ke 1, kami mengujinya menggunakan program Modbus Poll (secara kasar, klien Modbus TCP ), dan di sini Leha berkata:
"Di departemen kami diajari bahwa tugas-tugas semacam itu diselesaikan menggunakan sistem SCADA"
yang saya jawab:
"Leha, Anda harus melawan kejahatan, bukan bergabung."
Kami memutuskan untuk melakukan ini - Lech mencoba mencari SCADA dan mengambil data dari pengontrol dan menyimpannya di suatu tempat, dan saya akan mencoba menulis program di Java, saya baru saja mengambil kursus Java Elementary saat itu (guru saya dari kursus tahu bahwa saya akan mencoba kode ...).
Dan sebagai hasilnya, Lech menerima data dari pengontrol melalui ModBus TCP terlebih dahulu, tetapi melipat komputernya dengan layar biru karena 4-6 SCAD di komputer. Dan dengan bantuan Java dan 5 baris kode, saya mengeluarkan datanya, Lesha menyukainya dan dia terjun ke dunia Java dan saya dengan bangga dapat mengatakan bahwa dia menjadi spesialis yang sangat baik.
Seingat saya sekarang, pada 10 Maret 2018, kami memulai proyek pertama. Kami memiliki 6 bulan untuk menulis program, membuat desain, merilis dokumentasi desain, menginstal dan memulai.
Saya benar-benar masuk ke desain, pemilihan peralatan dan topologi jaringan, instalasi dan desain (saya sendiri melakukan proyek pertama di AutoCAD, dan pada pertama kali saya menarik kabel di fasilitas), dan Lech mengambil semua yang terkait dengan server, kembali dan DB.
Banyak yang tidak percaya pada kesuksesan kami dan tidak memberi kami tugas-tugas khusus, kedengarannya seperti ini:
- tarik data dari penghitung
- ditampilkan di suatu tempat
Kami awalnya memiliki beberapa visi tentang bagaimana ini harus bekerja. Menguraikan persyaratan minimum kami untuk apa yang ingin kami capai:
- kita harus mengumpulkan bacaan dari meter panas, meter air dingin dan panas, meter listrik
- menerima data dari semua sensor suhu yang terletak di apartemen
- mengontrol suhu di apartemen menggunakan sensor ini dan pengaturan yang akan diatur oleh penyewa
- penyewa harus memiliki akun pribadinya sendiri, di mana pengguna penyewa akan menerima data di apartemennya: grafik pembacaan, umpan balik dari perusahaan manajemen, pengatur suhu
- Administrator harus memiliki aplikasi web dengan semua data sistem, alarm, pengguna dan analitik
Dalam 1 bulan, kami mencoba semua solusi siap pakai yang kami temukan di 20 halaman pencarian Google. Setiap solusi memiliki 1 atau lebih masalah berikut:
- tidak ada otentikasi terpisah
- tidak ada cara untuk membuat API yang aman untuk data yang dikumpulkan
- desain dari tahun 90-an
- pertunjukkan yang buruk
- tingkat rendah kustomisasi logika backend
- harga yang tidak dapat diterima untuk solusi dari tugas yang dipilih
Naluri saya memberi tahu kami bahwa jika kami menggunakan salah satu sistem ini, kami tidak akan lebih baik dari pesaing kami. Yang membawa kami ke jalan yang berbeda, jalan yang indah. Kami mengambil jalur penulisan sistem dan produk kami dalam bahasa terbaik di dunia, Java atau EasyModbus. Dan ketika kami sedikit memodifikasi kodenya dan memaksa konsol untuk melaporkan sebuah tombol yang ditekan untuk kesenangan kami, maka tidak ada batasan. Dalam perjalanan pulang, kami tidak bisa tenang dan membahas berapa banyak kesempatan yang bisa kami berikan! Kami akan membuat SCADA kami sendiri dengan aplikasi web yang indah dan rumah pintar. Malam itu, kami menyusun rencana untuk tahun depan. Tapi semuanya masih di depan ...
Kami mulai dari yang kecil, dan sebulan kemudian kami memiliki perangkat lunak pengontrol suhu yang ditulis dalam FBD siap. Tumpukan backend kami adalah Java 8 + MySQL. Segera, kelas siap untuk bekerja dengan pengontrol yang dapat diprogram secara bebas. Sebulan kemudian, kami berhasil menguji sekelompok backend dan gateway yang menginterogasi pengukur panas menggunakan protokol M-BUS. Mempelajari cara bekerja dengan MySQL. Kami mulai menulis semua data yang diterima ke dalam database. Untuk membaca pembacaan dari meteran listrik melalui antarmuka RS-485 (PLC tidak cocok untuk kami), kami membuat protokol rekayasa terbalik dari data awal dari monitor port USB.
Pengalaman pemrograman kami pada saat itu adalah beberapa bulan, melihatnya sekarang - darah keluar dari mata kami. TAPI kode sial ini berhasil - itu keajaiban. Kami adalah orang-orang yang sangat termotivasi dan berjuang untuk pengetahuan dengan kekuatan yang mengerikan. Kami sangat beruntung dan semua kesulitan muncul secara bertahap: masalah pertama dengan multithreading dan database - dan kami menemukan c3p0 untuk diri kami sendiri, ketergantungan yang sangat besar - kami belajar bagaimana bekerja dengan maven, masalah dengan kinerja saat membaca dari database - dan kami tidak mengetahuinya indeks seperti itu, setiap bit informasi yang diterima diterapkan dalam proyek.
Untuk menunjukkan kepada pihak berwenang keseriusan niat kami, kami menyusun pendirian yang mendemonstrasikan kerja sistem kami di seluruh rumah. Kami memiliki 20 pengontrol suhu, 150 sensor suhu, 60 pengukur panas (sebanyak yang kami bisa), 2 MBus gateway, satu router, dan 16 router. Kami hanya melakukan crimping pada kabel FTP selama 2 hari. Akibatnya, dudukan dirakit, perangkat lunak dikonfigurasi, tiruan antarmuka web diluncurkan - sutradara datang untuk menonton pekerjaan itu.
Stand pertama
Semuanya bersiul, klik andalan, mengerjakan semuanya secara instan, log dijalankan, data dari perangkat dikumpulkan dengan benar. Kami membawa desainer Vova, administrator sistem Yura, dan 3 pemasang ke dalam tim kami. Proses pengembangan, desain dan pemasangan berlangsung secara paralel. Sementara orang-orang mengejar dinding dan meletakkan kabel, perancang membuat proyek dan diagram koneksi untuk mereka, sementara papan sedang dipasang, dan kami menguji fitur baru pada mereka, sementara perangkat lunak sedang dikembangkan - rak server sedang dirakit.
Hasilnya, kami membutuhkan waktu setengah tahun untuk 144 apartemen diintegrasikan ke dalam sistem dan pengguna pertama yang secara pribadi kami berikan kode QR pendaftaran. Namun kami tidak ingin berhenti sampai di situ, tugas akhir kami adalah membuat platform IoT yang dipertajam untuk BMS, dan nantinya akan diperluas ke integrasi objek teknis (boiler, titik pemanas, bagian belakang dan industri) dan rumah pintar.
Kami menghabiskan tahun berikutnya untuk merefaktor MVP kami dan menambahkan berbagai fitur. Kali ini kami memiliki rencana, arsitektur, ambisi yang lebih besar dan darah segar - kami mempekerjakan 2 siswa. Siswa pertama, Yarik, mengerjakan bagian belakang produk kami, dan siswa kedua, Sashka, mengerjakan Arduino dan komputer papan tunggal lainnya untuk rumah pintar.
Kami aktif mengamati pasar UD dan BMS: kami berbicara dengan calon pelanggan, pergi ke pameran, membandingkan diri kami dengan pesaing. Pada titik tertentu, kami menyadari bahwa apa yang kami buat adalah fenomena untuk pasar Ukraina, dan tidak ada pesaing potensial yang dapat menawarkan hal serupa yang kami tawarkan. Kami memiliki sistem BMS yang dapat diskalakan dan dapat disesuaikan, dengan pengakuan alarm dan sistem administrasi yang kuat, dengan API, dengan driver untuk perangkat pengukuran paling populer di Ukraina, kami dapat beradaptasi dengan pelanggan mana pun. Kami ingin keluar dari perusahaan kami dan pergi sendiri.
Sukses pertama dan segera menjadi pan di wajah
Jadi, dalam pasangan pertama yang sukses, kami sudah menerapkan 3 objek (saat ini ada 2 rumah ketel, 4 titik pemanas, 4452 unit berbagai perangkat pengukur, data dari 1164 apartemen), semuanya baik-baik saja, aplikasi tidak tergeletak di sekitar, peralatan berperilaku sangat baik, instalasi di ketinggian, semuanya keren, saya dan tim sedang menunggu hadiah dan bonus ... tetapi hanya “Egegey guys, great fellows, THANKS!”.
Kemudian hal berikut dimulai: tidak ada uang, tidak ada pembiayaan, tetapi produk perlu dilanjutkan, perlu mengembangkan branding, instruksi, dll. ... Sejujurnya, kami kewalahan oleh kesuksesan (dan bagi kami itu adalah kesuksesan yang luar biasa, orang-orang seorang insinyur mesin dan penembak mesin dengan pendidikan menerapkan sistem yang agak besar) , kami melanjutkan, mogok, merengek, tetapi terus memotong…. Pada saat yang sama, mereka terus-menerus mengoptimalkan sistem untuk perangkat keras, mencari diskon, dan mengoptimalkan topologi untuk mengurangi biaya.
Akibatnya, direktur # 1 keluar dari perusahaan pengembang, saya pergi dengan tim juga, produk kita tetap di situs lama, tidak ada situs baru, tapi ke mana harus pergi? Apa yang harus dilakukan? Kami begitu terperangkap dalam rutinitas pengembangan sehingga saya melewatkan momen margin yang tepat (siapa yang memiliki apa, perangkat lunak siapa, hak untuk menggunakan perangkat lunak), promosi, dan momen lain yang sangat diperlukan untuk keberhasilan keberadaan produk. Saya membuang semua momen yang terkait dengan pengembangan dan menceburkan diri ke dalam riset pasar, mencoba menemukan pelanggan, dan saya memahami bahwa produk kami sangat spesifik untuk pengembang, tidak semua orang membutuhkannya - semua pengembang memiliki satu slogan, dibuat dengan biaya lebih sedikit - mendapat lebih banyak uang.
Kemudian direktur saya muncul, dan menawarkan untuk membuat perusahaan yang pendirinya adalah dia dan mitranya, tetapi pada saat yang sama, konon saya dan saya berada di setengah bagian perusahaannya (50%), sesuai dengan perjanjian KAMI (dia, saya dan tim) akan memutuskan semua yang menjadi perhatian pengembangan produk lebih lanjut, untuk menerima bagaimana dan ke mana harus pindah (baik, di antara kami para gadis, tidak ada yang muncul di koran). Saya setuju dengan putus asa, saya katakan kepada tim, teman-teman, kami menemukan investor, bla bla, tetapi kami bukan salah satu pendiri, dan untuk pertama kalinya kami mendapat gaji kecil (yah, seperti startup, seperti yang mereka katakan), kami mengurangi biaya sebanyak mungkin (yah, startup yang bertahan dua tahun, tidak ada startup yang begitu-begitu). Orang-orang dari tim berkata: “Mungkin tidak perlu, semuanya berbau aneh.”, Tapi saya terbakar (saya punya hutang untuk dana gaji, anak kedua dan biaya lainnya), saya mengerti bahwa saya harus melanjutkan dengan biaya berapa pun.
Saya bertemu dengan sutradara nomor 2, dan saya mengerti ada yang tidak beres, bagaimana bisa berbeda. Beberapa pertemuan dan saya menyadari bahwa direktur # 2 di tahun 90-an adalah seorang programmer di ketentaraan dan benar-benar ingin direalisasikan di bidang ini, dia mulai menggambar kami diagram dengan tempat operator, dengan server 1C, melempar kata-kata yang bagus, memasukkan kata API di mana-mana, pesan Pencitraan merek "sangat diperlukan saat ini" dan merek beech.
Seluruh bulan kami dibiayai oleh direktur # 1, banyak terima kasih kepadanya, dan dengan direktur # 2 ada pasar, konon dia memiliki pelanggan hebat yang siap untuk mulai bekerja.
Kami bertahan seperti ini selama sebulan, atau lebih tepatnya, aku bertahan. Hanya saya yang berkomunikasi dengan direktur No. 1,2, karena tujuan saya adalah melindungi tim saya dari rapat konstan mereka, upaya terus-menerus untuk membuang beberapa tugas dan birokrasi lainnya. Saya selalu mendengar dari sutradara # 2: “Apa yang kamu lakukan? Apa yang Anda lakukan? ", Kami menjawab:" kami melihat model domain, menguji LoRa Wan, menyelidiki pasar dalam hal pemimpin opini dan saluran penjualan produk, mendesain dasbor untuk kecelakaan dan peringatan ", tidak ada pertanyaan konstruktif yang diterima sebagai tanggapan. Ketidakpercayaan dan ketidaknyamanan abadi, bagaimana Anda bisa terus menciptakan produk yang keren.
Sebenarnya, tidak ada pelanggan yang tidak muncul, dan di salah satu rapat direktur # 2 berkata kepada saya: "Kirill, saya tidak peduli seberapa banyak Anda memindahkan proyek ini, Anda akan melakukan apa yang akan diperintahkan oleh dua direktur," saya bangkit dan menjawab: "Tuan-tuan, semoga berhasil ”berjabat tangan dengan mereka dan pergi.
Perasaan dan keseimbangan
Banyak orang tahu perasaan itu ketika Anda melakukan suatu pekerjaan, berikan diri Anda semaksimal mungkin, masukkan sebagian dari diri Anda ke dalamnya dan tidak mendapatkan pengembalian yang pantas, meskipun begitu, tetapi hanya bersembunyi dari saya dan teman-teman. Anda terus melakukan pekerjaan ini, meskipun Anda mengerti bahwa Anda tidak menerima uang sama sekali, tetapi Anda tidak dapat berhenti karena berhenti sama dengan mengambil dan pergi ke negara lain dari teman dan keluarga, mengambil dan merobek diri Anda dari bagian dari sesuatu yang besar. , signifikan. Kami tidak berhenti, kami mulai terbakar, kami mulai memahami bahwa hal itu tidak dapat berlanjut seperti ini lagi. Ini sangat menyakitkan.
Saya berterima kasih kepada Direktur # 1 atas semua kekurangan dan kelebihannya, dia percaya pada kami dan mendukung kami, saya akan mengingat ini dan akan selalu mendukungnya juga. Selama bertahun-tahun, tim saya dan saya telah menjadi orang yang sangat dekat satu sama lain dan saya tidak dapat mengungkapkannya dengan kata-kata, saya hanya mengerti bahwa jika kami harus putus, maka saya akan merindukan mereka dengan sepenuh hati dan saat-saat itu.
Kesimpulan dan saran
Kesimpulan yang saya buat:
- Tidak mengetahui arung jangan pergi ke air, terutama bila pertanyaannya adalah moneter. Periksa semuanya, hitung, hitung arus kas, jangan membuat kesalahan dalam jumlah pekerjaan dan yang terpenting, dalam teknologi dan kemanfaatan penerapannya. Tidak peduli betapa anehnya berbicara dengan tim, dan jangan lupa tentang strateginya, biarlah mentah-mentah, tidak banyak, tetapi itu dibutuhkan.
- , . , . , , , .
- . .
- , . , .
- , , , , , , .
- , , , . 90% .
- , №1 2, , , . , , , , 5 , . , , ( , ). — .
- .
Sekarang kami menggergaji platform baru, memperluas fungsionalitas (menambahkan "homecracy" dan layanan untuk penghuni, alat analitik dan antarmuka manajemen yang lebih canggih dan ruang ketel), menambahkan perangkat dan perangkat pengukuran baru.
Pada saat yang sama, kami mencari pelanggan dan investor. Sulit, banyak pekerjaan, tetapi tidak ada sumber daya. Kami akan meluncurkan situs ini suatu hari nanti.
Damai dan sukses untuk semua!
Kelanjutan dari rangkaian artikel:
"Rumah pintar" di setiap apartemen gedung apartemen, atau MVP kami