author-pic

Ferry S

An ISTJ, Type 5, Engineer, Gamer, and Thriller-Movies-Lover
Berkenalan dengan Profesi Anak IT
Mon. Jun 20th, 2022 02:22 AM10 mins readedited 4 days ago
Berkenalan dengan Profesi Anak IT
Source: flickr @wiredforlego - LEGO Collectible: Computer Programmer

Biasanya banyak yang bingung membedakannya, apa sih perbedaan Programmer vs Software Developer vs Software Engineer? Secara umum sebenarnya sama aja. Fakta di lapangan pun perbedaannya ga terlalu kelihatan, karena sama-sama ngoding. Perusahaan pun ga terlalu mempedulikan penamaan ini, yang penting mereka ngoding, menghasilkan cuan, dan digajišŸ˜. Tapi kalau dilihat dari segi definisi ada perbedaannya. Ini adalah hal yang paling sering ditanyakan anak-anak kuliah atau SMA yang penasaran sama profesi di dunia IT. Sama seperti gw di SMA dulu yang buta sama prospek lulusan IT. Gw mikirnya lulusan Teknik Informatika itu kerjaannya hanya seputar Microsoft Word, Microsoft Excel, dan Microsoft Powerpoint karena dulu di sekolah kita diajarinnya begitu pada pelajaran TIKšŸ¤£. Atau paling mentok jadi tukang service komputer, laptop, hp, printer, AC, dan alat elektronik lainnya. Gw baru tahu profesi-profesi lulusan IT itu justru pas udah kuliah. Prospek pekerjaan untuk anak IT ini ada bermacam-macam. Berikut adalah profesi-profesi di bidang IT:

Programmer adalah orang yang membuat algoritma menjadi sebuah program atau tools yang bisa digunakan. Contohnya orang yang bisa bikin program kalkulator, web scraping, atau tools men-generate angka acak, itu udah bisa disebut Programmer. Scopenya hanya sebatas bikin program atau tools.

Sesuai namanya, Software Developer adalah pengembang perangkat lunak. Jika Programmer scope-nya bisa bikin program, Software Developer scope-nya sedikit lebih luas, yaitu ikut membangun produk complete dalam bentuk perangkat lunak. Contohnya adalah Programmer yang ikut mengembangkan fitur pada E-Commerce atau System Informasi, itu udah bisa disebut Software Developer. Kadang perusahaan menggunakan istilah Back End Developer untuk pekerjaan yang spesifik terkait aplikasi server. Selain itu ada juga perusahaan yang menggunakan istilah Front End Developer, yaitu pekerjaan yang spesifik untuk aplikasi yang digunakan langsung oleh user. Front End Developer itu juga terbagi lagi menjadi Web Developer & Mobile Developer. Web Developer ini sesuai namanya berfokus pada Web-nya saja. Begitu juga dengan Android Developer atau iOS Developer yang hanya fokus pada teknologi Mobile. Lalu juga ada namanya Full Stack Developer yang fokusnya lebih dari satu stack, seperti Back End & Web atau Mobile. Untuk Developer yang berfokus pada aplikasi Desktop juga ada namanya Desktop Developer, tapi saat ini demand untuk Desktop Developer udah berkurang karena jaman sekarang udah pada beralih ke aplikasi Web Based & Mobile Based.

Secara bahasa Software Engineer artinya insinyur perangkat lunak. Ini sebenarnya mirip dengan Software Developer, sama-sama mengembangkan produk complete dalam bentuk perangkat lunak. Bedanya, Software Engineer ga hanya mengembangkan produknya saja, tapi juga bertanggung jawab mengembangkan template, library, ataupun framework terkait produk. Bisa dibilang Software Engineer ini adalah Software Developer yang scopenya lebih luas yang juga bertanggung jawab mengembangkan core dari produk tersebut, ga hanya bikin fitur pada produk.

