Tips Menjadi Seorang Lead Developer - CRUDPRO

Tips Menjadi Seorang Lead Developer

Tips Menjadi Seorang Lead Developer

Hello, readers! Pada kesempatan kali ini saya ingin menceritakan sedikit mengenai pengalaman saya jadi Lead Developer di mata kuliah Propensi. Pengalaman ini cuma berdasar sudut pandang individu saya ya, jadi tak berarti pada umumnya pengalaman jadi Lead Developer di Propensi ini akan tepat apakah yang saya alami. Karena setiap kelompok dan setiap project punya dinamikanya masing-masing.

Sekilas Terkait Propensi

Propensi adalah akronim dari Project Peningkatan Sistem Info, yakni salah satunya mata kuliah dari program studi Sistem Info. Matkul ini umumnya diambil di semester enam perkuliahan dan memiliki bobot sebesar 6 sks. Pada mata kuliah ini, intinya mahasiswa akan kerjakan sebuah project dari client bersama dengan kelompoknya yang beranggotakan 5 mahasiswa.

Proses pembuatan project di Propensi dituntut untuk lewat beberapa tahapan penuh dari Software Development Life Cycle (SDLC). Dimulai dari tahapan analitis sampai tahapan implementasi. Karena dituntut untuk lewat tahapan secara penuh, karena itu pada sebuah barisan, tiap anggotanya akan menggenggam peran yang berbeda. Peran-peran yang ada diantaranya Proyek Manajer, Sistem Analyst, Lead Developer, Sistem Designer, dan Technical Writer and Tester. Namun kesempatan ini, kita cuma akan mengulas mengenai peran Lead Developer.

Seperti kelihatan dari nama perannya, kemungkinan cukup tergambar apa sebetulnya tugas dari Lead Developer. Ya, pasti pekerjaan intinya ialah membimbing anggota barisan yang lain dalam melakukan programming di tahap implementasi. Apa cuma Lead Developer cuma bekerja saat tahapan implikasi saja? Pasti tidak, karena di matkul ini, tiap mahasiswa diharap memahami tiap proses yang ada. Maka dari itu Lead Developer harus juga membantu pengerjaan di tahapan analisis, design, dan penulisan dokumen.

Note: setiap anggota mempunyai use case masing-masing untuk dikerjakan mulai dari analisis sampai implementasinya
Alasan Jadi Lead Developer

Jadi saat sebelum masuk masa perkuliahan Propensi, kita akan diminta untuk isi sebuah Google formulir yang kurang lebih isinya ialah mengurutkan fokus peran yang ingin kita ambil. Waktu itu dari awal saya sudah pilih Lead Developer di prioritas pertama disusul oleh Proyek Manajer di fokus kedua. Mengapa sih saya pilih peran ini? Jawaban secara singkat ialah karena menurut saya cuma peran itu yang dapat saya lakukan (saya tidak berbakat di bagian desain, jadi pendesain bukan cita cita saya, dan menjadi sistem analyst saya harus juga mempertimbangkan nilai Analisis Perancangan Sistem saya yang belum memuaskan).

Sebenernya alasannya sesimpel itu saja sich. Ditambahkan ketika telah tercipta kelompok (anggotanya ini disusun oleh dosen ya jadi tidak dapat memilih), rupanya memanglah tidak ada anggota yang lain mengutamakan peran menjadi Lead DeveloperDeveloper. Karena itu peran tersebut yang saya lalui sepanjang perkuliahan Propensi ini.

Hal-Hal yang Harus Disiapkan

Pada intinya karena Propensi ialah sebuah mata kuliah di mana mahasiswa mengikutinya untuk belajar, karena itu hal paling penting yang perlu dipersiapkan oleh semua peserta kuliah ini (bukan hanya Lead DeveloperDeveloper) ialah pola pikir untuk ingin belajar dan mengeksplor hal baru. Namun karena project yang ditempuh ialah project real dari client, karena itu kita sedikit banyak harus menguasai dan harus sudah memahami kuliah materi ini semenjak awal mata kuliah ini berjalan. Karena itu ada banyak hal dasar yang perlu kita persiapkan untuk menghadapi matkul ini, khususnya pada tulisan ini untuk Lead DeveloperDeveloper.

Hal dasar pertama kali yang harus dimiliki ialah tech stack. Karena kita akan meningkatkan sebuah sistem info, tentu saja kita membutuhkan teknologi agar bisa menerapkannya. Oleh karena itu, sebagai seorang Lead Developer, minimum kita harus menguasai satu tech stack dimulai dari front-end, back-end, dan database hingga bisa hasilkan satu software. Ini cukup penting karena pada prosesnya nanti Lead Developer-lah yang perlu membantu anggota yang lain memahami tech stack yang digunakan untuk mengembangkan sistem

Hal dasar kedua yakni git workflow. Karena dalam prosesnya kita akan bekerja secara paralel dengan anggota kelompok kita, karena itu paling tidak Lead Developer harus memiliki sedikit pengetahuan dasar berkaitan git workflow dan mempersiapkan skema pengembangan untuk menghindari banyaknya conflict pada repositori project saat pengembangan berlangsung. Ini bisa mengirit waktu bila pola pengembangan dibuat secara baik dan gampang dimengerti oleh anggota kelompok yang lain.

