/ Essai

Be a Good Developer Nowdays

Kemaren di sesi sharing GDILab Tojay share tentang 5 hal yang harus diketahui oleh Web Developer. disini rasanya gue tulis lebih umum tidak hanya tentang Web Developer tapi lebih tentang Developer pada umumnya. At first, gue nulis ini bukan karna gue udah jadi developer yang baik, justru karna gue juga belum jadi developer yang baik, so ini juga bisa jadi reminder buat gue supaya terus belajar karna ini juga gue terapin di GDILab / GNEWS sekarang.

Oke, langsung aja deh, menurut gue, ini adalah hal-hal yang harus dipelajari terutama sebagai developer muda, fresh graduate, ato yang masih belajar jadi developer untuk menjadi developer yg baik,

Know a basic agile development process and toolset

Gue nggak bilang kalo developer harus paham tentang ginian sampe ke level yg harus dipahami project manager sih. yang penting kita tau basicnya, prosesnya, dan tools tools apa yang bisa digunain untuk menunjang proses tersebut. kita harus terbiasa untuk melakukan tracking pada progress project yang kita kerjakan, meskipun kita cuman ngerjainnya solo. memahami agile development proses dan tools toolsnya akan membantu kita untuk mengetahui skala project yang kita kerjakan dengan lebih baik, dan membantu kita untuk menjaga commitment yang kita bikin diawal sehingga akan tetap berada pada track yang benar.

ada beberapa macam agile development methodology meliputi scrum, kanban, extreme programming, dan lain-lain. dan tools nya juga beragam, dari yang simple banget seperti trello dan pivotal tracker, sampai yang complete seperti Jira.

Know how to do effective estimations

Sebenernya ini juga masi jadi kekurangan gue, gue seringkali bikin estimasi yang agresif dan challenging buat gue. hal yang memang biasa dilakukan oleh developer muda (termasuk gue), sementara developer senior justru sering kali membuat estimasi yang pesimis.

setelah baca sana sini, memang tidak ada silver bullet untuk melakukan ini secara efektif langsung, hal yang perlu dilakukan adalah belajar dari setiap project yang sudah pernah dilakukan. point mana yang sering missed, dimana kelemahan masing-masing developer yang mengerjakan, dan lain-lain. ada beberapa teknik seperti story point estimation untuk leverage kecepatan dari kesuluran team. Namun, masing masing developer juga perlu untuk dapat melakukan estimasi task yang akan dilakukannya untuk project yang lebih besar.

disini juga alasan pentingnya menerapkan agile development dan memanfaatkan toolset nya untuk mengetahui dan mengukur seberapa akurat estimasi yang kita buat. jika kita memantau masing-masing sprint yang kita lakukan, dan selalu melakukan improvement disana, kita akan notice bahwa akurasi estimasi yang kita lakukan akan meningkat dari waktu ke waktu.

Know server side language(s)

menurut gue ini juga merupakan element yang krusial, bahkan jika kita seorang front end developer, kita harus tau bagaimana apps di backend berkerja. mampu untuk membuat serangkaian proses yang terhubung dari front-end application melewati API layer sampai ke manipulasi database adalah skill yang penting. beruntungnya ada banyak pilihan bahasa yang dapat digunakan dari Java, .NET, python, ruby, scala, grails, PHP, Bahkan Java Script pun dapat digunakan untuk server side programming. tentu saja masing masing memeliki tingkat kompleksitas dan keunggulan masing masing. mengetahui opsi opsi tersebut juga penting mengingat seberapa besar skala project yang akan dibangun.

Know HTML and CSS

Teknnologi Web merupakan teknologi yang paling adaptable, hampir semua platform memiliki kemampuan untuk merender HTML. sehingga ini kemudian banyak digunakan sebagai layer abstraksi pada banyak teknologi. jadi meskipun kita bukan web developer, minimal paham konsep HTML dan CSS akan berguna dalam banyak hal.