IT Support Engineer ini seperti Customer Service yang mengerti teknis aplikasi. IT Support Engineer adalah Software Engineer yang menjadi orang pertama yang menangani permasalahan client atau customer secara teknis. Misalkan ada laporan error, IT Support Engineer adalah yang menjadi pertama melakukan pengecekan, tracking error, dan analisa. Jika dimungkinkan untuk diperbaiki, misalnya ada NullPointer, maka ia bisa langsung melakukan fixing. Kalau bugs tersebut cukup gede effortnya, baru temuan itu akan dilaporkan ke tim terkait yang melakukan development. Selain itu mereka juga bertugas melakukan perbaikan data apabila client atau customer melakukan kesalahan penginputan & melakukan request untuk perbaikan.

IoT (Internet of Things) Engineer adalah Engineer yang fokusnya lebih spesifik pada menghubungkan perangkat elektronik dengan internet. Sebenarnya ini mirip dengan Software Engineer. Hanya saja, yang ia develop bukan hanya software, melainkan juga perangkat dan hal-hal terkait IoT seperti sensor, devices, actuator, dan lain-lain.

Database Administrator tugasnya lebih spesifik terhadap maintain query cost, melakukan tuning, troubleshoot permasalahan Database, dan menawarkan best practice terkait Database yang digunakan. Mereka juga yang bertanggung jawab memaintain System Database yang dimiliki perusahaan. Biasanya perusahaan besar yang memiliki system Database yang kompleks yang memiliki job title Database Administrator khusus. Untuk perusahaan pada umumnya, maintain Database cukup dilakukan oleh Engineer atau Manager.

Data Engineer berbeda dengan Data Administrator walaupun scopenya sama-sama seputar Data. Data Engineer ini ranahnya lebih ke arah Data Analytics atau OLAP (Online Analytical Processing). Fokusnya mendesain, mengembangkan, dan memaintain hal-hal terkait Big Data. Tugasnya memastikan data tersebut bisa diakses dan siap digunakan untuk kebutuhan analisis oleh pihak terkait. Seperti pada E-commerce misalnya, Data Engineer inilah yang bertugas menyediakan data analytics berapa banyak penjualan di periode tertentu, lalu dikategorikan berdasarkan usia pembeli, daerah, penghasilan, pekerjaan, dan beberapa metric analytics lainnya. Ini cocok untuk anak IT yang suka ngoding dan mengolah Big Data.

Jika Data Engineer scopenya hanya menyediakan data, maka Data Scientist tugasnya juga sebagai decision maker atas Data yang ada. Jadi berdasarkan data tersebut Data Scientist akan melakukan analisa, kemudian menarik kesimpulan dan memberikan saran terhadap bisnis. Mereka yang akan mengkomunikasikannya kepada pihak terkait berdasarkan temuan-temuan datanya. Ini cocok untuk anak IT yang lebih suka bermain dengan Data dibandingkan ngoding.

Tester adalah orang yang tugasnya spesifik membuat test plan dan melakukan testing pada aplikasi yang sudah dikembangkan sebelum go live. Profesi ini kerjaannya seperti user yang nyobain seluruh fitur aplikasi satu-persatu dan melaporkan bugs jika ditemukan.

Tugas utamanya memastikan aplikasi berjalan sesuai requirement yang diberikan. Kerjaannya mirip dengan Tester meliputi bikin test plan, melaporkan bugs, melakukan testing produk di semua environment, baik menggunakan automation maupun manual, dan memastikan aplikasi tersebut berjalan sesuai requirement sebelum go live ke production. Perbedaannya dengan Tester adalah mereka ga hanya melakukan testing terhadap fitur, tapi juga menganalisa kualitas aplikasi & memberikan masukan terhadap aplikasi yang dites, menetapkan standar pada aplikasi, hingga melakukan audit & evaluasi aplikasi.

Software Development Engineer in Test adalah Software Engineer yang tanggung jawabnya bukan mengembangkan produk, juga bukan melakukan testing. Melainkan mengembangkan software automation test yang digunakan untuk melakukan testing produk agar proses testing dapat dilakukan lebih cepat lewat software dibanding testing fitur satu-satu yang dapat memakan waktu yang lama. Terutama untuk mendeteksi apakah perubahan produk tersebut backward-compatible dengan versi sebelumnya. Kalau ini dicek satu-persatu secara manual tentu bakal melelahkan.

