Baru-baru ini saya memulai sebuah proyek yang sepertinya tidak terlalu sulit untuk dibuat, konsepnya adalah aplikasi yang cukup sederhana yang harus menerima input setiap sekarang (mungkin 10x sehari), dan mencoba untuk melakukan beberapa operasi pada mereka dan mengumpulkan semua hasil pada akhirnya. Aplikasi ini kemudian akan mendapatkan portal web front-end yang dapat digunakan pelanggan untuk melihat hasilnya, bukan ilmu roket.
Untuk ini saya awalnya memanfaatkan pustaka concurrency bawaan Python ( ThreadPoolExecutor
) dan menggunakan pustaka yang mudah digunakan untuk front-end (saya memilih Flask karena mudah untuk pemula dan relatif mudah untuk memelihara dan menguji).
Setelah kami setengah dari proyek, PM menyatakan kami harus menggunakan kemampuan antrian pesan pihak ketiga daripada utas dan harus menerapkan load balancing, yang akhirnya terjadi adalah bahwa kami akhirnya mulai bekerja dengan Celery, Redis, RabbitMQ, Nginx, uWSGI dan sekelompok layanan pihak ketiga besar lainnya yang tidak ada yang punya pengalaman nyata dengannya.
Pada akhirnya ini mengarah pada sekelompok kode spaghetti, tugas-tugas yang tidak dapat diuji (karena kompleksitas perpustakaan pihak ketiga, menambal kode itu bahkan tidak berfungsi) dan banyak sakit kepala karena tidak ada yang tahu apa nilai tambah dari layanan ini. .
Sebelum Anda mengatakan "Ya, Anda harus menggunakan layanan itu", perlu diingat bahwa tidak ada yang tahu bagaimana menggunakan ini atau bahkan tahu apa yang mereka lakukan selain memperkenalkan kode terganggu kondisi ras.
Apa yang harus saya lakukan? Pada titik ini, akan terlalu mahal untuk kembali ke apa yang kita miliki dan PM sudah mati untuk menggunakan layanan ini, meskipun produk akhir sekarang lebih buruk daripada di awal. Apakah ada gunanya mendiskusikan hal ini dengannya? Apakah saya meminta lebih banyak waktu? Atau jawaban yang kasar, apakah saya terlalu bodoh untuk pekerjaan saya?