hal lain yang penting adalah, bahwa kita harus memiliki "wajah" sebagai developer. sehingga memili blog adalah hal yang penting untuk personal branding sebagai developer. meskipun untuk membuat blog sendiri sudah banyak platform yang dapat digunakan meskipun kita tidak memahami HTML dan CSS sedikitpun. jika kita paham, tentu masih akan berguna.

Know Java Script

Kenapa gue pisah java script disini ? java script sudah berkembang gila-gilaan di beberapa tahun terahir. dengan java script kita sudah dapat membuat aplikasi mobile baik android atau IOS, Java Script juga dapat digunakan untuk membuat server side application, digunakan untuk melakukan perintah pada data tier seperti mongodb, membuat engine blog, dan lain-lain.

Karena kadang java script sendiri diartikan lain untuk masing-masing orang, yang dimaksud pemahaman tentang java script disini bukan "bagaimana menggunakan JQuery" atau semacamnya. tapi penting untuk mengetahui konsep dari bahasa nya sendiri, paham tentang prototypical inheritance, dan dapat berfikir seperti javascript developer. resource yang mungkin bisa bermanfaat bisa dibaca disini  "Java Script : The Good Part"

Know native mobile platform

Ada banyak cara untuk membuat mobile apps, seperti yang gue sebutin diatas, kita dapat membuat mobile apps dengan HTML, CSS dan Java Script. cuman, hal yg akan gue garis bawahin disini adalah, ketika apps kita jalan di mobile, dia akan menjalankan native code nya. jika sebuah perusahaan ingin mengembangkan mobile apps, maka diperlukan orang yg paham native layer dari mobile platform nya. meskipun aplikasinya dibuat dengan teknik lain.

Know how to quickly find information

Hal umum yang membedakan developer yang bagus dan developer pada umumnya adalah kemampuan mendapatkan informasi yang berkualitas sendiri, dimana developer pada umumnya harus di guide berkaitan dengan proses dan platform yang baru.

maka seringkali saat kita coding, kita harus meninggalkan Editor / IDE dan membuka browser untuk mencari informasi yang kadang akan makan waktu lama. oleh karena itu, kemampuan untuk membaca dokumentasi dari masing-masing library / framework / SDK adalah penting. dan kita harus terbiasa untuk membaca documentasi, apapun bentuknya. karna beberapa diantaranya hanya menyediakan library yang digenerate dari source code (java doc, etc). di Mac ada aplikasi yang memudahkan kita untuk mencari dokumentasi seperti Alfred dan Dash. mungkin kalian juga bisa cari untuk OS kalian.

Selain itu, cara lain yang juga penting adalah join di community. komunitas developer seperti StackOverflow maun portal community untuk masing-masing OS akan membantu kita mendapat informasi yang kita butuhkan.

Know Git well

Versioning contrl sangat penting untuk developer. tapi Git sendiri adalah lebih dari Versioning Control pada umumnya. karena dia memiliki sistem yg efektif untuk melakukan branching yang memungkinkan kita untuk membuat flow yg efektif ketika bekerja secara individu mapun team.

Vincen Driessen menawarkan model yang diberinama "git-flow". dimana perubahan tidak hanya perlaku untuk source code melainkan juga berlaku untuk proses yang ada didalamnya. bahkan Attlasian juga membuat dokumentasinya dan membuat "SourceTree" -nya support "Git-Flow".

kalo belum pernah pake Git, maka mulailan belajar. jika masih pemula menggunakan git, terus kembangkan. git akan membantu banyak sebagai seorang developer.

So, developer yang baik tidak hanya ditentukan oleh code yang baik. maksudnya itu saja tidak cukup. untuk menjadi developer yang baik, diperlukan skill yang meliputi technology, process dan toolset. lebih penting lagi adalah attitude dan mindset. at the end, semoga kita semua bisa terus mengembangkan skill dan menjadi developer yang baik.

sumber dapat dibaca disini.