Bagi mereka yang hanya menggulir lebih jauh, ringkasan singkat: "google: freelance menandatangani kontrak" terima kasih atas perhatian Anda.
Deskripsi yang sedikit lebih lengkap: Bagaimana saya menemukan ketinggian baru manajemen berkat satu pelanggan ketika mengerjakan proyek freelance bersama.
Dua babak pertama pada dasarnya bersifat pengantar, puncak dari aksi dan penampilan kerangka di lemari terjadi pada babak ketiga. Mereka yang suka menonton hanya film terakhir dapat langsung beralih ke bagian
ketiga .
Aksi Satu: Toleran
Aktor: Saya, kenalan C, Perusahaan X, CEO1September:
- Apakah Anda ingin menulis program untuk Android untuk X?
- ayolah, tapi kami tidak terlibat dalam pengembangan desain, atau pengujian, atau bagian administratif, omong-omong, mari kita menulis tentang React-Native.
Oktober:
Setelah berbicara dengan CEO1, kami menetapkan batas waktu - ~ 3 bulan, menyetujui bagaimana aplikasi akan dirilis - awalnya kami akan memberikan kepada sejumlah pengguna, jika semuanya baik-baik saja - kami akan memberikannya ke sejumlah besar, kemudian kami menyelesaikan pembayaran, menyisir desain dan rilis, setelah rilis kami menyelesaikan beberapa, tidak terlalu penting , kuesioner (pengujian pengguna berdasarkan materi). Itu berakhir dengan dukungan enam bulan. Kami sedikit membahas teknologi React-Native - CEO1 takut bahwa teknologi itu baru, tetapi kami meyakinkan bahwa jika ada masalah kritis, kami akan menyalahkan diri sendiri, yang tentu saja dapat memengaruhi persyaratan. Ketakutan sia-sia, React-Native + Redux telah membuktikan dirinya di sisi yang baik. Gagasan bahwa Anda dapat mengganti aplikasi iOS dengan yang satu juga menyukai pihak lain, meskipun tugas ini melampaui ruang lingkup perjanjian.
Segera setelah ini disepakati, dalam beberapa minggu kami mengeluarkan prototipe dan dokumen yang mencantumkan fungsionalitas utama, setelah itu pelanggan secara tak terduga ingin memulai pengujian pada bulan Desember untuk datang ke tahun baru dengan rilis. kami sedikit terkejut bahwa kami belum benar-benar memulai, dan tenggat waktu sudah habis untuk kami, tetapi bagaimanapun kami tidak akan menunda dan mengatakan bahwa kami akan mencoba.
November:
Saya mengisi aplikasi dengan fungsionalitas, tanpa melupakan animasi yang indah, saya bahkan mengambil cuti beberapa hari di pekerjaan utama agar tepat waktu, saya mengacaukan utas sehingga nantinya desain dapat diubah dengan cepat dan nyaman. Pada React-Native, semuanya dibuat dengan mudah dan sederhana. Pada satu titik, masih ada masalah dengan Redux, tetapi, setelah satu setengah hari percobaan, saya sampai pada kesimpulan bahwa saya menyiapkannya sedikit salah - Anda tidak dapat melakukan "halaman dengan redux <=> banyak komponen", tetapi Anda memerlukan "halaman <=> banyak komponen dengan redux тАЭ, semuanya mulai berfungsi dengan baik, tetapi sejak itu saya mulai meluncurkan aplikasi secara berkala pada Redmi-2 dengan memori 1GB untuk mencegah kasus-kasus seperti itu. Hasil November - beberapa hari sebelum awal Desember, semuanya dijanjikan sudah siap, aplikasi ini cukup fungsional dan dapat dikirim ke putaran pertama pengujian.
Desember:
Selama sekitar tiga minggu, pihak lain mencoba membuat daftar 10 orang kepada siapa aplikasi dapat dikirim, setelah itu menghilang sama sekali, secara umum dimungkinkan untuk memahami - tahun baru akan segera tiba. Saya memperbaiki masalah kecil, meningkatkan dan mengoptimalkan sesuatu.
Januari:
Pertengahan Januari. Sebuah surat tiba bahwa daftar sudah siap dan akhirnya dikirim ke penguji pertama. Dua ulasan yang cukup rinci datang, yang secara umum mengevaluasi aplikasi secara positif, dan saya segera memperbaiki komentar yang tidak kritis. Tetapi ada sesuatu yang salah - keluhan mulai terjadi bahwa pengguna lain tidak dapat masuk menggunakan nama pengguna dan kata sandi mereka. Tanpa berpikir, kami berasumsi bahwa masalahnya ada di sisi sisi uji pelanggan, dan kemungkinan besar data di dalamnya tidak sesuai dengan kenyataan bahwa pada server utama, dalam beberapa minggu, ini diklarifikasi dan diperbaiki dengan hanya memuat ulang data dari prod ke test.
Saya mempercepat fungsi pembayaran ke google-play, meskipun implementasinya belum di backend, saya melakukan interaksi dengan analogi dengan apa yang ada di aplikasi iOS untuk apple-store, saya menulis emulator backend untuk fungsi ini, saya sedang menguji.
Tindakan 2: inkremental.
Aktor: Saya, teman C, manajer CEO2, penguji T, sutradara D.Februari:
Biarkan saya mengingatkan Anda bahwa Februari sudah dimulai. Tapi bagaimana dengan waktunya?, Mengapa saya terburu-buru? Baiklah, panggung sudah selesai, dan aplikasinya, bahkan dengan penundaan, bagaimanapun juga lebih baik daripada tidak sama sekali. Kami menunggu sepuluh yang pertama diminta untuk diuji lagi, tetapi pengiriman ulang tidak terjadi, bagaimana mungkin kami terkejut, kami mencari perusahaan D. Beberapa minggu kemudian, sebuah surat tiba bahwa CEO1 sedang digantikan oleh CEO2, tidak ada yang terlintas dalam pikiran kecuali untuk dangkal "ini giliran." Tentu saja, kami menganggukkan kepala, berpikir bahwa kami memahami alasan mengapa CEO1 dihapus, dan sekarang semuanya mungkin akan berhasil. CEO2 akan mulai bekerja bulan depan.
Maret:
Di pertengahan bulan, CEO2 baru muncul, yang, pada minggu pertama, mengatakan hal yang benar: ia membawa tester T, memberi tahu kami bahwa kami tidak boleh menghabiskan waktu baik menguji konsol atau mengatur yang lain. hal-hal administratif, dan penguji T akan menangani semua ini. Hal utama adalah sekarang kita memiliki JIRA umum untuk interaksi dan koordinasi. Itu bagus dan bahkan luar biasa, kata kami, tetapi tenggat waktu telah terlewatkan begitu banyak, dan proyek pada dasarnya telah didorong ke dalam kotak yang panjang, jadi sekarang, untuk mengeluarkannya, mari tetapkan tenggat waktu untuk kedua belah pihak + maka kita masih perlu mempertahankannya selama enam bulan + . Nah, mereka memberi tahu kami, mari kita anggap hari pertama Mei sebagai awal dari dukungan garansi dan pembayaran, bahkan jika kita belum siap pada saat ini. Tidak ada masalah, jawab kami, mari kita tentukan apa yang penting bagi kami.
Setelah satu atau dua minggu, ternyata ada tiga hal penting utama:
1) Untuk beberapa alasan, kuesioner adalah yang pertama, meskipun sebelum itu kami diberi tahu apa yang paling tidak penting dari keseluruhan aplikasi.
2) Validasi validasi login-email ada di pihak klien.
3) Pembayaran, meskipun harus juga hanya setelah pengujian tahap pertama.
4) login melalui facebook, meskipun pada bulan Januari kami diminta untuk menghapusnya.
Daftar pemblokir dan masalah kritis mencakup hal-hal seperti:
4) Pemisah vertikal antara login dan kata sandi pada halaman pendaftaran.
5) Minimalkan keyboard pada halaman penggantian kata sandi di akun pengguna saat beralih antar bidang.
Poin # 1 dilakukan selama seminggu, secara paralel, pentingnya poin # 2 dibahas sekitar tiga jam dua kali seminggu, karena ternyata ada standar pengembangan aplikasi yang diketahui semua orang (
kecuali saya, tentu saja ), saya tetap bersikeras bahwa ini bukan hanya tidak perlu, tetapi itu tidak mempengaruhi backend secara signifikan, tidak hanya ini membutuhkan duplikasi dari logika yang sama pada semua aplikasi dan situs, terlebih lagi, ada pengguna korporat dalam sistem yang tidak memiliki login email. Sisi lain mengatakan bahwa mereka akan memahami masalah ini dengan sangat rinci, setelah satu setengah minggu muncul dokumen multi-halaman yang menjelaskan semua opsi masuk di semua aplikasi dan di situs (apalagi, mereka sama), sementara itu masih tidak jelas bagaimana mengoordinasikan item untuk berbagai jenis pengguna. . Saya akan melewatkan detail, saya hanya akan mengatakan hasil berjam-jam, pihak lain akhirnya menyetujui proposal saya. Akhirnya, CEO-2 meluncurkan fungsionalitas pembayaran # 3 - google-play untuk backend.
April:
Saya melakukan semua yang kritis, besar dan bahkan kecil (
bahkan yang menurut saya tidak seperti itu ), karena itu tidak terlalu sulit - lebih mudah dilakukan daripada berdiskusi. Backend melakukan pembayaran, tetapi itu tidak mengembalikan sesuatu di salah satu langkah, yang umumnya normal untuk proses pengembangan.
Di sinilah panggilan aneh pertama datang, CEO-2 tiba-tiba menawarkan untuk memastikan bahwa aplikasi bekerja "secepat mungkin", bahwa itu secepat mungkin, saya tidak mengerti dengan baik, T tester mengatakan bahwa secara umum semuanya baik-baik saja, tidak ada pengguna sebelumnya yang menyebutkan masalah kinerja, tapi saya, ini naif, mengatakan bahwa pada ponsel tertua yang saya temukan, saya perhatikan bahwa keluar dari halaman pencarian ketika semua 300+ buku ditampilkan di situ terjadi dengan penundaan, tetapi untuk beberapa zat yang lebih relevan masalah ini bukan sangat penting dalam Saya tidak melihat apa pun.
Dua minggu tersisa hingga awal bulan berikutnya, semua yang dijanjikan pada tahap ini telah dilakukan (pada kenyataannya, semuanya, kecuali untuk menjilat desain, termasuk apa yang mereka tidak lakukan untuk berkomunikasi), dan bahkan, menurut pendapat saya, lebih banyak lagi - frasa yang tidak berguna telah dipertahankan, seperti tidak ada yang bisa terjadi. Segala sesuatu yang tertutup bagi saya di JIRA, tapi ... kunci telegram dimulai, di mana kami mengobrol. Secara umum, ini terputus-putus, tetapi jelas bahwa semua peserta tampil online, tetapi mereka tidak menjawab dan tidak hanya menulis - CEO2 dan T, setelah seminggu akhirnya jelas bahwa ada sesuatu yang salah di sini, dan kami lagi mencari D.
Babak Ketiga: Final
Seminggu kemudian kami diundang ke telepon. Sesuatu yang sama sekali baru sedang disuarakan bahwa aplikasi itu memutuskan untuk meminimalkan, karena backend mereka diduga memiliki masalah kinerja, alasannya entah bagaimana tampak meragukan, saya masih mengatakan bahwa saya tidak melihat ada masalah dengan backend, dan aplikasi itu menyimpan semuanya , dan itu tidak bisa memengaruhinya juga. Tetapi kami ditawari untuk membayar hanya sebagian dari pekerjaan, meskipun ternyata aplikasi tersebut telah diberikan kepada satu klien korporat. Saya tidak mengakui mengapa saya harus menyetujui bagian ketika kami melakukan semua yang kami janjikan, tidak pernah melanggar tenggat waktu, tidak seperti ..., dan itu akan terjadi pada bulan Januari, dan ini diusulkan beberapa hari sebelum hari yang dijadwalkan pembayaran. Di mana CEO-2 secara tak terduga menyatakan bahwa aplikasi tersebut juga memiliki masalah kinerja (yang merupakan alasan yang nyaman dan universal), meskipun dua minggu yang lalu selama pengujian ini tidak diumumkan sekali pun. Tapi bukan itu saja, mereka langsung menyalahkan kami atas fakta bahwa selama pengujian pada bulan Januari, sebagian besar pengguna tidak bisa masuk ke aplikasi sama sekali, saya tentu mengingatkan alasan mengapa itu terjadi, tetapi entah bagaimana itu tidak benar-benar memperhitungkan. D menawarkan untuk memahami detail dari apa yang diterapkan, tetapi meminta untuk tidak masuk ke rincian teknis, tidak begitu jelas bagaimana hal ini dapat dilakukan tanpa masuk ke rincian teknis, tetapi saya membuat laporan terperinci dengan fakta bahwa hal itu diterapkan pada titik dengan waktu yang dihabiskan, di samping itu, saya merekam video sebagai aplikasi berfungsi dan saya mendemonstrasikan semua fungsionalitas, video disertai oleh log aplikasi sehingga permintaan dan tanggapan dari backend terlihat.
Setelah satu setengah minggu, kami mendapat laporan CEO-2 kami, yang membuat rambut saya sedikit bergerak, dan kemudian suasana hati saya juga turun - dari kenyataan bahwa itu terjadi sama sekali. Saya perhatikan ini bukan semacam kesalahpahaman atau, konyol untuk berpikir, kenaifan teknis pihak lain, beberapa minggu yang lalu kami cukup berbicara bahasa yang dapat dimengerti satu sama lain.
Saya akan mencantumkan poin utama:
- Login Facebook memberi tahu bahwa perlu untuk mengaktifkan token uji untuk pengguna ini, yang saya tulis di JIRA. Kesimpulan dari sisi lain adalah bahwa tidak ada fungsi login facebook.
- Pendaftaran melalui fb, tidak jelas sama sekali, kami mencoba mencari tahu, dan bahkan T setuju bahwa tidak ada fungsi seperti itu dalam aplikasi, tidak ada fungsi, tetapi untuk beberapa alasan ada benarnya. Putusan - tidak dilaksanakan, tetapi tidak begitu jelas apa sebenarnya.
- Performa: Untuk beberapa alasan, sekali lagi dua poin, dalam kedua kasus, sebuah ponsel 5x nexus dengan android 8.0.0 muncul (di w3bit3-dns.com dan android-central ada banyak topik tentang ini), dan ditunjukkan apa yang saya katakan di telepon tentang hal itu - ia masuk dan keluar berkali-kali dari pencarian, dapat dilihat bahwa aplikasi secara berkala menyinari layar putih, yang terlihat di RN jika memori bermasalah, yang saya amati bahkan pada memori 1GB.
Tetapi secara umum, ini semua adalah hal-hal kecil yang dapat seseorang coba diskusikan, tetapi dengan latar belakang apa yang terjadi selanjutnya, ini tidak masuk akal:
- Versi lama dari aplikasi diambil, yang keliru mengeluarkan proposal untuk pendaftaran berdasarkan ketersediaan berlangganan, klik pada tombol "Favorit", pesan "silakan daftar" muncul, disimpulkan: disimpulkan: tidak ada fungsi favorit. Hal yang sama terjadi pada tombol "tandai sebagai telah dibaca" dan "pengingat", dan pesan ini tumbuh hingga lima poin (dari ~ 20 total), beberapa di antaranya disebut secara global, tidak hanya sebagai "pengiriman konten oleh aplikasi".
- Tidak disebutkan sama sekali tentang cukup banyak fungsi memutar audio, tetapi lucunya adalah tidak ada tes pada materi yang kami diminta untuk melakukannya pada minggu lalu.
- Pembayaran: dengan google-play berjalan baik dan pergi ke backend, tetapi sebagai tanggapan, backend memberi tahu bahwa tidak ada berlangganan. Sisi lain berpura-pura tidak mengerti apa itu backend mereka sama sekali , tetapi hanya menyatakan bahwa fungsionalitas, sebagai hasil dari pengujian mereka, diakui sebagai tidak direalisasi, dan sisanya bukan masalah mereka. Sungguh aneh mengapa itu tidak menghilangkan backend dan tidak mengatakan bahwa aplikasi tidak menghasilkan apa pun selain "kesalahan koneksi".
Dan klimaksnya:
- Beberapa titik pembayaran dianggap tidak diterapkan karena tidak ada langganan untuk 6, 9 dan 12 dalam daftar belanja dan beberapa bulan lagi diambil dari google-play, mereka tidak memasukkannya di sana , meskipun mereka mengatakan bahwa mereka akan berurusan dengan konsol dirimu sendiri.
Poin dikalikan dengan cara yang aneh, saya mencoba melakukannya dengan cara yang berbeda, tetapi saya tidak mendapatkan hasil seperti itu, dan kami menyimpulkan bahwa kami harus bahagia jika mereka membayar 40% untuk pekerjaan itu. Bagaimana tanggapan D, yang tampaknya telah mengambilnya sendiri, untuk menanggapi argumen seperti itu? - tidak mungkin - berpura-pura menjadi ikan.
Baiklah, dan akhirnya, setelah menjadi jelas bahwa tidak ada lagi yang perlu diketahui dan dibuktikan, kami secara langsung menyatakan bahwa apa yang kami sepakati sebelumnya adalah semata-mata masalah kami, tetapi apa yang kami tulis di JIRA dan mereka tidak terlalu peduli dengan status apa pun, karena pengembangan aplikasi sedang diminimalkan.
Saya akui pertama kali saya menemukan kekasaran yang serupa di bidang TI. Saya siap untuk membuktikan kasus saya dan bahkan mengakui bahwa saya salah jika saya menunjukkannya, tetapi apa yang saya jelas tidak harapkan dari perusahaan yang memposisikan dirinya sebagai produk untuk manajer profesional dan bahkan memiliki blog di hub - bodoh sederhana.
Epilog
Itu adalah waktu yang layak, saya memutuskan untuk bertanya kepada backend apakah mereka tahu tentang masalah kinerja mereka, ternyata tidak ada yang seperti itu. Saya memutuskan untuk bertanya kepada mereka yang terlibat dalam aplikasi iOS, dan di sini, tampaknya ada saluran yang serupa, tetapi aplikasi tersebut sudah berfungsi: yang mereka lakukan saat ini adalah mengubah warna bayangan dan panjang kata sandi minimum dari 6 hingga 8 karakter dan sebaliknya, sementara Mereka mengatakan bahwa ada masalah pembayaran yang membutuhkan rilis mendesak, pengguna mendidih dari ini, peringkat aplikasi terbang sekop, tetapi sepertinya CEO-2 tidak akan merilis koreksi. Tentu saja, saya berbagi kesulitan saya dengan mereka, yang mereka katakan kepada saya bahwa situasi saat ini tidak menimbulkan kejutan, dan menceritakan sebuah kisah tentang yang mereka ketahui dari seorang mantan karyawan:
Dahulu kala seorang karyawan muncul di perusahaan yang tidak terkait dengan pengembangan. Tetapi, setelah bekerja sedikit, dia memutuskan bahwa situs itu (karena tidak ada yang lain pada saat itu) harus diulang kembali karena kelihatannya dia benar (
tampaknya sehingga semuanya "secepat mungkin" ), tetapi, pada akhirnya, tampaknya dia tidak dapat menyelesaikan apa yang dia mulai dan dia diminta ke pintu keluar. Namun, setelah beberapa tahun, yang sudah kita saksikan, setelah pergantian direktur, dia kembali muncul di perusahaan dan terus aktif mencoba menerapkan situsnya sendiri, yang masih belum selesai. Dan karena situs tersebut, tampaknya, bahkan tidak memiliki API primitif untuk bekerja dengan aplikasi, dan mie kesiapannya telah digantung di telinga kepemimpinan baru, aplikasi ini juga mengganggu rencana implementasi, dan kami perlu alasan untuk menyingkirkannya dan ulangi sudah di bawah situs baru.
Secara umum, mosaik telah berkembang, satu hal yang tidak jelas - dan inilah pembayaran saya. Jadi untuk perubahannya, saya memutuskan untuk menggambarkan kejadian ini. Mungkin seseorang hanya akan bersenang-senang, tetapi seseorang akan dibantu untuk menjadi lebih waspada (
pengembang masa depan baru aplikasi untuk android mungkin :) ), dan, mungkin, saya hanya ingin berbicara dan mengakhiri cerita ini.
PS:Jika saya berkumpul, saya juga akan mencoba menulis artikel teknis tentang React-Native, karena saya tidak benar-benar ingin menghilangkan kekecewaan dari karya ini.