Sabtu, 05 Januari 2013

METADATA


Metadata adalah informasi terstruktur yang mendeskripsikan, menjelaskan, menemukan, atau setidaknya membuat menjadikan suatu informasi mudah untuk ditemukan kembali, digunakan, atau dikelola. Metadata adalah informasi yang membuat Anda lebih mudah untuk mendapatkan, menggunakan, atau mengelola resource (sumber daya) atau objek.

 Metadata sering disebut sebagai data tentang data atau informasi tentang informasi. Metadata ini mengandung informasi mengenai isi dari suatu data yang dipakai untuk keperluan manajemen file/data itu nantinya dalam suatu basis data. Jika data tersebut dalam bentuk teks, metadatanya biasanya berupa keterangan mengenai nama ruas (field), panjang field, dan tipe fieldnya: integer, character, date, dll. Untuk jenis data gambar (image), metadata mengandung informasi mengenai siapa pemotretnya, kapan pemotretannya, dan setting kamera pada saat dilakukan pemotretan. Satu lagi untuk jenis data berupa kumpulan file, metadatanya adalah nama-nama file, tipe file, dan nama pengelola (administrator) dari file-file tersebut.
Fungsi metadata
Metadata memberikan fungsi yang sama seperti katalog yaitu:
  • membuat sumberdaya bisa ditemukan dengan menggunakan kriteria yang relevan;
  • mengidentifikasi sumberdaya
  • mengelompokkan sumberdaya yang serupa
  • membedakan sumberdaya yang tak miliki kesamaan
  • memberikan informasi lokasi

Kegunaan
·         Semua jenis metadata memiliki struktur yang menggambarkan resource, menjelaskan tujuan, atau menceri letaknya pada sebuah sistem milik Anda.
·         Metadata memastikan bahwa resource tetap bisa diakses dan informasi yang relevan tersedia ketika Anda membutuhkannya.
·         Namun, Anda tidak perlu menciptakan semua tiga jenis metadata untuk setiap resource.
·         Sebagai contoh, jika Anda hendak membuat diagram alur untuk menciptakan sebuah program perangkat lunak, memasukkan metadata struktural dan administratif mungkin sudah mencukupi

Jenis metadata
Metadata berisi berbagai informasi dan dapat dipecah menjadi tiga jenis utama:

  1. Metadata deskriptif menggambarkan suatu sumberdaya dalam maksud seperti penemuan dan identifikasi. Dia bisa meliputi elemen semisal judul, abstrak, pengarang, dan kata kunci. Metadata deskriptif berisi informasi atau kata kunci yang menjelaskan resource dan membantu Anda menemukan resource dalam suatu sistem. Sebuah katalog buku adalah contoh dari metadata deskriptif. Katalog buku umumnya berisi informasi seperti nomor buku, tema, judul, dan penulis yang dapat Anda gunakan untuk mencari buku-buku tertentu di perpustakaan. Metadata deskriptif juga biasa digunakan untuk membuat halaman web. Metadata deskriptif pada halaman web akan berisi informasi seperti kata kunci, deskripsi, set karakter, bahasa, dan bagaimana Anda ingin spider mesin pencari mengindeks halaman web.

  1. Metadata struktural menunjukkan bagaimana kumpulan obyek disusun secara bersama-sama menjadi satu, semisal bagaimana halaman-halaman ditata untuk membentuk suatu bab. Metadata struktural menggambarkan struktur obyek yang bisa terdiri atas tabel dan kolom dalam database, daftar lagu pada CD, atau halaman dalam sebuah buku. Metadata strukrutal membantu pengguna mengeksplorasi resource menggunakan indeks dan bahkan menggambarkan bagaimana beberapa objek berhubungan dengan yang lain, seperti urutan file. Metadata struktural dapat mengandung informasi tambahan termasuk batas-batas logis, posisi dalam memori, dan bahkan menjelaskan bagaimana dan mengapa sebuah objek digunakan.

  1. Metadata administratif menyediakan informasi untuk membantu mengelola sumberdaya, semisal terkait kapan dan bagaimana suatu informasi diciptakan, tipe dokumen dan informasi teknis lainnya, serta siapa yang bisa mengaksesnya.Metadata administratif membantu pemakai mengelola resource dan menyediakan informasi seperti jenis file, tanggal pembuatan, kontrol kualitas, dan frekuensi penggunaan. Jenis metadata ini digunakan untuk merekam informasi jangka pendek dan jangka panjang tentang kumpulan data. Sebagai contoh, metadata administratif tentang monitor komputer akan berisi ukuran monitor, model, resolusi, warna, cahaya, dan kebutuhan daya listrik.

Sumber:


Perbandingan Aplikasi Downloader: Orbit Downloader dengan Internet Download Manager


 Sekarang saya akan membandingkan 2 aplikasi yang digunakan untuk membantu mendownload sebuah file di internet. Yaitu Orbit Downloader dan IDM (Internet Download Manager). Aplikasi ini memiliki fungsi sebagai fasilitas bantuan untuk user dalam melakukan download sebuah file. Untuk itu saya akan menjelaskan perbandingan antara kedua aplikasi ini. Dan masing masing software memiliki keunggulan tersendiri pada saat kita menggunakannya.

A. Pengenalan Aplikasi
1. Orbit Downloader
Orbit downloader adalah program aplikasi download yang banyak digunakan sebelum munculnya berbagai aplikasi lain. Program ini berjalan berdasarkan keinginan user. Penggunaan bahasa yang mudah dimengerti. Shortcut yang diberikan tidak berubah, namun user dapat memilihnya secara custom. Dan juga memberikan pengaturan default, untuk mengantisipasi kehilangan shortcut yang dipilih secara custom.



2. Internet Download Manager
IDM (Internet Download Manager) merupakan aplikasi download versi baru yang lebih mengutamakan kecepatan dalam download file, serta koneksi internet yang selalu lancar sehingga tidak ada gangguan terhadap user yang sedang menggunakan program aplikasi ini. Apabila koneksi internet stabil, maka kecepatan akses dalam menggunakan program ini tercatat selalu kostan dan berubah ketika ada komunikasi selanjutnya. Perubahan ini disebabkan karena file yang didownload saling membutuhkan bandwidth untuk mencapai finishing download.

B. Aksesibilitas Download
1. Orbit Downloader
Orbit downloader ini adalah aplikasi yang memiliki tampilan yang sederhana, tidak dipenuhi dengan banyaknya tools tambahan yang ada didalam software. Tetapi aplikasi ini tidak menyediakan tempat sebagai icon untuk melakukan download file tersebut dan user dapat memulai dengan mengklik New pada aplikasi ini untuk membuat sebuah URL/Link untuk download sebuah file. Dimana pada menu ini Orbit juga meminta tujuan penyimpanan file download. Dan sebuah informasi besarnya kapasitas sebuah file yang di download akan ada dibawah menu pembuatan link baru untuk download sebuah file.
2. Internet Download Manager
IDM adalah aplikasi baru dalam software download manager. Aplikasi ini akan aktif langsung ke browser, sehingga jika ada file music, video yang berupa multimedia, aplikasi ini langsung menyediakan tempat sebagai icon untuk melakukan download file video tersebut. IDM juga menyediakan hal yang sama seperti Orbit Downloader namun tidak menampilkan informasi besarnya kapasitas file yang di download pada awal input alamat link downloadnya. Dan untuk penyimpanannya pun disimpan di tempat penyimpanan default yang dibuat ketika proses instalasi program telah selesai dilakukan. Semua informasi kecepatan akan ditampilkan pada saat proses download sudah dijalankan.

