Saya memulai karir saya sebagai pengembang .NET 3 bulan lalu dan setelah rencana pelatihan panjang tentang beragam teknologi, pola, dan konsep, pengembang yang mengawasi saya telah memutuskan bahwa saya siap untuk bergabung dengan salah satu dari banyak proyek yang ditangani perusahaan.
Saya sangat senang akhirnya bisa mulai coding. Tim yang saya bergabung agak kecil untuk saat ini karena mulai dengan proyek baru, yang hebat karena saya bisa terlibat dalam seluruh siklus hidup proyek. Ini adalah proyek SPA berbasis web dengan didukung yang menggunakan ASP.NET MVC / ASP.NET Web API dan di depan kerangka Durandal dan perpustakaan terkait.
Masalah saya adalah bahwa setelah melakukan pertemuan dengan kolega saya dan menetapkan tugas dan perkiraan untuk bulan berikutnya saya menemukan diri saya dalam posisi yang saya tidak tahu apakah saya mampu mengambil salah satu tugas.
Saya belum pernah melakukan tugas yang dibuat dan saya tidak tahu bagaimana saya harus melanjutkan.
Misalnya salah satu tugas yang dibuat adalah membuat mekanisme penanganan kesalahan umum untuk seluruh aplikasi.
Bagaimana biasanya seseorang melanjutkan ketika menghadapi tugas-tugas yang belum pernah dia lakukan?
Jawaban:
Ada beberapa hal yang dapat dan harus Anda lakukan untuk mempersiapkan tugas:
Tidak tahu bagaimana melakukan sesuatu tidak akan pernah benar-benar berakhir. Setiap hari saya mengalami masalah yang belum pernah saya tangani sebelumnya. Memiliki kemampuan untuk mencari tahu bagaimana menyelesaikan masalah baru sangat penting. Bahkan masalah lama tidak pernah benar-benar tua - dalam pemrograman, hampir selalu ada sentuhan baru atau permintaan agar solusi Anda bekerja dengan cara baru atau berbeda.
Inilah sebabnya saya seorang insinyur; Saya suka mencari hal baru.
Jangan pernah berhenti belajar hal-hal baru. Belajarlah yang membuat Anda lebih baik.
sumber
Tidak ada solusi yang sempurna, tetapi beberapa hal yang mungkin membantu:
Hancurkan tugas menjadi unit terkecil yang mungkin - pisahkan sampai Anda memiliki hal-hal yang dapat Anda lakukan.
Nyatakan kembali tugas atau masalah langsung yang ada untuk memastikan Anda benar-benar memahaminya. Kemudian lakukan beberapa analisis dan ulangi.
Pilih tugas yang paling sederhana terlebih dahulu, bahkan jika tampaknya terlalu sederhana hanya untuk mendapatkan momentum . Beberapa orang lebih suka tugas yang paling sulit sehingga 'kerja keras' tidak memungkinkan. Saya telah menemukan bahwa 'tugas paling sederhana' umumnya bekerja lebih baik karena Anda hanya mencari untuk mendapatkan momentum dan saya telah melihat memimpin 'paling sulit pertama' untuk proyek-proyek macet sebelum mereka mendapatkan momentum nyata.
Minta bantuan dalam memilih tugas dan pendekatan yang tepat untuk memulai.
Cari mentor yang dapat memberi Anda umpan balik konstan (idealnya setiap hari) selama satu atau dua minggu.
Ajukan banyak pertanyaan tetapi fokuslah untuk bersikap sopan kepada teman satu tim Anda. Selalu tanyakan apakah mereka punya waktu, dan perhatikan tanda-tanda verbal dan non-verbal yang biasanya mereka tidak punya waktu saat itu.
Simpanlah daftar masalah yang sedang Anda temui dan kemudian dalam scrum harian atau pada waktu yang Anda pilih, lewati bersama orang lain.
Jangan takut menanyakan pertanyaan paling mendasar. Asumsi orang lain mungkin sulit untuk ditentang, tetapi jika Anda tidak dapat melanjutkan dengan apa yang diberikan kepada Anda, Anda harus bertanya lagi.
Jika Anda tahu tujuannya, lakukan sebanyak yang Anda bisa sampai Anda terjebak dan kemudian posting kemajuan dan pertanyaan di Stack Overflow.
sumber
Tentu saja Anda tidak tahu bagaimana menulis "mekanisme kesalahan generik". Tidak ada yang tahu cara menulis "mekanisme kesalahan umum" sampai beberapa persyaratan ditentukan. Kedengarannya seperti yang Anda miliki hanyalah anggapan seseorang bahwa "mekanisme kesalahan generik" diperlukan untuk memulai proyek ini.
Secara pribadi, saya akan mendorong kembali gagasan ini. Menulis "generik" apa pun sebelum menerapkan persyaratan pengguna yang sebenarnya hampir selalu membuang-buang waktu. Dan karena generik , menurut definisi itu tidak spesifik untuk perusahaan atau aplikasi Anda, jadi mungkin ada sesuatu yang sudah tersedia yang akan memenuhi sekitar 95% dari kebutuhan Anda.
Tetapi karena Anda adalah anggota junior, mendorong kembali mungkin bukan ide bagus. Jadi, Anda perlu berbicara dengan orang-orang yang berpikir mereka membutuhkan "mekanisme kesalahan generik" dan mencari tahu layanan apa yang mereka harapkan disediakan mekanisme ini. Kemudian cari di internet untuk melihat apakah sesuatu yang sudah ditulis sudah cukup. Jika Anda menemukan sesuatu, usulkan saja menggunakannya. Mereka mungkin tidak akan setuju, karena siapa pun yang meminta "mekanisme kesalahan umum" kemungkinan menderita kasus buruk karena tidak ditemukan di sini.
Jika itu gagal, ia langkah selanjutnya adalah mendefinisikan antarmuka untuk mekanisme kesalahan dan membuatnya disetujui oleh para pemangku kepentingan. Setelah itu, implementasi mungkin akan sepele.
=================
PS Ada beberapa programmer yang berpikir bahwa cara untuk memulai proyek apa pun adalah dengan menulis "platform" untuk menyediakan semua layanan umum yang akan dibutuhkan oleh modul aplikasi. Ini biasanya berubah menjadi berbulan-bulan pekerjaan sepele menciptakan kembali hal-hal yang sudah tersedia secara gratis. Sampai Anda mencapai batas kinerja solusi yang tersedia, tidak ada alasan untuk menulis layanan "platform". Juga tidak ada alasan untuk menulis pembungkus di sekitar API yang ada. Jika Anda terus menerus melakukan refactor, pembungkus tepat yang diperlukan oleh aplikasi Anda akan secara ajaib muncul.
sumber
Saya pikir Anda lebih menderita kecemasan daripada defisit keterampilan. Pada titik tertentu, bukankah semuanya baru? Apakah Anda pernah diberi tugas dan tidak mampu menyelesaikannya sampai batas tertentu? Anda dibayar untuk mencari tahu.
Manfaatkan Tim Anda - Jika Anda berada di tim yang baik, Anda harus dapat meminta bantuan. Ada hal-hal yang akan Anda ketahui yang bahkan paling senior pun tidak akan tahu. Meminta bantuan bukanlah tanda kelemahan (tidak lebih dari berlari ke beberapa situs pertanyaan.).
Pencarian - Pencarian web tentang penanganan kesalahan umum tidak menghasilkan apa-apa? Anda mungkin tidak menemukan seluruh solusi. Anda harus mengerjakannya dan membuatnya pas di aplikasi Anda.
Prototipe - Ubah perspektif Anda tentang tugas dari produksi menjadi prototipe. Dapatkan sesuatu untuk bekerja dan membangun dari sana. Ketika Anda sampai pada titik Anda dapat menggunakannya, maka mulailah menganggapnya sebagai produksi. Sekarang Anda tidak akan melihat tugas itu sebagai sesuatu yang bahkan Anda tidak tahu harus mulai dari mana.
Get Over It - Hanya melakukan hal-hal yang Anda tahu cara melakukannya akan membosankan. Ini juga membawa Anda ke dalam perangkap hanya dengan kasar memaksa beberapa solusi dengan mengulangi hal yang sama berulang-ulang (Jika Anda suka mengulangi hal-hal, bekerja di jalur perakitan.). Bersiaplah untuk melakukan kesalahan. Mereka yang memberi tahu Anda bahwa mereka tahu segalanya, tidak pernah meminta bantuan atau melakukan pencarian, hanya bohong.
Ini adalah lelucon lama tentang dokter yang masih "mempraktekkan" obat; mereka juga tidak memiliki semua jawaban.
sumber
Bersukacitalah karena Anda tidak melakukan sesuatu yang telah Anda lakukan seratus kali sebelumnya. Anda telah menemukan kegembiraan pengembangan perangkat lunak (bagi saya, YMMV) - belajar mengemudi saat Anda meluncur di jalan bebas hambatan dengan kecepatan luar biasa. Ini adalah jenis hal yang hidup bagi pengembang hebat dan unggul.
Proses pribadi saya adalah seperti ini:
Dan terakhir, jangan terlalu khawatir tentang penampilan. Sebagai manajer tim pengembang, saya lebih suka memiliki seseorang yang dapat membuktikan bahwa mereka dapat belajar apa pun yang mereka perlu pelajari saat mereka membutuhkannya, daripada seseorang yang dapat membuktikan bahwa mereka sudah tahu satu hal yang sedang kami coba lakukan saat ini. Yang pertama akan lebih berguna untuk apa pun yang kita lakukan besok, atau bulan depan, atau tahun depan.
sumber