Saya bergabung dengan tim yang memiliki pendekatan berbeda untuk merancang dari saya. Saya percaya pada pendekatan YAGNI untuk desain. Misalnya, jika suatu metode (antarmuka, kelas) tidak digunakan, itu harus dihapus. Itu dia.
Orang-orang di tim saya sedang membangun aplikasi modular, dan salah satu modul dianggap sebagai "kerangka kerja". Aplikasi ini adalah satu-satunya pengguna kerangka ini, dan saat ini tidak ada rencana untuk memiliki lebih banyak klien. Namun, bagian dari kode dalam kerangka ini ditulis dan dipelihara seolah-olah dapat digunakan nanti , dan konsistensi dan kelengkapan menang atas YAGNI. Ada abstraksi di tempat-tempat yang mungkin tidak pernah membutuhkan abstraksi, dll.
Saya mencoba untuk memperdebatkan beberapa hal, tetapi setiap poin membutuhkan banyak waktu untuk membujuk, jika sama sekali, dan saya takut bahwa terlalu banyak "mendorong" akan mengakibatkan tim pecah ke sisi yang berlawanan.
Saya dapat "mengikuti arus" dan menulis kode tambahan tanpa masalah pribadi. Ini akan membawa saya lebih banyak waktu sekarang untuk kode, dan kemungkinan besar, lebih banyak waktu kemudian untuk mempertahankan, namun , setiap diskusi untuk tidak melakukan sesuatu yang ekstra juga membutuhkan waktu dan menambah tekanan.
Pertanyaannya adalah, dalam kasus pendapat yang berbeda, apa yang akan melakukan tindakan merugikan yang lebih besar, tidak dibutuhkan tetapi kode "tepat", atau argumen konstan dan dinamika tim yang rusak?