C. Kontrol Download
1. Orbit Downloader
Kontrol program telah disediakan beberapa tools, yang dapat menginterupsi proses kerja dari aplikasi ini. Misalnya: menghentikan sejenak proses download dengan pause, namun untuk meresume membutuhkan cek koneksi ke server. Dan secara otomatis file yang didownload disimpan disebuah folder yang diinginkan oleh user di media penyimpanan.


2. Internet Download Manager
Kontrol program jelas dan lengkap, sehingga pilihan user akan langsung ditampilkan oleh aplikasi ini. Sama halnya dengan aplikasi orbit downloader, yang juga menyediakan tempat penyimpanan file hasil download di folder default yang disediakan aplikasi. Hal ini dapat memudahkan user dalam mencari file yang telah di download di internet.

D. Penanganan Kesalahan Download
1. Orbit Downloader
Orbit menampilkan pesan kesalahan ketika download yang sedang berjalan terputus dari koneksi internet. Karena orbit menyimpan link download untuk sebuah file itu. Jika kita ingin meresume file yang telah dipause maka akan dimulai ulang dari proses awal download.


2. Internet Download Manager
Ketika putusnya koneksi dengan internet, IDM masih melanjutkan proses download, dan proses download itu berhenti ditengah jalan. Karena IDM akan mencari koneksi internet sampai download selesai, dan jika kita hentikan secara manual proses download dapat kita lanjutkan ketika koneksi internet telah lancar dan aktif kembali. Jadi file yang akan di download jelas disimpan pada Unfinishing di IDM Manager.

Profesi di Dunia IT



Bidang Computer Hardware, Network dan System Engineering
Pendahuluan
Profesi-profesi dalam dunia IT baru muncul pada beberapa dekade belakangan ini sejalan dengan berkembangnya komputer. Sampai sekarangpun di negeri kita masih banyak orang yang belum mengetahui profesi programmer atau ahli jaringan.
Bidang IT adalah bidang pekerjaan yang penuh dengan abstraksi. Apa yang dihasilkan tidak berbentuk barang tetapi berbentuk suatu jasa yang bisa meningkatkan produktifitas bidang pekerjaan lain.
Ilmu-ilmu bidang IT muncul dari perpaduan antara matematika dan teknik elektro, karena banyak hal-hal yang bersifat matematis dan ada juga yang bersifat elektronika didalamnya. Bagi yang pernah kuliah di jurusan yang berhubungan dengan IT tentunya banyak berhadapan dengan matakuliah yang berhubungan dengan matematika, algoritma dan sedikit elektronika. Tetapi setelah bekerja, hal-hal bersifat logika dan algoritma akan lebih banyak digunakan. Karena itu dalam semua jurusan komputer, teknik elektro / telekomunikasi dan matematika, selalu ada matakuliah “Algoritma dan Pemprograman”
Ada orang yang mengatakan: “Adalah sebuat mitos, seorang yang ahli dalam pemprograman harus ahli dalam matematika.” Mungkin ini ada benarnya secara umum, tetapi ada kalanya keahlian dalam matematika terutama Aljabar Linear memang diperlukan untuk membangun aplikasi tertentu seperti 3D CAD atau aplikasi grafis lainnya.
untuk menyederhanakannya, menurut saya bidang profesi IT dibagi menjadi tiga bagian besar yaitu:
1.      Computer Engineering (rekayasa komputer)
2.      Computer System & Networking (sistem dan jaringan computer)
3.      Software Development & Consulting (pengembangan & konsultansi piranti lunak)
Ketiga bidang IT tersebut sengaja saya urutkan dari yang bersifat “hard” ke yang lebih “soft”.
Setiap profesi di dunia IT memiliki jenjang karir mulai dari fresh graduate, junior, experienced, senior hingga expert. Saya akan membahas lebih detail mengenai hal ini dalam tulisan yang berjudul: “Jenjang karir dalam dunia IT”. Dalam tulisan ini hanya akan dibahas macam-macam jenis profesi di dunia IT dan ciri-cirinya.

1.     Bidang Computer Engineering

Bidang ini adalah yang paling bersifat konkrit karena tujuan akhirnya adalah menghasilkan produk yaitu sebuah Komputer atau sebuah peripheral. Computer engineering berkaitan dengan desain, pengembangan dan testing hardware komputer / peripheral dari mulai teknologi semikonduktor, mikroprosesor, circuit, interfacing hingga pengembangan embedded software dalam sebuah mikrokontroler.
Saya tidak akan banyak bercerita mengenai bidang ini karena banyak profesi-profesi di luar dunia IT yang terkait ke bidang ini seperti fisika, fabrikasi semikonduktor, mikroelektronika, elektronika dll.


1.1.          Hardware Engineer
Sebagian besar profesi yang berkaitan dengan computer engineering tidak banyak terdapat di Indonesia karena tenaga ahli di bidang ini banyak dipekerjakan di industri mikroprosesor dan integrated circuit yang melibatkan proses pabrikasi mikroelektronika dan desain arsitektur mikroprosesor yang saat ini belum ada di Indonesia. Kalaupun ada hanya pada proses assembling / perakitan dan bukan desain serta pengembangannya.
Profesi yang ada di negeri kita umumnya berkaitan dengan rancang bangun interfacing dan mikrokontroler. Mereka yang mengambil jurusan teknik komputer selama kuliah dapat menekuni bidang ini. Profesi ini biasa disebut “hardware engineer”.

Profesi hardware engineer sering kali “overlapping” dengan teknik elektro terutama dengan profesi electronics engineer dan control automation engineer. Di dunia kerja akan lebih banyak ditemukan tenaga-tenaga ahli yang berlatar belakang teknik elektro dibandingkan dengan teknik komputer.
Sebenarnya lingkup kerja masing-masing bidang sudah ditentukan. hardware engineer yang berlatar belakang teknik komputer tugasnya cenderung berhubungan dengan desain dan optimasi arsitektur komputer atau mikroprosesor atau mikrokontroler pada khususnya. Contohnya adalah bagaimana membuat instruction set yang optimal, berapa jumlah pipeline yang dibutuhkan, registers, optimasi bus dalam mikroprosesor dll. Bidang teknik elektronika bertugas merancang divais mikroelektronika (transistor), VLSI, optimasi dalam pabrikasi semikonduktor, optimasi konektifitas antar komponen dan kehandalan komponen mikroprosesor atau mikrokontroler yang diproduksi.
Hardware Engineer Tugas:
1.      Mendesain dan membangun interface antara komputer dengan peralatan-peralatan lain
2.      Membangun software yang mengontrol interface (biasanya menggunakan bahasa C)
3.      Mendesain dan membangun solusi menggunakan embedded sistem / mikrokontroler
4.      Membangun software untuk menjalankan mikrokontroler (biasanya menggunakan bahasa assembly)
5.      Testing hardware.
Keahlian yang diperlukan:
1.      Memahami rangkaian elektronika dan rancang bangun rangkaian digital serta komponennya
2.      Meguasai arsitektur komputer dan cara kerja mikroprosesor / mikrokontroler
3.      Meguasai rancang bangun computer interfacing
4.      Memahami algoritma dan pemprograman
5.      Menguasai bahasa pemprograman Assembly dan atau C/C++
6.      Menguasai prinsip kerja komunikasi data baik secara parallel, serial (COM/USB), Wireles serta teknik pemprogramannya.