Profesi ini non-teknis di luar coding & testing. Business Analyst bertugas menerjemahkan requirement bisnis yang diinginkan client menjadi alur program yang akan dibuat. Misalkan client butuh aplikasi penggajian, maka Business Analyst inilah yang merancang seperti apa aplikasi yang akan di-develop mulai dari tampilan, fungsional aplikasi, dan hal-hal sejenisnya. Profesi Business Analyst ini biasanya ditemukan di perusahaan yang menjual jasa seperti konsultan IT.

Mirip seperti Business Analyst, profesi ini tugasnya juga non-teknis. Bedanya, Product Manager fokusnya memberikan ide fitur terhadap produk yang dibuat oleh perusahaan dan menuliskan rancangan aplikasi berdasarkan ide tersebut seperti Business Analyst. Ide-ide ini yang nantinya dieksekusi oleh tim development menjadi sebuah aplikasi. Product Manager ini biasanya ditemukan di perusahaan yang menjual produk, seperti e-commerce, SaaS, dan sejenisnya.

Product Engineer adalah Product Manager + Software Engineer. Scope-nya memberikan ide fitur terhadap produk dan mengeksekusinya menjadi sebuah aplikasi. Biasanya perusahaan yang memiliki title ini adalah perusahaan yang produknya berupa software yang bersifat teknis, seperti framework, plugin, library, produk IoT, API, atau produk yang requirementnya ga terlalu kompleks sehingga bisa di-handle oleh orang yang sama.

Project Manager adalah Manager yang memimpin sebuah projek dan menjadi jembatan penghubung antara tim development perusahaan dengan client. Dia yang bertanggung jawab mengatur jadwal & deadline, meeting dengan client, mengorganisir tim development, dan memastikan solusi yang ditawarkan diterima oleh client. Project Manager ini biasanya ditemukan di perusahaan konsultan IT atau perusahaan yang scope kerjanya per-project.

User Interface adalah desain tampilan sebuah aplikasi, misalkan bentuk tombol, ukuran font, dan desain visual pada aplikasi. Sedangkan User Experience adalah desain interaksi aplikasi dengan user, misalkan ketika sebuah tombol dipencet maka akan muncul pop-up, ketika sebuah link di-hover warnanya akan berubah, dan interaksi-interaksi lainnya. UI/UX Designer ini yang memberikan ide & masukan terhadap desain visual & desain interaksi aplikasi tersebut. UI/UX Designer biasanya akan bermain dengan tools desain seperti Figma, Adobe XD, atau tools sejenisnya. Ini profesi yang cocok buat anak IT yang punya passion di bidang desain.

Jika Sales umumnya mempromosikan produk dari sisi bisnisnya saja, maka Sales Engineer melengkapinya dengan mempromosikan produk dari sisi teknisnya. Sales Engineer itu Sales yang mengerti hal-hal teknis pada teknologi dari produk yang dijual. Tugasnya mempromosikan hal-hal teknis seperti jenis teknologi yang digunakan oleh produk, seberapa cepat aplikasi tersebut, kecanggihan produk, dan hal-hal teknis lainnya kepada client. Perusahaan yang memiliki title Sales Engineer ini biasanya perusahaan yang produknya terkait software yang bersifat teknis, seperti framework, plugin, library, produk IoT, API, dan lain-lain. Ini cocok untuk orang yang memiliki passion di bidang Sales tapi mengerti teknologi.

Berkaitan juga dengan Sales, tapi Solution Engineer ini fokusnya lebih ke pre-sales. Tugasnya mencari potential client, riset permasalahan teknis terkait teknologi yang dihadapi calon client, serta menganalisa kebutuhan teknis yang dibutuhkan oleh calon potential client. Lalu menawarkan solusinya hingga mendemonstrasikan produknya. Ini juga cocok untuk orang yang mengerti teknologi dan memiliki passion di bidang Sales. Sama seperti Sales Engineer, perusahaan yang memiliki title Solution Engineer ini biasanya perusahaan yang produknya terkait software yang bersifat teknis, seperti framework, plugin, library, produk IoT, API, dan lainnya.

