Saya sedang mengerjakan aplikasi saya sendiri dan saya mandek. Saya harus mengimplementasikan fitur tetapi saya tidak dapat menemukan pendekatan yang baik untuk mengimplementasikan fitur ini. Saya memikirkannya selama beberapa hari, dan tidak ada pikiran yang baik datang. Mencari di internet tidak memberi saya inspirasi.
Saya perlu pindah, tetapi saya ingin tahu, apa yang terbaik:
- Pikirkan lebih banyak, tunggu lebih banyak, dan terus mencari pendekatan terbaik
- Berhentilah membuang-buang waktu dan mulailah dengan desain yang buruk, mencakup semuanya dengan tes
Apa yang kamu pikirkan? Seperti yang saya katakan sebelumnya, saya sedang mengerjakan aplikasi saya sendiri. Saya tidak punya tenggat waktu, tetapi saya juga ingin menyelesaikan pengkodean aplikasi secepatnya.
Jawaban:
Selain berbicara kepada orang-orang tentang hal itu (pertanyaan menunjukkan Anda tidak memiliki rekan kerja di proyek), saya sering menemukan pendekatan yang baik untuk fokus pada hal-hal yang dapat saya lakukan.
Biasanya ada beberapa bagian dari kode yang saya tahu harus saya tulis. Hal-hal yang saya belum tahu cara menulis, kemudian digantikan oleh bertopik yang baik mengembalikan hasil dummy, atau menggunakan perkiraan yang cukup baik untuk menguji sisanya.
Ini membuat Anda tetap produktif. Dan pada saat Anda perlu mengimplementasikan bagian yang hilang, Anda memiliki antarmuka. Dan Anda telah menulis banyak kode di sekitar masalah, di domain masalah yang sama, yang biasanya membantu saya menghasilkan ide: Anda tahu persis apa yang harus Anda hasilkan, dan input apa yang tersedia jika membantu menyelesaikan masalah . Juga, seringkali kesimpulannya adalah bahwa bagian yang hilang tidak perlu mencakup semua seperti yang dipikirkan sebelumnya.
sumber
Jika pencarian gagal, Anda selalu bisa menerapkan menggunakan ide pertama (belum tentu yang terbaik) yang Anda dapatkan, dan kemudian refactor nanti ketika Anda menemukan pendekatan yang tepat.
Ini adalah pendekatan yang tepat, karena bahkan jika Anda menemukan sesuatu yang tampak seperti ide yang bagus, itu bisa berubah menjadi buruk nantinya. Atau mungkin bagus saat itu, tetapi nanti Anda menemukan sesuatu yang jauh lebih baik. Maka Anda masih harus refactor.
Saat melakukan ini, pastikan untuk merancang dan mengimplementasikan sedemikian rupa sehingga mudah untuk di refactor. Jika Anda melakukannya dengan benar, Anda harus mengubah hanya bagian yang bermasalah, dan tidak memulai dari awal.
sumber
Bagaimana dengan bertanya kepada orang lain? Misalnya, Anda bisa menggambarkan masalah Anda di sini, atau, jika ini lebih merupakan masalah implementasi, di stackoverflow.com, dan minta ide. Kadang-kadang itu akan membantu Anda jika Anda mulai menuliskan masalahnya, bahkan jika Anda tidak mendapatkan jawaban yang baik.
sumber
Beberapa ide:
Tulis setiap ide bodoh yang Anda miliki (di atas kertas atau papan tulis). Singkirkan yang Anda yakin tidak akan berhasil. Tetap menulis. Sertakan solusi untuk masalah dunia nyata yang berpotensi terkait. Misalnya, apakah mencampur cat, atau meletakkan paku di dinding, atau mengganti oli Anda bisa menyelesaikan perumpamaan dunia nyata?
Google, tanyakan di sini, tanyakan teman-teman geek Anda, dll.
Anda tidak bisa memecahkan yang masalah, tapi dapat Anda memecahkan satu lebih sederhana? Atau yang terkait, sama rumitnya? Lakukan itu. Kemudian buat perubahan kecil dan individual untuk membawa solusi Anda lebih dekat ke solusi yang diinginkan.
Terlepas dari apakah antarmuka Anda adalah layanan web, halaman web, bentuk asli, kamera, keyboard, monitor, atau apa pun , ada antarmuka. Tulis beberapa baris kode / pseudocode untuk membuat antarmuka berfungsi. Gunakan metode ajaib yang belum ada. Secara rekursif melakukan hal yang sama untuk setiap metode magis yang tidak ada. Optimalkan nanti.
sumber
Tidak ada yang salah dengan solusi yang buruk. Sering kali Anda hanya tidak cukup tahu tentang domain masalah pada saat itu. Pergi dengan solusi yang buruk membuat Anda melanjutkan dan mempelajari lebih lanjut tentang masalahnya. Maka Anda masih bisa kembali dan memperbaiki solusi pertama Anda.
sumber
Saya selalu mencoba dan melihatnya dari sudut pandang pengguna akhir. Sangat mudah untuk memikirkan ide "keren" sebagai pengembang yang dapat Anda habiskan bertahun-tahun untuk bekerja yang sebenarnya menambah sangat sedikit pada aplikasi Anda.
Idealnya Anda ingin memetakan semua fitur di aplikasi Anda dan memprioritaskannya sesuai dengan manfaatnya bagi pengguna akhir, secara pribadi saya menggunakan MOSCoW , meskipun selama Anda menjaga metode penentuan prioritas Anda, hal yang sama dapat dilakukan sesederhana 1 - 5.
Setelah itu jika Anda masih menemukan bahwa fitur ini merupakan bagian penting dari aplikasi Anda, maka seperti yang telah dikatakan orang, tanyakan! Saya tidak berpikir saya pernah mengalami masalah yang akhirnya belum diselesaikan oleh seorang kolega atau orang-orang baik di Stackoverflow.
sumber
Pendapat saya adalah: jangan pernah menulis kode yang hanya berfungsi! Seharusnya sangat sulit untuk refactor di masa depan.
Ini adalah pendekatan yang sangat umum untuk pengembang (dan tentu saja PM atau bos). Saya mendengar banyak waktu "hanya membuatnya bekerja" atau "Saya akan memperbaikinya nanti" (nanti ketika ??? tidak pernah!) Tetapi, saya pikir kualitas bukanlah sesuatu yang tidak dapat Anda peroleh di tengah proyek.
Saran saya adalah, berhentilah memikirkan masalah Anda untuk sementara waktu .... lakukan sesuatu yang lain, dan, kadang-kadang, solusinya muncul begitu saja.
Btw, meminta seorang kolega benar-benar cara yang bagus untuk menyelesaikan masalah Anda.
sumber