Latar Belakang:
Teknik komputer, Teknik elektro (pemusatan studi komputer)

2.     Bidang Computer System & Networking

Bidang ini berkaitan dengan desain, implementasi dan pemeliharaan infrastruktur jaringan computer baik LAN maupun WAN, teknologi server hingga optimasi serta administrasi sistem komputer. Berikut ini adalah profesi-profesi yang berkaitan:

2.1.          System Support / Technical Support
Dari namanya: “system support atau technical support”, dapat kita pahami bahwa pekerjaan sehari-harinya adalah men-support/ maintain/ memelihara sistem komputer berupa hardware atau software yang sudah berjalan. Para profesional di bidang ini diperlukan untuk memberikan dukungan teknis terhadap produk berupa software atau hardware yang telah atau akan diimplementasikan. Selain itu, seorang sistem support/ technical support harus dapat melakukan troubleshooting bila terjadi gangguan terhadap sistem. Kalau pembaca pernah mendengar profesi “helpdesk engineer”, Profesi tersebut dapat digolongkan sebagai system support / technical support.
Salah satu hal yang perlu di perhatikan adalah, kadang kala seorang system support harus bekerja secara shift pagi dan malam untuk me-maintain sistem yang harus berjalan 24 jam sehari dan 7 hari seminggu.

System Support Memonitor Sistem
Tugas System Support / Technical Support:
1.      Memelihara dan memastikan sistem yang ada berjalan dengan baik
2.      Instalasi sistem baik hardware maupun software
3.      Troubleshooting dan perbaikan system
4.      Memberikan pelatihan ke para pengguna sistem

Keahlian yang Diperlukan:
1.      Menguasai instalasi & setting komputer
2.      Memahami konsep dasar networking dan troubleshooting-nya
3.      Memahami insalasi & troubleshooting hardware / software tertentu (tergantung apa yang di-support)
Latar Belakang:
Teknik komputer, Teknik elektro (pemusatan studi komputer)

2.2.          Network Engineer

Profesi network engineer adalah salah satu profesi yang cukup diminati karena salah satu profesi IT dengan panghasilan yang lumayan. Jenjang karir profesi ini cukup jelas dan umumnya IT management dijabat oleh orang-orang yang berlatar belakang profesi ini. Profesional di bidang ini umumnya memegang sertifikat
CCNA, CCNP ataupun CCIE. Dengan memegang sertifikat ini, skill mereka dapat diakui secara internasional dan lebih memudahkan dalam memperoleh pekerjaan di berbagai negera.
Network engineer biasanya dipekerjakan di provider-provider jaringan atau perusahaan multinasional dan atau yang berskala enterprise. Perusahaan-perusahaan tersebut membutuhkan interkoneksi data antar cabang di kota-kota yang jauh atau negara lain. Untuk itu diperlukan interkoneksi jaringan melalui WAN (Wide Area Network) dan konfigurasi LAN yang sesuai di kantor pusat dan kantor cabang.

Tugas Network Engineer:
1.      Mendesain dan membangun infrastruktur jaringan baik LAN maupun WAN
2.      Memberikan solusi terbaik dalam hal infrastruktur jaringan baik dalam hal peralatan yang digunakan, efisiensi, reliability, security dan aspek-aspek lain yang terkait
3.      Memastikan suatu infrastruktur jaringan computer dapat berfungsi dengan baik.




Keahlian yang Diperlukan:
1.      Menguasai konsep dasar mengenai jaringan seperti topologi, protokol-protokol komunikasi, standar-standar networking, media komunikasi data dan keamanan jaringan baik LAN maupun WAN
2.      Menguasai konsep dan desain infrastruktur jaringan dan troubleshooting-nya
3.      Menguasai desain, instalasi dan terminasi media jaringan seperti kabel tembaga/UTP, fiber optic, Wireless communication dll
4.      Menguasai setting, pemanfaatan dan troubleshooting perangkat jaringan seperti router, switch, firewall, proxy, modem dll
5.      Memahami instalasi dan setting PC dan server yang bisa digunakan dalam infrastruktur jaringan seperti domain controller, proxy, filrewall, mailserver dll
6.      Menguasai secara teknis dan praktis mengenai keamanan jaringan / sistem

Latar Belakang:
Teknik komputer, Teknik elektro (pemusatan studi komputer atau telekomunikasi)



2.3.          System Engineer / Administrator
Profesi System Engineer / System Administrator adalah profesi yang mirip dengan network engineer tetapi dituntut memiliki pengetahuan lebih detail dalam hal desain dan administrasi server-server yang ada di suatu jaringan internal.
Seseorang dengan posisi ini akan diserahi tanggung jawab untuk memastikan system (hardware, software dan jaringan komputer) di suatu perusahaan berjalan desuai harapan dan memegang kunci pasword utama jaringan internal perusahaan (Administrator). Serifikasi untuk profesi ini contohnya adalah MCSE untuk platform Microsoft Windows.


System Engineer di Ruang Server
Tugas System Engineer / Administrator:
1.      Mendesain dan membangun sistem dan jaringan komputer terutama dalam hal teknologi server dan konektifitasnya baik LAN maupun WAN
2.      Memberikan solusi terbaik dalam hal pemilihan dan teknologi server dan software yang digunakan dalam hal efisiensi, reliability, security dan aspek-aspek lain yang terkait
3.      Memastikan/memaintain suatu jaringan internal (baik LAN maupun WAN) dapat berfungsi dengan baik.

Keahlian yang Diperlukan:
1.      Memahami konsep dan desain infrastruktur jaringan dan troubleshooting-nya
2.      Mamahami setting dan instalasi tentang perangkat aktif jaringan seperti router, switch, hub, firewall dll.
3.      Menguasai secara mendalam salah satu atau beberapa platform / network operating system untuk membangun suatu domain yang aman dan terintegrasi, contohnya seperti “Active Directory” untuk platform windows.
4.      Menguasai secara mendalam tentang instalasi, setting dan troubleshooting PC dan server yang bisa digunakan dalam infrastruktur jaringan seperti domain controller, proxy, filrewall, mailserver, DNS dll
5.      Menguasai secara teknis dan praktis mengenai keamanan jaringan / system
Latar Belakang:
Teknik komputer, Teknik elektro (pemusatan studi komputer atau telekomunikasi).

2.4.          IT Specialist