Sesuai namanya, ini adalah Software Engineer yang bertanggung jawab menjaga system dari serangan hacker. Ia bertugas merencanakan strategy untuk melindungi jaringan internal. Mereka yang berada di garda terdepan ketika terjadi kehilangan data user, system dibobol, keamanan jaringan, dan sejenisnya. Ini cocok untuk anak IT yang punya passion pada sistem keamanan.

Sama seperti Security Engineer yang bertugas di bidang keamanan, Pentester justru sebaliknya, ia adalah orang yang bertugas untuk mencoba melakukan hacking terhadap system perusahaan untuk melihat apakah system yang berjalan sudah aman atau belum. Tapi biasanya perusahaan lebih sering mengadakan bounty hunting untuk melakukan test keamanan systemnya supaya menghemat cost. Celah keamanan system juga belum tentu terjadi setiap minggu atau bulan kalau kualitas development bagus. Pentester pun juga begitu, biasanya mereka lebih suka kerja kontrak atau freelance dengan mengikuti program bounty hunting dari perusahaan daripada terikat di satu perusahaan karena bayaran dari bounty hunting itu gede dan mereka bisa bekerja untuk lebih dari satu perusahaan. Ini cocok untuk anak IT yang tertarik pada dunia hacking.

DevOps Engineer bergerak di bidang operations. Mereka yang menjembatani antara tim development dengan system yang digunakan perusahaan. Fokus utamanya adalah mengembangkan system yang digunakan untuk proses development, seperti mengembangkan CI/CD, Container System, tools operation internal, dan lain-lain. Ini cocok untuk anak IT yang tertarik dengan tools seperti Docker, Kubernetes, Virtual Machine, dan sejenisnya.

Sama seperti DevOps Engineer, Site Reliability Engineer juga bergerak di bidang operations, sama-sama bertugas menjembatani antara tim development dengan system. Bedanya, scope tugasnya lebih luas daripada DevOps, seperti memaintain system, kestabilan performa server, membantu memaintain database, dan hal-hal terkait operation lainnya. Mereka yang bertanggung jawab jika server yang digunakan bermasalah.

Ini juga bagian tim operasional seperti DevOps & SRE. Tapi ini lebih spesifik ke bagian infrastruktur Cloud yang digunakan beserta fitur dari service suatu Cloud. Tugasnya seperti melakukan optimasi Cloud Service, maintain infrastruktur, hingga migrasi jika diperlukan. Infrastruktur Cloud Service yang paling sering ditemui di Indonesia adalah AWS, GCP, dan Azure.

Secara level, ini sebenarnya setara dengan Senior Engineer/Developer yang jam terbangnya sudah cukup tinggi. Bikin apapun tinggal sat set saja langsung jadišŸ˜. Hanya saja, Leader punya satu tugas tambahan, yaitu memanage tim yang ia pimpin, seperti membimbing role level di bawahnya, membuat perencanaan terhadap task yang dikerjakan oleh timnya, hingga menjadi perwakilan dari timnya ketika dibutuhkan untuk membahas suatu hal dengan tim lain. Lead inilah yang nantinya paling sering ikut meeting mewakili Engineer/Developer di timnya membahas hal-hal teknis dengan orang-orang non-technical. Dialah yang berada di garda terdepan ketika sesuatu terjadi terhadap timnya.

Ini adalah level di atas Senior Software Engineer & Lead, atau bisa dibilang Super SenioršŸ˜‚. Scope-nya tentu saja lebih luas. Bisa diartikan Principal Engineer adalah Senior Software Engineer yang juga bertanggung jawab melakukan review system yang sedang berjalan, optimasi pada proses development, melakukan riset terhadap teknologi yang digunakan, dan tentu saja kapasitas pengetahuannya tentang best practice teknologi yang digunakan sudah mendalam sehingga bisa jadi tempat bertanya kalau semua engineer udah buntu. Ini jadi pilihan karir selanjutnya bagi Senior Software Engineer yang kurang suka bidang Manajemen tapi lebih suka bidang perkodingan yang lebih advancešŸ§‘ā€šŸ’».