Selanjutnya yang ketiga ialah basic deployment. Ini cukup penting karena sistem yang kita buat akan kita deploy sesudah semua babak selesai dijalankan. Bila Lead Developer telah memiliki basic pemahaman terkait deployment (minimal heroku), itu akan memudahkan tugas diakhir mata kuliah Propensi.

NB: segitu dulu, jika ingin tahu lebih detil langsung bisa tanya-tanya saja ke kakak tingkat yang pernah mengambil matkul Propensi (*hal-hal di atas hanya penilaian saya saja ya!)
Sedikit Pengalaman Saya

Menjadi seorang Lead Developer di mata kuliah ini rupanya tidak semulus mengerjakan project IT yang sempat saya lakukan sebelumnya. Pada awal saya berekspektasi jika yang hendak saya kerjakan cukup bagi-bagi pekerjaan untuk dikerjakan setiap anggota kelompok dan me-review hasilnya saat sebelum melakukan merge ke base branch. Namun pada realisasinya, tidak semua anggota kelompok mempunyai intensi yang positif pada programming sehingga seringkali kita harus juga berikan motivasi anggota yang lain untuk dapat lakukan pekerjaannya semaksimal mungkin.

Awalnya saya cukup turun semangat melihat realitas ini, tetapi sesudah dipikirkan, hal itu lumrah saja terjadi karena memang tidak seluruhnya mahasiswa Fasilkom (terutama Sistem Informasi) mempunyai arah karir ke programming. Maka di situ pekerjaan Lead Developer bukan sekedar membagikan pekerjaan dan me-review tugas anggota yang lain, tetapi tugas Lead Developer untuk memberi contoh, menuntun, dan berikan motivasi anggota lain untuk mengoptimalkan apa yang mereka miliki. Pada akhirnya, seorang Lead Developer harus juga dapat atur harapannya pada apa yang dikerjakan oleh kelompok. Karena balik lagi, definisi sistem yang baik pada mata kuliah ini bukan sistem yang super bagus, tetapi sistem yang bagus ialah sistem yang selesai.

Meskipun harus mengatur ekspektasi, tidak berarti sistem ini dibikin yang perlu selesai saja ya, karena sebetulnya ini peluang yang baik sekali buat kita ngerasain environment peningkatan sistem secara semi-real . Maka, kita harus tetap berusaha seoptimal mungkin untuk membuat sistem yang bagus. Untuk mengoptimalkan proses implementasi, karena itu ada banyak tips untuk dilakukan seorang Lead Developer pada mata kuliah ini:

  1. Upayakan mencari klien yang permintaan tech stack-nya pernah digunakan atau minimal familiar oleh Lead Developer dan anggota yang lain
  2. Bila klien tidak mempunyai permintaan tech stack (dibebaskan), karena itu coba pasarkan ke anggota kelompok tech stack apa yang dikuasai oleh Lead Developer dan tanya yang paling familiar buat mereka
  3. Sesudah mendapatkan klien, tentukan requirement kasar, dan tentukan tech stack, Lead Developer sedapat mungkin langsung menginisiasi pembuatan repository yang dilengkapi dengan penjelasan pre-requirement, set up environment guide, workflow dan kode convension pada README.md agar anggota lain mulai dapat menyiapkan dari jauh-jauh hari
  4. Saat telah memasuki fase design (satu fase sebelum implementasi), sebisa mungkin Lead Developer mulai kerjakan base kode, initial fitur, dan sedikit use case-nya untuk jadi contoh kode oleh anggota yang lain saat masuk fase implementasi kelak

Kurang lebih itu sedikit tips dari saya untuk kamu yang berniat mengambil role ini di saat Propensi kelak. Agar semakin jauhnya, bisa sekali nih jika ingin nanya-nanya ke kakak tingkat yang pernah mengambil mata kuliah Propensi.

Note: sedikit reminder lagi, saat melihat hasilnya, kemungkinan kita akan merasa sangat tidak memenuhi ekspektasi. Namun gak perlu terlalu resah, yang paling penting tunjukkan bagaimana usaha dan kesungguhan kalian dalam mengerjakan project ini. Dosen tidak hanya nilai dari hasilnya saja kok, tetapi tiap tahapan yang ditempuh itu dilihat sama dosen dan asdos
What I Get From Propensi

Oke pada bagian ini mungkin singkat saja buat penutupan. Jika masalah jam terbang mengerjakan project tentunya dapat sekali didapetin di mata kuliah ini. Pengalaman ngoding jelas saya dapetin sekali di sini. Namun menurut saya, hal yang betul-betul menambahkan wawasan saya selepas mata kuliah ini ialah bagaimana coba membuat rekan-rekan kita yang sebenernya tidak terlalu punya minat ke programming, tetapi tetep ingin untuk kerjakan use case nya masing-masing terlepas dari berapa perfect hasilnya kelak. Dari mata kuliah ini saya belajar untuk menghargai dan mengapresiasi hasil kerja keras team lepas dari berapa banyak bugs yang perlu dibenahi. Pada akhirnya, mata kuliah ini mengajari kita untuk mengoptimalkan usaha pada prosesnya dan atur harapan pada hasilnya. Karena usaha dan harapan ialah kuasa kita untuk mengaturnya, dan hasil atas sesuatu yang kita kerjakan dan penilaian orang lain bukanlah hal yang bisa kita atur.