IT Specialist umumnya dipekerjakan di perusahaan-perusahaan yang core bisnisnya bukan IT. Tugas utamanya adalah merekomendasikan solusi IT terbaik untuk meningkatkan efisiensi dan performa bisnis perusahaan baik dalam hal hardware, jaringan maupun software. Kalau anda merasa pekerjaan ini mirip konsultan IT, memang benar, IT specialist bekerja sebagai konsultan IT tetapi lebih cenderung kearah hardware dan jaringan, walaupun pengetahuan tentang software aplikasi server seperti operating system, mail server, proxy, anti virus server,  firewall, enterprise portal dll sangat diperlukan dalam mendukung tugas-tugasnya.
Seorang IT specialist harus menguasi bidang IT secara luas baik networking maupun software hingga implementasinya yang “masuk akal”, karena perusahaan yang belum pernah menerapkan IT secara terintegrasi kadangkala perlu mengadakan beberapa perubahan dalam manajemennya.
Untuk mengurangi perubahan dan sistem dapat bermanfaat secara optimal, seorang IT specialist harus memberikan solusi yang benar-benar dapat diterapkan dan ada gunanya serta dapat dikembangkan lebih lanjut untuk mengikuti perkembangan zaman.

Tugas IT Specialist:
1.      Mendesain dan membangun sistem komputerisasi terutama dalam hal implementasi software, hardware dan jaringan.
2.      Memberikan solusi terbaik dalam hal pemilihan dan implementasi teknologi baik hardware maupun software.

Keahlian yang Diperlukan:
1.      Memahami konsep dan desain infrastruktur jaringan dan troubleshooting-nya
2.      Menguasai network operating system dan aplikasi-aplikasi yang dapat diimplementasikan dalam organisasi.
3.      Memiliki pengetahuan yang luas mengenai software, hardware dan jaringan komputer.
4.      Menguasai secara teknis dan praktis mengenai keamanan jaringan / system

Latar Belakang:
Teknik komputer, Teknik elektro (pemusatan studi komputer atau telekomunikasi), Manajemen Informatika
Jika diperhatikan benar-benar, ada suatu ciri yang umum dalam profesi bidang “Computer System & Networking”, yaitu mengenai skill dalam pemprograman. Memang keahlian memprogram ini tidak diperlukan secara langsung dalam tugas-tugas rutin seorang network engineer atau sysadmin, tetapi ada beberapa hal yang sifatnya mirip dengan pemprograman seperti setting router, server / client script, batch file dan konfigurasi lainnya. Tetapi bila seorang Sysadmin memiliki kemampuan programming, tentunya ini akan menjadi nilai tambah dalam pekerjaannya. Banyak orang-orang yang dahulunya bekerja di bidang networking memiliki kemampuan programming yang cukup mumpuni hingga mampu mengarang buku tentang software development dengan bahasa pemprograman tertentu.


Bidang Software Development dan Consulting

Software development adalah bidang yang paling abstrak di dunia IT. Output yang dihasilkan hanya dapat dirasakan oleh user berupa informasi yang dapat mengoptimalkan berbagai macam pekerjaan.
Apapun jenis software yang dibangun, para pekerja di bidang ini dituntut memiliki logika dan ingatan yang kuat. Kemampuan untuk melihat suatu hal secara garis besar, menyeluruh dan juga secara detail hingga sekecil-kecilnya. Selain itu yang paling penting untuk sukses di bidang ini adalah ketekunan untuk belajar dan terus mengembangkan kemampuannya, karena bidang ini secara tetap akan terus berubah (constantly changing) dan berkembang seiring dengan perubahan zaman.
Dalam waktu 5 tahun, keahlian di salah satu teknologi tertentu dapat dianggap ketinggalan zaman (obsolete). Contohnya VB6 yang sangat populer di tahun 1998 support-nya sudah dihentikan di tahun 2008. Berarti aplikasi yang ditulis menggunakan teknologi ini tidak dijamin kompatibilitasnya dengan sistem operasi yang di-release setelah tahun 2008. Mau tidak mau sebagian besar programmer VB6 harus migrasi ke VB.Net dan “patuh” dengan aturan-aturan .Net Framework

Berikut ini akan dibahas satu-persatu profesi-profesi di bidang software development / consulting.

1.     Programmer/Developer
Profesional dalam bidang software development dan consulting umumnya pernah meniti karir sebagai seorang programmer. Keahlian dalam algoritma dan penguasaan terhadap salah satu atau beberapa bahasa memprograman mutlak diperlukan oleh seorang programmer. Programer adalah profesi inti dan tulang punggung dalam software development karena tidak akan terwujud sebuah software aplikasi tanpa adanya programmer, sedangkan tanpa didukung profesi lainnya, seorang programmer dapat membuat sebuah aplikasi yang berguna walaupun dengan cakupan terbatas.

Berdasarkan jenis programming dan output yang dihasilkan, programmer sendiri ada beberapa macam yaitu:

1.1.             Hardware Programmer
Hardware programmer sebenarnya adalah bagian dari hardware engineer. Sesuai namanya, mereka melakukan programming secara low level terhadap hardware, misalnya mikrokontroler, embeded sistem, PLC atau device lainnya. Pada awal diciptakannya komputer, programmer jenis ini lebih dominan karena cara memprogram komputer waktu itu mirip dengan cara memprogram mikrokontroller saat ini. Bahasa yang digunakan dulunya adalah bahasa mesin tetapi saat ini cenderung digunakan bahasa assembly dan C.

 1.2.             System Programmer

System programmer menggunakan low level dan medium level language. Biasanya mereka dipekerjakan dalam pengembangan sistem operasi dan modul-modul pendukungnya. Para pengembangan driver untuk periferal dan programming dalam SIM/UIM card juga digolongkan ke programmer jenis ini. Perbedaan system programmer dengan hardware programmer adalah: System programmer bekerja pada tahap pengembangan suatu platform / sistem operasi atau yang terkait erat dengannya untuk dijadikan sebagai landasan (platform) bagi pengembangan selanjutnya, sedangkan hardware programmer bekerja pada tahap implementasi suatu produk agar sesuai dengan requirement end user. Programmer jenis ini biasa menggunakan bahasa Assembly, C/C++ dan kemungkinan C# dikemudian hari bila sistem operasi yang menggunakan managed code (.Net) benar-benar diluncurkan.

1.3.             Application Programmer

Profesi “Application Developer”, “Software Developer”, “Web Developer”, “Enterprise Developer” atau “Developer” saja, profesi-profesi tersebut tergolong sebagai Application programmer. Programmer jenis inilah yang paling banyak dan populer di dunia kerja terutama di Indonesia.
Mungkin anda pernah berpikir, apa perbedaan istilah “application” dengan “software”. Singkatnya, dalam dunia IT, yang disebut application sudah pasti adalah sebuah software, sedangkan software belum tentu sebuah application. Software yang bukan termasuk aplikasi contohnya adalah operating system, device driver, protocol. Sedangkan yang dikenal sebagai aplikasi adalah software seperti office suite, image editor, games, sistem informasi retail/swalayan, sistem informasi pendidikan, sistem informasi hotel/retaurant, sistem informasi manajeman gudang, sistem informasi logistik, ERP (Enterprise Resource Planning), SCM (Suply Chain Managemant), CRM (Customer Relationship Managemant) , sistem bank, sistem airline dan masih banyak lainnya.
Dalam pekerjaannya, application programmer menggunakan high level language seperti Java, C#, Visual Basic (VB), VB.Net, Delphi, PHP dll. Dengan menggunakan high level language, proses pengembangan akan lebih mudah dan lebih cepat. Hal ini sesuai dengan tuntutan kebutuhan customer yang terus berkembang dengan cepat.