Selain Principal Engineer, Engineering Manager juga merupakan salah satu role level lainnya di atas Senior Engineer, setara Principal Engineer. Kalau Engineering Manager scope-nya lebih ke Management, sesuai namanya. Ini jadi pilihan karir selanjutnya bagi Senior Software Engineer yang ingin terjun ke bidang manajemen. Aktivitas codingnya tentu sudah berkurang ga sebanyak Principal Engineer yang masih hands on coding. Mereka lebih sering menangani beberapa tim dan berinteraksi bersama beberapa tim yang ia handle. Masing-masing Team Leader akan berkoordinasi dengan Engineering Manager dalam proses development.

Jika role-role Engineer di atas fokus tugasnya hanya sampai tahap perkodingan, maka ini lebih dari itu. Software Architect atau Solution Architect bertanggung jawab terhadap End to End system pada produk yang dibangun. Mulai dari bagaimana produk berjalan, teknologi stack apa yang digunakan, bagaimana aplikasi berkomunikasi, spesifikasi-spesifikasi yang dibutuhkan, dan beberapa hal teknis lainnya yang lebih luas.

Head of IT adalah atasan dari semua role di atas. Role-nya tepat dibawah executive level. Scope-nya lebih luas lagi. Ia yang bertanggung jawab terhadap proses development baik dari segi teknis maupun non-teknis. Meliputi perencanaan, implementasi, hingga mengkoordinasikannya dengan role level di bawahnya.

Ada yang menggunakan title VP of Technology, ada juga yang menggunakan title VP of Engineering, keduanya merujuk ke profesi yang sama. Ini levelnya di bawah CTO. VP bisa dibilang "wakil CTO" karena tugasnya bekerja sama membantu CTO dalam mengambil keputusan penting terkait teknologi. Perusahaan yang menggunakan VP biasanya perusahaan kelas atas yang scope bisnisnya cukup luas dan kompleks sehingga CTO butuh partner untuk berbagi tugas urusan penting terkait teknologi.

CTO adalah executive level. Ini adalah pemimpin tertinggi untuk urusan development. Executive level seringkali merupakan co-founder walaupun ga semuanya begitu. CTO, VP, dan Head of IT sama-sama bertanggung jawab terhadap proses development baik dari segi teknis maupun non-teknis. Yang paling membedakan adalah CTO juga menangani hal-hal ke arah strategis yang berdampak pada bisnis perusahaan bersama executive level lainnya.

Itulah beberapa jenis profesi terkait dunia perkodingan yang gw tahu. Btw, definisi-definisi job title di atas ga baku, tergantung masing-masing perusahaan juga. Promosi role dan title pada masing-masing perusahaan juga beda-beda requirementnya. Misalnya, requirement untuk title senior di suatu perusahaan ada yang pengalamannya 3 tahun, ada juga yang 5 tahun. Bisa juga dinilai dari pemahamannya terhadap teknologi tertentu. Soal gaji juga belum tentu senior title di sebuah perusahaan gajinya selalu lebih tinggi dari jabatan yang bukan senior di perusahaan lain. Beda perusahaan beda juga skala gajinya, dan banyak faktor di dalamnya. Sebenarnya masih ada lagi sih job title di dunia IT, tapi yang populer di Indonesia hanya poin-poin di atas. Walaupun secara fakta di lapangan kadang profesi di atas belum tentu sesuai definisinya, semuanya kembali lagi ke masing-masing perusahaan. At least buat anak-anak sekolah, kuliah, atau fresh graduates jadi punya gambaran mengenai profesi lulusan IT. Ga hanya Microsoft Word, Excel atau Powerpoint doangšŸ¤£.