Dalam hal cakupan keahlian yang dibutuhkan, secara kasar jenis aplikasi dapat dibagi menjadi:
·         Desktop Application (aplikasi yang berwujud Windows Form, WPF, XWindows atau jenis GUI lainnya yang berjalan di O/S masing-masing)
·         Web Application (aplikasi yang user interface-nya berwujud HTML dan diakses dengan web browser, biasa dikembangkan dengan framework PHP, ASP.Net, Java, Spring, Ruby on Rails dll )
·         Database Application (aplikasi yang memerlukan akses ke database menggunakan teknologi seperti ADO.Net, OLEDB, ODBC, JDBC, ORM, Hibernate dll)
·         Distributed Application (aplikasi terdistribusi/server service seperti Web Service, J2EE, WCF, COM+ dll)
Seorang application programmer harus memiliki keahlian di beberapa jenis aplikasi untuk dapat menghasilkan aplikasi yang berguna. Contohnya: Web programmer harus memiliki kemampuan dalam web application dan database application untuk dapat menggunakan database sebagai penyimpanan data.


Tugas Programmer/Developer:
1.      Membangun/mengembangkan software terutama pada tahap construction dengan melakukan coding dengan bahasa pemprograman yang ditentukan
2.      Mengimplementasikan requiremant dan desain proses bisnis ke komputer dengan menggunakan algoritma /logika dan bahasa pemprograman
3.      Melakukan testing terhadap software bila diperlukan

Keahlian yang Diperlukan:
1.      Menguasai Algoritma dan logika pemprograman (ini penting sekali)
2.      Memahami metode, best practice dan tool/pemodelan pemprograman seperti OOP, design pattern, UML (kemampuan membaca dan menerapkan)
3.      Menguasai salah satu atau beberapa bahasa pemprograman populer seperti C++, VB, PHP, C#, Java, Ruby dll (untuk web developer perlu juga menguasai HTML, DHTML, CSS, JavaScript dan AJAX)
4.      Memahami RDBMS dan SQL (Structured Query Language)
5.      Menguasai bahasa Inggris (hal ini sangat penting saat ini karena bahasa en-US merupakan bahasa ibu di dunia IT)
Latar Belakang:
Ilmu Komputer, Teknik Informatika, Manajemen Informatika, Matematika pemusatan studi Komputasi

2.     System Analyst

Terkadang seorang programmer biasanya terlalu berkutat dengan coding, algoritma dan hal-hal yang technical sehingga kadang mengalami kesulitan dalam memahami proses bisnis menyeluruh yang umumnya terjadi di organisasi/perusahaan tertentu.
Untuk menjembatani celah ini, maka diperlukan seorang “System Analyst”. Seorang system analyst di satu sisi diharuskan memiliki keahlian dalam menganalisis proses bisnis (problem domain) untuk menghasilkan sebuah SRS (Software Requiremant Spesification) dan di sisi lain menguasai aspek technical dan implementasinya dalam software aplikasi (solution domain) untuk dapat menghasilkan DDD (Detailed Design Document). System analyst bekerja pada tahap requirement dan design, walaupun juga diperlukan untuk menyeberang dari tahap requirement dan design ke tahap construction/implementaion (coding/programming). Tentunya ini wajar karena biasanya seorang system analyst dahulunya juga seorang programmer. Tetapi seorang yang benar-benar diposisikan sebagai system analyst, tugas utamanya adalah membuat requirement dan desain software.
catatan:
Kita sering mendengar istilah Programmer Analyst atau Analyst Programmer. Kedua profesi ini terdengar mirip, hanya saja dominasi pekerjaannya yang lebih ditekankan untuk diletakkan di depan istilah tersebut. Programmer Analyst adalah seorang programmer yang kadang kala bekerja sebagai system analyst tetapi dengan porsi yang lebih sedikit daripada sebagai programmer. Begitu pula sebaliknya untuk Analyst Programmer. Saya tidak bisa memastikan apakah penggunaan istilah itu benar secara bahasa tetapi profesi/posisi semacam itu memang ada di dunia kerja dan dicantumkan dalam iklan lowongan pekerjaan.
System Analyst Tugas:

1.      Membangun/mengembangkan software terutama pada tahap requirement, design dan sebagian dalam tahap construction/implementation
2.      Membuat dokumen requiremant dan desain software berdasarkan proses bisnis customer/client
3.      Membuat proposal dan mempresentasikannya di hadapan stake holder / customer / client
4.      Membuat desain database bila aplikasi yang akan di bangun memerlukan database
5.      Membangun/mengembangkan framework/library untuk digunakan dalam pengembangan software oleh programmer

Keahlian yang Diperlukan:
1.      Menguasai hal-hal yang dikuasai programmer
2.      Menguasai metode, best practice pemprograman dan tool/pemodelan pemprograman seperti OOP, design pattern, UML (kemampuan membangun/mendesain)
3.      Menguasai SQL,ERD dan RDBMS secara lebih mendalam
4.      Memahami tentang arsitektur aplikasi dan teknologi terkini
Latar Belakang:
Ilmu Komputer, Teknik Informatika, Manajemen Informatika, Matematika pemusatan studi Komputasi

3.     Software Quality Assurance Engineer

Software Quality Assurance (SQA) engineer mungkin agak jarang terdengar di dunia kerja. Salah satu tugas SQA engineer memang melakukan testing terhadap software, tetapi bukan itu saja sebenarnya pekerjaan profesi ini.
Dalam perusahaan software development yang cukup mapan dan telah menangani banyak proyek besar, SQA engineer sangat diperlukan terutama untuk menghasilkan software yang berkualitas. Tugas SQA engineer diantaranya adalah melakukan “quality assurance” (QA) dan “quality check” (QC) terhadap software. Pengembangan software harus sesuai dengan prosedur standar yang telah ditetapkan (QA) dan harus melalui proses testing (QC) yang sesuai. Di sinilah tugas SQA engineer untuk memonitor proses software development dan memperbaiki standar yang ada (improve) bila masih memiliki kelemahan.
Software Quality Assurance Engineer Tugas:
1.      Memonitor jalannya proyek software development apakah sudah sesuai dengan standar dan prosedur yang ada
2.      Merancang dan membuat test case / skenario software testing
3.      Melakukan testing sesuai dengan test case / skenario
4.      Merumuskan dan merancang peningkatkan efisiensi dan efektifitas standar proses yang digunakan

Keahlian yang Diperlukan:
1.      Menguasai hal-hal yang berhubungan dengan software testing (test plan, test case, testing automation, functionality testing, regression testing dll)
2.      Memahami tentang perinsip kerja software sesuai dengan platformnya masing-masing
3.      Memahami tentang SDLC dan metodologi software development seperti RUP, Agile, XP, Scrum dll
4.      Memahami standarisasi seperti CMMI
5.      Menguasai penulisan dokumen dan komunikasi verbal dengan baik (dalam bahasa Inggris dan Indonesia)
Latar Belakang:
Ilmu Komputer, Teknik Informatika, Manajemen Informatika

5.     Software Engineer

Profesi software engineer sebenarnya ada kemiripannya dengan profesi programmer, system analyst ataupun SQA engineer. Yang membedakannya adalah software engineer memerlukan keahlian lebih mendalam dalam hal SDLC (Software Development Life Cycle) yaitu seluruh proses yang harus dijalani dalam pengembangan software. Pada level tertentu, seorang software engineer juga harus menguasai manajeman proyek software development. Salah satu standar SDLC yang umum digunakan dalam software engineering adalah SWEBOK (Software Engineering Body of Knowledge).
Kemampuan untuk menguasai seluruh disiplin dalam SDLC tidak membuat software engineer selalu lebih unggul daripada programmer, system analyst atau SQA engineer. Pada tingkatan yang sama, misalnya pengalaman kerja 5 tahun, seorang sistem analyst tentunya lebih ahli dalam menangkap requirement dan bisnis proses serta membuat proposal. Seorang programmer tentunya lebih menguasai secara mendalam bahasa pemprograman dan IDE (Integrated Development Environment) tools serta trik-trik tertentu dalam bahasa pemprograman. Seorang SQA engineer lebih menguasai software testing dan quality assurance. Diluar hal itu, semuanya bergantung pada pribadi masing-masing dalam mengembangkan keahliannya di profesi apapun.

Software Engineer Tugas:
1.      Melakukan tugas-tugas programmer, system analyst dan sebagian tugas SQA engineer
2.      Merekomendasikan dan menerapkan metodologi terbaik dalam sebuah proyek software development

Keahlian yang Diperlukan:
1.      Menguasai hal-hal yang dikuasai programmer, system analyst dan SQA engineer (dalam porsi yang lebih sedikit)
2.      Menguasai SDLC berdasarkan SWEBOK (requirement, design, implementation/construction, testing, maintenance)
3.      Menguasai metodologi software development seperti RUP, Agile, XP, Scrum dll
Latar Belakang:
Ilmu Komputer, Teknik Informatika, Manajemen Informatika, Matematika pemusatan studi Komputasi

4.     Database Administrator (DBA)

Profesi Database Administrator (DBA) terkait erat dengan programmer dan system analyst. Seorang DBA biasanya pernah menjadi seorang programmer tetapi pekerjaannya lebih sering berkaitan dengan database. Perbedaannya dengan database application programmer adalah seorang DBA memiliki keahlian lebih mendalam dalam hal desain, optimasi dan manajemen RDBMS (Relational Database Managemant System) tertentu seperti Oracle, SQL Server, MySQL dll. Tentunya penguasaan terhadap SQL (Structured Query Language) mutlak diperlukan. DBA harus memiliki keahlian menterjemahkan requirement proses bisnis ke obyek-obyek dalam database seperti tabel, query\view dan stored procedure disamping keahliannya dalam optimasi database seperti tuning, indexing, clustering, backup data, maintain high availability dan sebagainya.
Dengan semakin berkembangnya berbagai teknologi ORM (object relational mapping), maka di kemudian hari pekerjaan programmer dan DBA akan semakin dapat dipisahkan. Bila di masa lalu banyak programmer yang merangkap sebagai DBA, di masa depan bisa jadi programmer semakin jarang menggunakan SQL karena semuanya sudah ditangani oleh komponen ORM. Di sinilah perbedaan bidang keahlian seorang DBA menjadi lebih terlihat dibandingkan dengan seorang programmer.

Database Administrator Tugas:
1.      Merancang dan membangun database dalam sebuah sistem
2.      Merekomendasikan solusi terbaik dalam implementasi database baik dalam hal software maupun hardware
3.      Memaintain database agar dapat berjalan dengan baik dan optimal

Keahlian yang Diperlukan:
1.      Menguasai ERD, SQL dan desain database secara mendalam
2.      Menguasai berbagai teknik optimalisasi/tuning, backup dan maintain database
3.      Menguasai secara mendalam salah satu atau lebih RDBMS beserta tools yang ada.
4.      Memahami tentang salah satu platform/bahasa pemprograman untuk mengakses database
5.      Menguasai teknologi server, storage, operating system yang berkaitan dengan implementasi database
Latar Belakang:
Manajemen Informatika, Teknik Informatika, Ilmu Komputer.

6.     Software Architect
Software architect atau kadang disebut juga sebagai Technical Architect biasanya bekerja di perusahaan software development yang memiliki produk-produk software yang cukup besar dan kompleks. software architect bertugas untuk mendesain dan merekomendasikan secara technical mengenai bagaimana dan apa yang diperlukan dalam mengembangkan produk software tersebut. Profesional di bidang ini biasanya pernah meniti karir sebagai programmer, software engineer atau system analyst.
Seorang architect dituntut untuk menguasai software technology secara lebih mendalam. Kemampuannya dalam hal technical sangat diperlukan dalam proyek-proyek software development berskala besar dan kompleks, dimana keputusan dalam pemilihan teknologi yang paling tepat dan penguasaanya sangat menentukan kesuksesan proyek. Keahlian utama seorang software architect adalah dalam bidang software design dan software development technology.

Software Architect Tugas:
1.      Merekomendasikan teknologi yang paling cocok untuk mengembangkan produk software
2.      Membuat standar-standar software development yang akan digunakan oleh tim programmer / developer seperti coding standard, arsitektur, design pattern dll.
3.      Membuat rancangan/desain software dan proses pengembangannya secara keseluruhan, terutama dalam hal framework dan library yang digunakan

Keahlian yang Diperlukan:
1.      Menguasai hal-hal teknis yang dikuasai programmer, system analyst dan software engineer
2.      Menguasai secara mendalam tentang software development technology dan software design
3.      Menguasai penulisan dokumen dengan baik (dalam bahasa Inggris dan Indonesia)
Latar Belakang:
Teknik Informatika, Ilmu Komputer, Manajemen Informatika

7.     Software Implementer

Software implementer kadang desebut sebagai “Implementer” atau “Software Support”. Profesi ini kedengarannya mirip dengan “System Support” di dunia Computer System & Networking (lihat di “Profesi di dunia IT Bagian 1″). Memang secara pekerjaan ada kemiripan, tetapi sesuai penamaannya, dalam hal sesuatu yang disupport tentu sudah terlihat perbedaannya. Profesi software implementer tidak tergolong dalam bidang software development melainkan lebih dekat ke bidang software consulting.
Seorang software implementer/support bertugas men-support produk software yang akan diimplementasikan di sisi client/customer baik instalasi setting konfigurasi, modifikasi dan pelatihan untuk user-usernya. Umumnya software support tidak berurusan dengan masalah hardware/jaringan melainkan lebih ke produk software yang di support. seorang software implementer/support dibutuhkan dalam implementasi software yang cukup besar dan kompleks seperti software perbankan, asuransi, airline.

Software Implementer / Support Tugas:
1.      Melakukan instalasi/implementasi serta setting produk software di sisi client/customer
2.      Memelihara dan memastikan software yang sudah diimplementasikan berjalan dengan baik
3.      Melakuakan troubleshooting terhadap produk software
4.      Memberikan pelatihan (training) kepada para pengguna software

Keahlian yang Diperlukan:
1.      Menguasai secara mendalam produk software yang akan diimplementasikan
2.      Menguasai teknologi platform / sistem poperasi/ middleware (bila ada) yang dibutuhkan oleh produk software yang disupport
3.      Memahami insalasi, setting & troubleshooting produk software yang diimplementasikan
Latar Belakang:
Manajemen Informatika, Teknik Informatika, Ilmu Komputer, Teknik Komputer, Teknik Elektro (Pemusatan Studi Komputer).




8.     Technical Consultant

Technical Consultan atau kadang disebut sebagai “Consultant” saja sesuai namanya bekerja sebagai konsultan IT. Tugas utama seorang konsultan adalah merekomendasika solusi teknologi IT terbaik untuk memecahkan masalah yang ada. Bila seorang software architect lebih menguasai solution domain, seorang technical consultant lebih menguasai problem domain. Seorang technical consultant mirip seorang system analyst yang lebih sering membuat konsep proses bisnis dan requirment daripada melakukan design atau coding. Technical consultant tentunya juga menguasai teknologi software development tetapi pada level yang lebih umum dan luas (high level) dan lebih condong termasuk dalam bidang software consulting.
Berbeda dengan software architect yang lebih banyak bekerja secara internal dalam perusahaan, technical consultant lebih banyak bekerja untuk memberikan konsultasi kepada client/customer dan lebih banyak berhadapan dengan banyak orang. Untuk itu dibutuhkan interpersonal dan writing skill yang memadai.
Apabila anda sering mendengar istilah ERP (Enterprise Resource Planning) consultant, profesi tersebut termasuk dalam technical consultant. seorang ERP consultant tentunya harus menguasai proses bisnis enterprise dan bagaimana mengimplementasikannya dalam produk software yang dikuasai / direkomendasikannya.

Technical Consultant Tugas:
1.      Memberikan konsultansi/rekomendasi mengenai solusi IT terbaik untuk memecahkan masalah
2.      Membuat dokumen seperti proposal, requirement dan desain software secara umum
3.      Melakukan pelatihan (training) kepada para pengguna software.

Keahlian yang Diperlukan:
1.      Berpengalaman dan menguasai berbagai macam proses bisnis enterprise atau jenis bisnis terentu
2.      Menguasai teknologi IT secara luas
3.      Menguasai secara mendalam tentang solusi software yang direkomendasikan
4.      Menguasai penulisan dokumen dan komunikasi verbal dengan baik (dalam bahasa Inggris dan Indonesia)
Latar Belakang:
Manajemen Informatika, Teknik Informatika, Ilmu Komputer, Teknik Komputer, Teknik Elektro (Pemusatan Studi Komputer)



9.     User Interface Designer

Mungkin anda agak jarang mendengar nama profesi seperti ini karena memang istilah ini jarang digunakan. Ada iklan lowongan pekerjaan yang menggunakan istilah “User Interface Designer”, tetapi lebih sering digunakan istilah “Web Designer” untuk posisi tersebut.
Profesi yang terakhir ini memang agak sedikit berbeda dengan profesi-profesi sebelumnya karena orang-orang sukses di bidang ini umumnya memiliki bakat seni sekaligus kemampuan technical. Seorang user interface designer harus dapat membuat desain web yang manis, serasi, user friendly tetapi tetap efisien karena Internet memiliki bandwidth yang terbatas. Karena profesional di bidang ini lebih sering dipekerjakan dalam web development, maka profesi ini lebih sering disebut sebagai web designer.
Kadang kala user interface designer juga disertakan dalam proyek-proyek non web, misalnya untuk membuat design icon, splash screen, logo dll. Contohnya, dewasa ini di platform .NET dikenal adanya teknologi WPF (Windows Presentation Foundation). Dengan menggunakan teknologi ini, desain tampilan aplikasi desktop dapat dipisahkan dengan coding-nya. Seorang user interface designer dapat bekerja pada desain tampilan menggunakan XAML, sedangkan programmer/developer mengerjakan coding-nya di code-behind menggunakan C# atau VB.Net. Karena itulah profesi ini menurut saya lebih tepat dinamakan user interface designer.

User Interface Designer Tugas:
1.      Mendesain user interface agar menarik dan serasi secara visual dan user friendly
2.      Mendesain image/gambar/animasi yang akan digunakan di tampilan user interface (UI) software aplikasi

Keahlian yang Diperlukan:
1.      Memiliki bakat/minat di seni rupa / desain visual
2.      Memahami dasar-dasar pemprograman baik web maupun secara umum
3.      Menguasai scripting untuk user interface seperti seperti HTML, DHTML, CSS, JavaScript, action script, XAML dll.
4.      Menguasai tools manipulasi image dan animasi.

Latar Belakang:
Seni Rupa (desain visual), Teknik Informatika, Ilmu Komputer, Manajemen Informatika

Jenjang Karir di Dunia IT


Kita  akan membahas tentang tingkatan-tingkatan yang lazim dalam setiap profesi di dunia IT. Seperti bidang-bidang pekerjaan lainnya, profesi di dunia IT memiliki jenjang / tingkatan / level yang telah berlaku secara umum di dunia kerja yaitu:

1. Fresh Graduate
Mereka yang baru saja lulus dari universitas, institut, akademi ataupun sekolah menengah kejuruan dapat digolongkan sebagai fresh graduate. Sebagian dari mereka ada yang telah memiliki pengalaman kerja sehingga dapat digolongkan sebagai Junior atau malah Experienced. Untuk kasus ini sebutannya berubah dari fresh graduate menjadi experienced graduate.
Dengan bekal ilmu yang diperoleh selama kuliah, fresh graduate umumnya telah memiliki dasar-dasar pengetahuan dibidang IT seperti programming atau networking, akan tetapi tetap perlu adanya penyesuaian dengan lapangan kerja yang ada.
Sebagian besar fresh graduate belum dapat memastikan bidang profesi IT mana yang akan mereka jalani. Biasanya fresh graduate akan memilih bidang profesi yang sesuai dengan perusahaan tempat pertamakali mereka diterima kerja walaupun beberapa dari mereka ada juga yang telah memutuskan untuk bekerja di bidang profesi IT tertentu sesuai minat atau hobby-nya.

3.     Junior
Setelah diterima kerja pertama kali sebagai karyawan, biasanya seorang fresh graduate akan di-training oleh perusahaan untuk dapat dipekerjakan sesuai dengan kebutuhan perusahaan. Mereka yang lulus training ini biasanya diberi titel “Junior“, misalnya Junior Programmer, Junior Network Engineer ataupun Junior Consultant. Tingkatan ini dapat dianalogikan dengan level “Genin” di salah satu manga terkenal.
Seorang yang telah berada pada level junior dapat langsung mengisi lowongan kerja dengan kriteria misalnya: Programmer / IT staff dengan pengalaman 1 – 2 tahun. Ciri-ciri dari level junior adalah:
  1. Dapat bekerja dalam proyek / layanan IT tertentu pada tingkat dasar (basic). Misalnya sebagai programmer melakukan coding sederhana atau melakukan testing dan defect reporting. Sebagai network engineer dapat melakukan instalasi PC, setting network, IP address, instalasi switch/hub
  2. Bekerja dibawah pengawasan / supervisi dari yang lebih berpengalaman.
  3. Pengalaman kerja dibawah 2 tahun

3. Experienced
Setelah bekerja selama lebih dari 2 tahun, seorang junior dapat naik ke level “Experienced“. Orang-orang di level inilah yang paling banyak dibutuhkan di dunia kerja dan dapat dianggap “siap kerja”.
Nama profesi di level ini biasanya tidak diawali oleh embel-embel tertentu. Kalau kita mendengar istilah “Programmer”, “Developer”, “Software Engineer”, “Network Engineer”, maka itu sama saja dengan “Experienced Programmer” atau “Experienced Software Engineer”. Tingkatan ini dapat dianalogikan dengan level “Chunnin” di salah satu manga terkenal
Ciri-ciri dari level ini adalah:
  1. Dapat bekerja dalam proyek / layanan IT pada tingkat menengah atau lanjut dengan menerapkan teknologi atau metodologi terkini. Misalnya sebagai programmer/developer melakukan software design, menerapkan design pattern, OOP, coding sesuai standar (coding standard) dan best practice sehingga dapat menghasilkan aplikasi yang berkualitas. Sebagai network engineer dapat melakukan LAN design, instalasi dan setting server, instalasi dan setting router, core switch, LAN design, VLAN, interkoneksi WAN dll.
  2. Dapat bekerja secara mandiri dibawah pengawasan / supervisi yang minimum. Kadang kala tidak membutuhkan supervisi selama bekerja dan akan di review oleh team lead atau atasannya setelah pekerjaannya diselesaikan.
  3. Pengalaman kerja diatas 2 tahun

4.     Senior
Level senior dapat dikatakan sebagai level technical tertinggi yang umumnya dapat dicapai seorang pekerja IT. Kita sering mendengar istilah “Senior Programmer”, “Senior Developer”, “Senior Software Engineer”, “Senior Network Engineer” dll. Untuk mencapai level ini, diperlukan pengetahuan dan pengalaman yang luas dalam bidangnya. Biasanya orang yang berada di level ini ditempatkan sebagai team lead dalam proyek. Tingkatan ini dapat dianalogikan dengan level “Jounin” di salah satu manga terkenal :)yang artinya “Elite”.
Ciri-ciri dari level senior adalah:
  1. Menguasai secara mendalam dan umumnya berpengalaman lebih dari 5 tahun dalam bidangnya, walaupun ada pula yang mencapai level ini dalam 3 tahun dan ada yang 10 tahun, semuanya bergantung pada kemampuan dan kesempatan masing-masing
  2. Dapat bekerja tanpa supervisi karena dialah yang seharusnya paling tahu solusi IT terbaik
  3. Mengawasi (supervise) dan mereview hasil kerja anggota team yang berada di bawah levelnya seperti Junior dan Experienced
  4. Sebagai tempat bertanya / mentor dalam hal teknologi (technology expert) di lingkungan kerjanya
  5. Berperan sebagai designer / analyst / architect atau team lead dalam sebuah proyek
Seorang yang pantas dianggap memiliki tingkatan senior adalah “Expert” dalam bidang profesinya dan dapat diserahi tanggung jawab penuh mengenai teknologi dalam sebuah proyek atau layanan IT.

5. Principal
Istilah principal dalam jenjang karir IT mungkin agak jarang terdengar. Istilah seperti “Principal Software Engineer” atau “Principal Network Engineer” telah umum digunakan di dunia IT, hanya saja tidak banyak penyandang sebutan ini. Principal di sini maksudnya adalah “utama” / paling top. Selain tidak semua profesional IT dapat mencapai level ini, sebagian besar perusahaan merasa cukup untuk mempekerjakan seorang dengan level senior sebagai expert dalam aspek teknis. Akibatnya profesional IT yang telah mencapai level senior akan beralih ke manajemen seperti project manager bila ingin mencapai karir yang lebih tinggi.
Kalau kita meminjam istilah salah satu manga terkenal, bisa dikatakan ini adalah level “S-Class” atau “Super”. Mereka yang dianggap mencapai level ini biasanya diakui sebagai yang paling cemerlang diantara para senior. Mereka tidak hanya dianggap sebagai “Expert” tetapi juga sebagai “Leader” dalam bidangnya.
Ciri-ciri dari level ini adalah:
  1. Memiliki seluruh kemampuan dari level senior
  2. Sebagai tempat bertanya dalam hal teknologi dalam bidang profesinya (technology expert and leader) dalam lingkungan yang lebih luas baik nasional maupun internasional
  3. Sering membuat artikel / tulisan-tulisan mengenai bidang profesinya yang bermanfaat bagi orang lain
  4. Dapat dipercaya untuk membangun / mengembangkan sebuah standard (set the standards) yang digunakan dalam bidang profesinya, misalnya menciptakan design pattern tertentu atau metodologi pengembangan software yang efektif.
Salah satu contoh dari level ini adalah mereka yang mendapatkan MVP Award (Most Valuable Professional) dari sebuah raksasa software yang tidak asing lagi bagi kita, atau yang memegang sertifikat CCIE dari sebuah vendor jaringan terbesar.

6. Manager
Seorang dengan level senior dan memiliki track record yang bagus biasanya dapat dipromosikan sebagai managar, dalam hal ini adalah Project Manager. Posisi manager dalam dunia IT banyak macamnya. Beberapa istilah yang sering kita dengar diantaranya adalah:
  • Project Manager
  • Development Manager
  • Application Manager / Network Manager
  • IT Manager / General Manager IT
  • Technical Manager
  • Product Manager
  • Senior Manager
Project manager adalah salah satu posisi manager yang sering kita dengar di dunia IT. Tugas utama seorang project manager adalah memastikan sebuat proyek berjalan lancar sesuai harapan. Tugas-tugas umum seorang project manager adalah membuat perencanaan yang mencakup biaya, waktu pengerjaan, jumlah pekerja yang dibutuhkan, kemudian mengontrol jalannya proyek dan menyingkirkan segala hambatan/rintangan dalam proyek baik dalam hal teknis (teknologi) atau non teknis (politik, birokrasi).
Bagi yang memerlukan penjelasan lebih lanjut dapat membacanya di dokumen PMBOK (Project Management Body of Knowledge) oleh PMI (Project Management Institute). PMI juga mengeluarkan sertifikasi project manager yang diakui secara internasional yaitu Project Manager Professional (PMP).
Mengenai jenis manajer lainnya akan saya jelaskan di tulisan selanjutnya yang berjudul “Profesi Manajer di Dunia IT”


7. Director
Seorang profesional IT yang dapat mencapai level direktur IT mungkin agak jarang sejarang kita mendengar istilah “IT Director”. Inilah jenjang karir tertinggi yang masih berhubungan erat dengan IT. Posisi ini juga dikenal sebagai CTO (Chief Technology Officer). Seorang yang berada di level direktur idealnya bekerja di tingkatan kebijakan dan strategi. Kebijakan dan strategi dalam pengembangan dan implementasi IT tentunya bagi seorang IT director.
IT director diperlukan di perusahaan yang menempatkan IT sebagai hal yang critical dan sangat penting, sedangkan CTO biasanya ada di perusahaan IT / software development yang sudah cukup besar