Jenis-jenis Profesi di Bidang IT
Profesi
adalah kata serapan dari sebuah kata dalam bahasa Inggris "Profess",
yang dalam bahasa Yunani adalah "Επαγγελια", yang bermakna:
"Janji untuk memenuhi kewajiban melakukan suatu tugas khusus secara
tetap/permanen".
Profesi
adalah pekerjaan yang membutuhkan pelatihan dan
penguasaan terhadap suatu pengetahuan khusus.
Suatu profesi biasanya memiliki asosiasi profesi, kode etik, serta proses sertifikasi dan lisensi yang
khusus untuk bidang profesi tersebut. Contoh profesi adalah pada bidang hukum, kedokteran, keuangan, militer,teknikdandesainer
Seseorang
yang memiliki suatu profesi tertentu, disebut profesional.
Walaupun begitu, istilah profesional juga digunakan untuk suatu aktivitas yang
menerima bayaran, sebagai lawan kata dari amatir. Contohnya adalah petinju profesional
menerima bayaran untuk pertandingan tinju yang dilakukannya, sementara olahraga tinju sendiri
umumnya tidak dianggap sebagai suatu profesi.
Profesi
adalah pekerjaan, namun tidak semua pekerjaan adalah profesi. Profesi mempunyai
karakteristik sendiri yang membedakannya dari pekerjaan lainnya. Daftar
karakterstik ini tidak memuat semua karakteristik yang pernah diterapkan pada
profesi, juga tidak semua ciri ini berlaku dalam setiap profesi:
Keterampilan
yang berdasar pada pengetahuan teoretis: Profesional diasumsikan mempunyai
pengetahuan teoretis yang ekstensif dan memiliki keterampilan yang berdasar
pada pengetahuan tersebut dan bisa diterapkan
dalam praktik.
Asosiasi
profesional: Profesi biasanya memiliki badan yang diorganisasi oleh para
anggotanya, yang dimaksudkan untuk meningkatkan status para anggotanya. Organisasi
profesi tersebut biasanya memiliki persyaratan khusus untuk
menjadi anggotanya.
Pendidikan
yang ekstensif: Profesi yang prestisius biasanya memerlukanpendidikan yang
lama dalam jenjang pendidikan tinggi.
Ujian
kompetensi: Sebelum memasuki organisasi profesional, biasanya ada persyaratan
untuk lulus dari suatu tes yang menguji terutama pengetahuan teoretis.
Pelatihan
institutional: Selain ujian, juga biasanya dipersyaratkan untuk mengikuti
pelatihan istitusional dimana calon profesional mendapatkan pengalaman praktis
sebelum menjadi anggota penuh organisasi. Peningkatan keterampilan melalui
pengembangan profesional juga dipersyaratkan.
Lisensi:
Profesi menetapkan syarat pendaftaran dan proses sertifikasi sehingga hanya
mereka yang memiliki lisensi bisa dianggap bisa dipercaya.
Otonomi
kerja: Profesional cenderung mengendalikan kerja dan pengetahuan teoretis
mereka agar terhindar adanya intervensi dari luar.
Kode
etik: Organisasi profesi biasanya memiliki kode etik bagi para anggotanya dan
prosedur pendisiplinan bagi mereka yang melanggar aturan.
Mengatur
diri: Organisasi profesi harus bisa mengatur organisasinya sendiri tanpa campur
tangan pemerintah. Profesional diatur oleh mereka yang lebih senior, praktisi
yang dihormati, atau mereka yang berkualifikasi paling tinggi.
Layanan
publik dan altruisme: Diperolehnya penghasilan dari kerja profesinya dapat
dipertahankan selama berkaitan dengan kebutuhan publik, seperti layanan dokter
berkontribusi terhadap kesehatan masyarakat.
Status
dan imbalan yang tinggi: Profesi yang paling sukses akan meraih status yang
tinggi, prestise, dan imbalan yang layak bagi para anggotanya. Hal tersebut
bisa dianggap sebagai pengakuan terhadap layanan yang mereka berikan bagi masyarakat.
Profesi
di bidang IT :
Kelompok
Pertama, adalah mereka yang bergelut di dunia perangkat lunak (software) baik
mereka yang merancang sistem operasi, database maupun sistem aplikasi. Pada
lingkungan kelompok ini terdapat pekerjaan-pekerjaan seperti misalnya :
System
analyst: orang yang bertugas menganalisa sistem yang akan diimplementasikan,
mulai dari menganalisa sistem yang ada, tentang kelebihan dan kekurangannya,
sampai studi kelayakan dan desain sistem yang akan dikembangkan.
Programmer:
orang yang bertugas mengimplementasikan rancangan sistem analis yaitu membuat
program (baik aplikasi maupun sistem operasi) sesuai sistem yang dianalisa
sebelumnya.
Web
designer: orang yang melakukan kegiatan perecanaan, termasuk studi kelayakan,
analisis dan desain terhadap suatu proyek pembuatan aplikasi berbasis web.
Web
programmer: orang yang bertugas mengimplementasikan rancangan web designer
yaitumembuat program berbasis web sesuai desain yang telah dirancang
sebelumnya.
b.
Kelompok kedua, adalah mereka yang bergelut di perangkat keras (hardware). Pada
lingkungan kelompok ini terdapat pekerjaanpekerjaan seperti :
Technical
engineer (atau teknisi): orang yang berkecimpung dalam bidang teknik baik
mengenai pemeliharaan maupun perbaikan perangkat sistem komputer.
Networking
engineer: orang yang berkecimpung dalam bidang teknis jaringan komputer dari maintenance
sampai pada troubleshooting-nya.
c.
Kelompok ketiga, adalah mereka yang berkecimpung dalam operasional sistem
informasi. Pada lingkungan kelompok ini terdapat pekerjaan-pekerjaan seperti:
EDP
operator : orang yang bertugas untuk mengoperasikan program-program yang
berhubungan dengan electronic data processing dalam lingkungan sebuah
perusahaan atau organisasi lainnya.
System
administrator: orang yang bertugas melakukan administrasi terhadap sistem,
melakukan pemeliharaan sistem, memiliki kewenangan mengatur hak akses terhadap
sistem, serta hal-hal lain yang berhubungan dengan pengaturan operasional
sebuah sistem.
MIS
director : orang yang memiliki wewenang paling tinggi terhadap sebuah sistem
informasi, melakukan manajemen terhadap sistem tersebut secara keseluruhan baik
hardware, software maupun sumber daya manusianya.
1. Programmer/Developer
Profesi
programmer/developer adalah profesi yang paling sering terdengar, karena
profesi ini sudah ada sejak diciptakannya komputer itu sendiri. 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
Dalam
pekerjaannya, 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
Bagi
yang sering mendengar 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. Hal ini
disebabkan karena aplikasi adalah jenis software yang paling banyak di gunakan.
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 dll. 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)
Walaupun
digolongkan dalam ke empat macam keahlian tersebut, seringkali 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
mengembangkan aplikasi web yang memerlukan database sebagai penyimpanan data.
Tidak sedikit pula programmer yang memiliki keahlian di seluruh jenis aplikasi
sehingga sering disebut disebut enterprise application developer.
Programmer/Developer:
Tugas:
Membangun/mengembangkan
software terutama pada tahap construction dengan melakukan coding dengan bahasa
pemprograman yang ditentukan
Mengimplementasikan
requiremant dan desain proses bisnis ke komputer dengan menggunakan algoritma
/logika dan bahasa pemprograman
Melakukan
testing terhadap software bila diperlukan
Keahlian
yang Diperlukan:
Menguasai
Algoritma dan logika pemprograman (ini penting sekali)
Memahami
metode, best practice dan tool/pemodelan pemprograman seperti OOP, design
pattern, UML (kemampuan membaca dan menerapkan)
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)
Memahami
RDBMS dan SQL (Structured Query Language)
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
Seiring
dengan berjalannya waktu dan perkembangan zaman, kebutuhan aplikasi komputer
semakin kompleks. Ada kalanya proses bisnis dan permasalahan dalam suatu
organisasi cukup kompleks untuk dijabarkan secara langsung ke sebuah software
aplikasi. Biasanya para manajer/direksi perusahaan memahami secara detail
mengenai proses bisnis di perusahaannya, misalnya dari sejak procurement,
purchasing, manufacturing, warehousing, marketing, accounting dll, tetapi
mereka biasanya kurang memahami mengenai bagaimana implementasinya secara
teknis dalam software aplikasi. Kemudian 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 dapat 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). Seorang system analyst
biasanya berangkat dari seorang programmer yang sudah mahir dan berpengalaman
dalam software development. Kemampuannya dalam menangkap requirement dan proses
bisnis, ketajaman analisis mengenai celah-celah dalam sistem serta kemampuan
merekomendasikan solusi terbaik secara technical sangat diperlukan dalam
mengembangkan software yang berkualitas dan dapat bermanfaat untuk meningkatkan
kinerja proses bisnis suatu organisasi.
System
analyst bekerja pada tahap requirement dan design, walaupun kadangkala 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:
Untuk
mengetahui lebih detail mengenai tahap pengembangan software (SDLC) akan saya
jelaskan di artikel lainnya.
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:
Membangun/mengembangkan
software terutama pada tahap requirement, design dan sebagian dalam tahap
construction/implementation
Membuat
dokumen requiremant dan desain software berdasarkan proses bisnis
customer/client
Membuat
proposal dan mempresentasikannya di hadapan stake holder / customer / client
Membuat
desain database bila aplikasi yang akan di bangun memerlukan database
Membangun/mengembangkan
framework/library untuk digunakan dalam pengembangan software oleh programmer
Keahlian
yang Diperlukan:
Menguasai
hal-hal yang dikuasai programmer
Menguasai
metode, best practice pemprograman dan tool/pemodelan pemprograman seperti OOP,
design pattern, UML (kemampuan membangun/mendesain)
Menguasai
SQL, ERD dan RDBMS secara lebih mendalam
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.
Hal ini mungkin karena di Indonesia belum banyak lowongan kerja yang
mencantumkan posisi ini. Bila anda pernah mendengar posisi “Software Tester”,
maka itu termasuk dalam profesi ini. 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 masi memiliki kelemahan.
Dalam
software development, terdapat beberapa resiko yang ditanggung oleh para stake
holders. Seperti terjadinya bug/defect, waktu pengembangan yang semakin panjang,
resource yang semakin bertambah ataupun kendala-kendala lain yang tidak
diperkirakan sebelumnya. Tugas SQA engineer yang persifat preventif adalah
dengan meminimalisir resiko-resiko ini.
Untuk
menilai kemapanan sebuah perusahaan, terutama yang bergerak dalam bidang
software development, terdapat beberapa standar seperti CMMI Capability
Maturity Model Integration. Singkatnya, makin tinggi level CMMI sebuah
perusahaan, resiko project yang ditanganinya akan semakin kecil. Dengan begitu
perusahaan dengan level CMMI yang tinggi dianggap sudah mapan dan dipercaya
untuk mengerjakan proyek-proyek besar. Salah satu tugas SQA engineer adalah
mengusahakan agar perusahaannya lulus sertifikasi CMMI di level tertentu.
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 / scenario
4.
Merumuskan dan merancang peningkatkan efisiensi dan efektifitas standar proses
yang digunakan
Keahlian
yang Diperlukan:
Menguasai
hal-hal yang berhubungan dengan software testing (test plan, test case, testing
automation, functionality testing, regression testing dll)
Memahami
tentang perinsip kerja software sesuai dengan platformnya masing-masing
Memahami
tentang SDLC dan metodologi software development seperti RUP, Agile, XP, Scrum
dll
Memahami
standarisasi seperti CMMI
Menguasai
penulisan dokumen dan komunikasi verbal dengan baik (dalam bahasa Inggris dan
Indonesia)
Latar
Belakang:
Ilmu
Komputer, Teknik Informatika, Manajemen Informatika
4.
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).
Kompleksitas
dalam software develompment dari tahun-ketahun semakin kompleks dan jauh lebih
kompleks dibandingkan pada saat awal komputer diciptakan. Untuk itulah para
ahli dalam bidang software engineering menyusun berbagai metodologi untuk
mengoptimalkan software development process agar dapat menghasilkan produk
software yang sesuai dengan tuntutan perkembangan zaman. Keahlian unik seorang
software engineer adalah kemampuannya untuk merekomendasikan dan menerapkan
metodologi software development terbaik dalam sebuah proyek. Metode-metode
software development populer seperti RUP, Agile, Scrum, XP, TDD, BDD memiliki
keunggulan dan kelemahan dan tentunya diperlukan keahlian dan pengalaman dalam
merekomendasikan dan mengimplementasikan metode yang paling cocok dalam sebuah
proyek software development.
Bila
programmer dan system analyst ada yang dipekerjakan di perusahaan-perusahaan
yang core business-nya bukan software, software engineer umumnya dipekerjakan
di perusahaan-perusahaan software development. Bila sebuah perusahaan
memerlukan karyawan dengan posisi software engineer, maka kemungkinan besar
perusahaan tersebut memerlukan karyawan yang dapat ditempatkan secara
fleksibel. Misalnya di sebuah proyek, karyawan A dapat diposisikan sebagai
programmer dalam tahap construction, sedangkan dalam proyek lainnya si A dapat
diposisikan sebagai system analyst dalam tahap requirement dan design. Dapat
pula si A diposisikan sebagai software tester, SQA engineer ataupun di posisi
mana saja dalam SDLC.
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:
Melakukan
tugas-tugas programmer, system analyst dan sebagian tugas SQA engineer
Merekomendasikan
dan menerapkan metodologi terbaik dalam sebuah proyek software development
Keahlian
yang Diperlukan:
Menguasai
hal-hal yang dikuasai programmer, system analyst dan SQA engineer (dalam porsi
yang lebih sedikit)
Menguasai
SDLC berdasarkan SWEBOK (requirement, design, implementation/construction,
testing, maintenance)
Menguasai
metodologi software development seperti RUP, Agile, XP, Scrum dll
Latar
Belakang:
Ilmu
Komputer, Teknik Informatika, Manajemen Informatika, Matematika pemusatan studi
Komputasi
5.
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.
Salah
satu tugas sehari-hari seorang DBA adalah memaintain database baik produksi,
backup maupun development dalam perusahaan yang membutuhkan aplikasi database
berskala besar untuk operasionalnya sehari-hari. Karena itu selain hal-hal yang
berhubungan dengan software, seorang DBA juga perlu memahami beberapa hal
tentang hardware seperti teknologi server, storage devices dll agar dapat
merekomendasikan database yang optimal. Pengetahuan tentang server clustering,
storage array network (SAN), RAID, backup devices dan optimalisasinya merupakan
keahlian unik seorang DBA.
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.
Dahulu
untuk mencari orang yang memiliki keahlian dalam bidang jaringan, server dan
database, Hasilnya orang seperti itu tidak pernah ditemukan, karena itu sama
saja menggabungkan kemampuan System Administrator dengan Database
Administrator. Seorang System Administrator berlatar belakang computer system
& networking Seorang DBA sebenarnya berlatar belakang software development.
Dua hal tersebut bagaikan jalan bercabang yang harus dipilih oleh seorang
profesional IT di awal karirnya.
Database
Administrator:
Tugas:
Merancang
dan membangun database dalam sebuah system
Merekomendasikan
solusi terbaik dalam implementasi database baik dalam hal software maupun
hardware
Memaintain
database agar dapat berjalan dengan baik dan optimal
Keahlian
yang Diperlukan:
Menguasai
ERD, SQL dan desain database secara mendalam
Menguasai
berbagai teknik optimalisasi/tuning, backup dan maintain database
Menguasai
secara mendalam salah satu atau lebih RDBMS beserta tools yang ada.
Memahami
tentang salah satu platform/bahasa pemprograman untuk mengakses database
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.
Bila
system analyst harus memiliki pengetahuan yang berimbang antara proses bisnis
(problem domain) dan software technology (solution domain), 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:
Merekomendasikan
teknologi yang paling cocok untuk mengembangkan produk software
Membuat
standar-standar software development yang akan digunakan oleh tim programmer /
developer
Membuat
rancangan/desain software dan proses pengembangannya secara keseluruhan
Keahlian
yang Diperlukan:
Menguasai
hal-hal yang dikuasai programmer, system analyst dan software engineer
Menguasai
secara mendalam tentang software development technology
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 dll
Software
Implementer / Support
Tugas:
Melakukan
instalasi/implementasi serta setting produk software di sisi client/customer
Memelihara
dan memastikan software yang sudah diimplementasikan berjalan dengan baik
Melakuakan
troubleshooting terhadap produk software
Memberikan
pelatihan (training) kepada para pengguna software
Keahlian
yang Diperlukan:
Menguasai
secara mendalam produk software yang akan diimplementasikan
Menguasai
teknologi platform / sistem poperasi/ middleware (bila ada) yang dibutuhkan
oleh produk software yang disupport
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 /
direkomndasikannya. Pada tulisan mengenai “Profesi di dunia IT Bagian 1″, IT
specialist mirip dengan technical consultant dalam hal rekomendasi dan
implementasi IT. Perbedaannya adalah, technical consultant lebih menguasai
proses bisnis dan software sedangkan IT specialist lebih meguasai hardware dan
jaringan serta software secara garis besar.
Bila
bekerja pada perusahaan yang menjual produk software, technical consultant
biasanya lebih banyak bekerja pada tahap pre-sales. Pada tahap implementasi,
technical consultant bekerja sama dengan software implementer. Setelah software
terimplementasi (after sales), software implementer / support akan lebih banyak
berperan dalam operasionalnya. Technical consultant akan diperlukan lagi bila
ada perubahan proses bisnis, modifikasi atau penambahan modul yang cukup
kompleks dalam software tersebut
Technical
Consultant:
Tugas:
Memberikan
konsultansi/rekomendasi mengenai solusi IT terbaik untuk memecahkan masalah
Membuat
dokumen seperti proposal, requirement dan desain software secara umum
Melakukan
pelatihan (training) kepada para pengguna software
Keahlian
yang Diperlukan:
Berpengalaman
dan menguasai berbagai macam proses bisnis enterprise atau jenis bisnis terentu
Menguasai
teknologi IT secara luas
Menguasai
secara mendalam tentang solusi software yang direkomendasikan
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.
Selain
menguasai programming terutama web programming, seorang web designer juga harus
menguasai tools dalam image design dan animasi seperti produk-produk
Adobe/Macromedia, Corel dll. Dalam web development, user interface designer
bekerja bahu-membahu dengan web programmer/developer untuk menghasilkan
aplikasi web yang baik dalam hal tampilan dan fungsionalitas. Tampilan yang
baik, menarik dan user friendly akan membuat aplikasi web tersebut dinilai
lebih bermutu.
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 Microsoft.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:
Mendesain
user interface agar menarik dan serasi secara visual dan user friendly
Mendesain
image/gambar/animasi yang akan digunakan di tampilan user interface (UI)
software aplikasi
Keahlian
yang Diperlukan:
Memiliki
bakat/minat di seni rupa / desain visual
Memahami
dasar-dasar pemprograman baik web maupun secara umum
Menguasai
scripting untuk user interface seperti seperti HTML, DHTML, CSS, JavaScript,
action script, XAML dll.
Menguasai
tools manipulasi image dan animas
Jenis-jenis Profesi di Bidang IT
Profesi
adalah kata serapan dari sebuah kata dalam bahasa Inggris "Profess",
yang dalam bahasa Yunani adalah "Επαγγελια", yang bermakna:
"Janji untuk memenuhi kewajiban melakukan suatu tugas khusus secara
tetap/permanen".
Profesi
adalah pekerjaan yang membutuhkan pelatihan dan
penguasaan terhadap suatu pengetahuan khusus.
Suatu profesi biasanya memiliki asosiasi profesi, kode etik, serta proses sertifikasi dan lisensi yang
khusus untuk bidang profesi tersebut. Contoh profesi adalah pada bidang hukum, kedokteran, keuangan, militer,teknikdandesainer
Seseorang
yang memiliki suatu profesi tertentu, disebut profesional.
Walaupun begitu, istilah profesional juga digunakan untuk suatu aktivitas yang
menerima bayaran, sebagai lawan kata dari amatir. Contohnya adalah petinju profesional
menerima bayaran untuk pertandingan tinju yang dilakukannya, sementara olahraga tinju sendiri
umumnya tidak dianggap sebagai suatu profesi.
Profesi
adalah pekerjaan, namun tidak semua pekerjaan adalah profesi. Profesi mempunyai
karakteristik sendiri yang membedakannya dari pekerjaan lainnya. Daftar
karakterstik ini tidak memuat semua karakteristik yang pernah diterapkan pada
profesi, juga tidak semua ciri ini berlaku dalam setiap profesi:
Keterampilan
yang berdasar pada pengetahuan teoretis: Profesional diasumsikan mempunyai
pengetahuan teoretis yang ekstensif dan memiliki keterampilan yang berdasar
pada pengetahuan tersebut dan bisa diterapkan
dalam praktik.
Asosiasi
profesional: Profesi biasanya memiliki badan yang diorganisasi oleh para
anggotanya, yang dimaksudkan untuk meningkatkan status para anggotanya. Organisasi
profesi tersebut biasanya memiliki persyaratan khusus untuk
menjadi anggotanya.
Pendidikan
yang ekstensif: Profesi yang prestisius biasanya memerlukanpendidikan yang
lama dalam jenjang pendidikan tinggi.
Ujian
kompetensi: Sebelum memasuki organisasi profesional, biasanya ada persyaratan
untuk lulus dari suatu tes yang menguji terutama pengetahuan teoretis.
Pelatihan
institutional: Selain ujian, juga biasanya dipersyaratkan untuk mengikuti
pelatihan istitusional dimana calon profesional mendapatkan pengalaman praktis
sebelum menjadi anggota penuh organisasi. Peningkatan keterampilan melalui
pengembangan profesional juga dipersyaratkan.
Lisensi:
Profesi menetapkan syarat pendaftaran dan proses sertifikasi sehingga hanya
mereka yang memiliki lisensi bisa dianggap bisa dipercaya.
Otonomi
kerja: Profesional cenderung mengendalikan kerja dan pengetahuan teoretis
mereka agar terhindar adanya intervensi dari luar.
Kode
etik: Organisasi profesi biasanya memiliki kode etik bagi para anggotanya dan
prosedur pendisiplinan bagi mereka yang melanggar aturan.
Mengatur
diri: Organisasi profesi harus bisa mengatur organisasinya sendiri tanpa campur
tangan pemerintah. Profesional diatur oleh mereka yang lebih senior, praktisi
yang dihormati, atau mereka yang berkualifikasi paling tinggi.
Layanan
publik dan altruisme: Diperolehnya penghasilan dari kerja profesinya dapat
dipertahankan selama berkaitan dengan kebutuhan publik, seperti layanan dokter
berkontribusi terhadap kesehatan masyarakat.
Status
dan imbalan yang tinggi: Profesi yang paling sukses akan meraih status yang
tinggi, prestise, dan imbalan yang layak bagi para anggotanya. Hal tersebut
bisa dianggap sebagai pengakuan terhadap layanan yang mereka berikan bagi masyarakat.
Profesi
di bidang IT :
Kelompok
Pertama, adalah mereka yang bergelut di dunia perangkat lunak (software) baik
mereka yang merancang sistem operasi, database maupun sistem aplikasi. Pada
lingkungan kelompok ini terdapat pekerjaan-pekerjaan seperti misalnya :
System
analyst: orang yang bertugas menganalisa sistem yang akan diimplementasikan,
mulai dari menganalisa sistem yang ada, tentang kelebihan dan kekurangannya,
sampai studi kelayakan dan desain sistem yang akan dikembangkan.
Programmer:
orang yang bertugas mengimplementasikan rancangan sistem analis yaitu membuat
program (baik aplikasi maupun sistem operasi) sesuai sistem yang dianalisa
sebelumnya.
Web
designer: orang yang melakukan kegiatan perecanaan, termasuk studi kelayakan,
analisis dan desain terhadap suatu proyek pembuatan aplikasi berbasis web.
Web
programmer: orang yang bertugas mengimplementasikan rancangan web designer
yaitumembuat program berbasis web sesuai desain yang telah dirancang
sebelumnya.
b.
Kelompok kedua, adalah mereka yang bergelut di perangkat keras (hardware). Pada
lingkungan kelompok ini terdapat pekerjaanpekerjaan seperti :
Technical
engineer (atau teknisi): orang yang berkecimpung dalam bidang teknik baik
mengenai pemeliharaan maupun perbaikan perangkat sistem komputer.
Networking
engineer: orang yang berkecimpung dalam bidang teknis jaringan komputer dari maintenance
sampai pada troubleshooting-nya.
c.
Kelompok ketiga, adalah mereka yang berkecimpung dalam operasional sistem
informasi. Pada lingkungan kelompok ini terdapat pekerjaan-pekerjaan seperti:
EDP
operator : orang yang bertugas untuk mengoperasikan program-program yang
berhubungan dengan electronic data processing dalam lingkungan sebuah
perusahaan atau organisasi lainnya.
System
administrator: orang yang bertugas melakukan administrasi terhadap sistem,
melakukan pemeliharaan sistem, memiliki kewenangan mengatur hak akses terhadap
sistem, serta hal-hal lain yang berhubungan dengan pengaturan operasional
sebuah sistem.
MIS
director : orang yang memiliki wewenang paling tinggi terhadap sebuah sistem
informasi, melakukan manajemen terhadap sistem tersebut secara keseluruhan baik
hardware, software maupun sumber daya manusianya.
1. Programmer/Developer
Profesi
programmer/developer adalah profesi yang paling sering terdengar, karena
profesi ini sudah ada sejak diciptakannya komputer itu sendiri. 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
Dalam
pekerjaannya, 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
Bagi
yang sering mendengar 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. Hal ini
disebabkan karena aplikasi adalah jenis software yang paling banyak di gunakan.
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 dll. 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)
Walaupun
digolongkan dalam ke empat macam keahlian tersebut, seringkali 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
mengembangkan aplikasi web yang memerlukan database sebagai penyimpanan data.
Tidak sedikit pula programmer yang memiliki keahlian di seluruh jenis aplikasi
sehingga sering disebut disebut enterprise application developer.
Programmer/Developer:
Tugas:
Membangun/mengembangkan
software terutama pada tahap construction dengan melakukan coding dengan bahasa
pemprograman yang ditentukan
Mengimplementasikan
requiremant dan desain proses bisnis ke komputer dengan menggunakan algoritma
/logika dan bahasa pemprograman
Melakukan
testing terhadap software bila diperlukan
Keahlian
yang Diperlukan:
Menguasai
Algoritma dan logika pemprograman (ini penting sekali)
Memahami
metode, best practice dan tool/pemodelan pemprograman seperti OOP, design
pattern, UML (kemampuan membaca dan menerapkan)
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)
Memahami
RDBMS dan SQL (Structured Query Language)
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
Seiring
dengan berjalannya waktu dan perkembangan zaman, kebutuhan aplikasi komputer
semakin kompleks. Ada kalanya proses bisnis dan permasalahan dalam suatu
organisasi cukup kompleks untuk dijabarkan secara langsung ke sebuah software
aplikasi. Biasanya para manajer/direksi perusahaan memahami secara detail
mengenai proses bisnis di perusahaannya, misalnya dari sejak procurement,
purchasing, manufacturing, warehousing, marketing, accounting dll, tetapi
mereka biasanya kurang memahami mengenai bagaimana implementasinya secara
teknis dalam software aplikasi. Kemudian 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 dapat 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). Seorang system analyst
biasanya berangkat dari seorang programmer yang sudah mahir dan berpengalaman
dalam software development. Kemampuannya dalam menangkap requirement dan proses
bisnis, ketajaman analisis mengenai celah-celah dalam sistem serta kemampuan
merekomendasikan solusi terbaik secara technical sangat diperlukan dalam
mengembangkan software yang berkualitas dan dapat bermanfaat untuk meningkatkan
kinerja proses bisnis suatu organisasi.
System
analyst bekerja pada tahap requirement dan design, walaupun kadangkala 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:
Untuk
mengetahui lebih detail mengenai tahap pengembangan software (SDLC) akan saya
jelaskan di artikel lainnya.
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:
Membangun/mengembangkan
software terutama pada tahap requirement, design dan sebagian dalam tahap
construction/implementation
Membuat
dokumen requiremant dan desain software berdasarkan proses bisnis
customer/client
Membuat
proposal dan mempresentasikannya di hadapan stake holder / customer / client
Membuat
desain database bila aplikasi yang akan di bangun memerlukan database
Membangun/mengembangkan
framework/library untuk digunakan dalam pengembangan software oleh programmer
Keahlian
yang Diperlukan:
Menguasai
hal-hal yang dikuasai programmer
Menguasai
metode, best practice pemprograman dan tool/pemodelan pemprograman seperti OOP,
design pattern, UML (kemampuan membangun/mendesain)
Menguasai
SQL, ERD dan RDBMS secara lebih mendalam
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.
Hal ini mungkin karena di Indonesia belum banyak lowongan kerja yang
mencantumkan posisi ini. Bila anda pernah mendengar posisi “Software Tester”,
maka itu termasuk dalam profesi ini. 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 masi memiliki kelemahan.
Dalam
software development, terdapat beberapa resiko yang ditanggung oleh para stake
holders. Seperti terjadinya bug/defect, waktu pengembangan yang semakin panjang,
resource yang semakin bertambah ataupun kendala-kendala lain yang tidak
diperkirakan sebelumnya. Tugas SQA engineer yang persifat preventif adalah
dengan meminimalisir resiko-resiko ini.
Untuk
menilai kemapanan sebuah perusahaan, terutama yang bergerak dalam bidang
software development, terdapat beberapa standar seperti CMMI Capability
Maturity Model Integration. Singkatnya, makin tinggi level CMMI sebuah
perusahaan, resiko project yang ditanganinya akan semakin kecil. Dengan begitu
perusahaan dengan level CMMI yang tinggi dianggap sudah mapan dan dipercaya
untuk mengerjakan proyek-proyek besar. Salah satu tugas SQA engineer adalah
mengusahakan agar perusahaannya lulus sertifikasi CMMI di level tertentu.
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 / scenario
4.
Merumuskan dan merancang peningkatkan efisiensi dan efektifitas standar proses
yang digunakan
Keahlian
yang Diperlukan:
Menguasai
hal-hal yang berhubungan dengan software testing (test plan, test case, testing
automation, functionality testing, regression testing dll)
Memahami
tentang perinsip kerja software sesuai dengan platformnya masing-masing
Memahami
tentang SDLC dan metodologi software development seperti RUP, Agile, XP, Scrum
dll
Memahami
standarisasi seperti CMMI
Menguasai
penulisan dokumen dan komunikasi verbal dengan baik (dalam bahasa Inggris dan
Indonesia)
Latar
Belakang:
Ilmu
Komputer, Teknik Informatika, Manajemen Informatika
4.
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).
Kompleksitas
dalam software develompment dari tahun-ketahun semakin kompleks dan jauh lebih
kompleks dibandingkan pada saat awal komputer diciptakan. Untuk itulah para
ahli dalam bidang software engineering menyusun berbagai metodologi untuk
mengoptimalkan software development process agar dapat menghasilkan produk
software yang sesuai dengan tuntutan perkembangan zaman. Keahlian unik seorang
software engineer adalah kemampuannya untuk merekomendasikan dan menerapkan
metodologi software development terbaik dalam sebuah proyek. Metode-metode
software development populer seperti RUP, Agile, Scrum, XP, TDD, BDD memiliki
keunggulan dan kelemahan dan tentunya diperlukan keahlian dan pengalaman dalam
merekomendasikan dan mengimplementasikan metode yang paling cocok dalam sebuah
proyek software development.
Bila
programmer dan system analyst ada yang dipekerjakan di perusahaan-perusahaan
yang core business-nya bukan software, software engineer umumnya dipekerjakan
di perusahaan-perusahaan software development. Bila sebuah perusahaan
memerlukan karyawan dengan posisi software engineer, maka kemungkinan besar
perusahaan tersebut memerlukan karyawan yang dapat ditempatkan secara
fleksibel. Misalnya di sebuah proyek, karyawan A dapat diposisikan sebagai
programmer dalam tahap construction, sedangkan dalam proyek lainnya si A dapat
diposisikan sebagai system analyst dalam tahap requirement dan design. Dapat
pula si A diposisikan sebagai software tester, SQA engineer ataupun di posisi
mana saja dalam SDLC.
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:
Melakukan
tugas-tugas programmer, system analyst dan sebagian tugas SQA engineer
Merekomendasikan
dan menerapkan metodologi terbaik dalam sebuah proyek software development
Keahlian
yang Diperlukan:
Menguasai
hal-hal yang dikuasai programmer, system analyst dan SQA engineer (dalam porsi
yang lebih sedikit)
Menguasai
SDLC berdasarkan SWEBOK (requirement, design, implementation/construction,
testing, maintenance)
Menguasai
metodologi software development seperti RUP, Agile, XP, Scrum dll
Latar
Belakang:
Ilmu
Komputer, Teknik Informatika, Manajemen Informatika, Matematika pemusatan studi
Komputasi
5.
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.
Salah
satu tugas sehari-hari seorang DBA adalah memaintain database baik produksi,
backup maupun development dalam perusahaan yang membutuhkan aplikasi database
berskala besar untuk operasionalnya sehari-hari. Karena itu selain hal-hal yang
berhubungan dengan software, seorang DBA juga perlu memahami beberapa hal
tentang hardware seperti teknologi server, storage devices dll agar dapat
merekomendasikan database yang optimal. Pengetahuan tentang server clustering,
storage array network (SAN), RAID, backup devices dan optimalisasinya merupakan
keahlian unik seorang DBA.
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.
Dahulu
untuk mencari orang yang memiliki keahlian dalam bidang jaringan, server dan
database, Hasilnya orang seperti itu tidak pernah ditemukan, karena itu sama
saja menggabungkan kemampuan System Administrator dengan Database
Administrator. Seorang System Administrator berlatar belakang computer system
& networking Seorang DBA sebenarnya berlatar belakang software development.
Dua hal tersebut bagaikan jalan bercabang yang harus dipilih oleh seorang
profesional IT di awal karirnya.
Database
Administrator:
Tugas:
Merancang
dan membangun database dalam sebuah system
Merekomendasikan
solusi terbaik dalam implementasi database baik dalam hal software maupun
hardware
Memaintain
database agar dapat berjalan dengan baik dan optimal
Keahlian
yang Diperlukan:
Menguasai
ERD, SQL dan desain database secara mendalam
Menguasai
berbagai teknik optimalisasi/tuning, backup dan maintain database
Menguasai
secara mendalam salah satu atau lebih RDBMS beserta tools yang ada.
Memahami
tentang salah satu platform/bahasa pemprograman untuk mengakses database
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.
Bila
system analyst harus memiliki pengetahuan yang berimbang antara proses bisnis
(problem domain) dan software technology (solution domain), 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:
Merekomendasikan
teknologi yang paling cocok untuk mengembangkan produk software
Membuat
standar-standar software development yang akan digunakan oleh tim programmer /
developer
Membuat
rancangan/desain software dan proses pengembangannya secara keseluruhan
Keahlian
yang Diperlukan:
Menguasai
hal-hal yang dikuasai programmer, system analyst dan software engineer
Menguasai
secara mendalam tentang software development technology
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 dll
Software
Implementer / Support
Tugas:
Melakukan
instalasi/implementasi serta setting produk software di sisi client/customer
Memelihara
dan memastikan software yang sudah diimplementasikan berjalan dengan baik
Melakuakan
troubleshooting terhadap produk software
Memberikan
pelatihan (training) kepada para pengguna software
Keahlian
yang Diperlukan:
Menguasai
secara mendalam produk software yang akan diimplementasikan
Menguasai
teknologi platform / sistem poperasi/ middleware (bila ada) yang dibutuhkan
oleh produk software yang disupport
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 /
direkomndasikannya. Pada tulisan mengenai “Profesi di dunia IT Bagian 1″, IT
specialist mirip dengan technical consultant dalam hal rekomendasi dan
implementasi IT. Perbedaannya adalah, technical consultant lebih menguasai
proses bisnis dan software sedangkan IT specialist lebih meguasai hardware dan
jaringan serta software secara garis besar.
Bila
bekerja pada perusahaan yang menjual produk software, technical consultant
biasanya lebih banyak bekerja pada tahap pre-sales. Pada tahap implementasi,
technical consultant bekerja sama dengan software implementer. Setelah software
terimplementasi (after sales), software implementer / support akan lebih banyak
berperan dalam operasionalnya. Technical consultant akan diperlukan lagi bila
ada perubahan proses bisnis, modifikasi atau penambahan modul yang cukup
kompleks dalam software tersebut
Technical
Consultant:
Tugas:
Memberikan
konsultansi/rekomendasi mengenai solusi IT terbaik untuk memecahkan masalah
Membuat
dokumen seperti proposal, requirement dan desain software secara umum
Melakukan
pelatihan (training) kepada para pengguna software
Keahlian
yang Diperlukan:
Berpengalaman
dan menguasai berbagai macam proses bisnis enterprise atau jenis bisnis terentu
Menguasai
teknologi IT secara luas
Menguasai
secara mendalam tentang solusi software yang direkomendasikan
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.
Selain
menguasai programming terutama web programming, seorang web designer juga harus
menguasai tools dalam image design dan animasi seperti produk-produk
Adobe/Macromedia, Corel dll. Dalam web development, user interface designer
bekerja bahu-membahu dengan web programmer/developer untuk menghasilkan
aplikasi web yang baik dalam hal tampilan dan fungsionalitas. Tampilan yang
baik, menarik dan user friendly akan membuat aplikasi web tersebut dinilai
lebih bermutu.
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 Microsoft.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:
Mendesain
user interface agar menarik dan serasi secara visual dan user friendly
Mendesain
image/gambar/animasi yang akan digunakan di tampilan user interface (UI)
software aplikasi
Keahlian
yang Diperlukan:
Memiliki
bakat/minat di seni rupa / desain visual
Memahami
dasar-dasar pemprograman baik web maupun secara umum
Menguasai
scripting untuk user interface seperti seperti HTML, DHTML, CSS, JavaScript,
action script, XAML dll.
Menguasai
tools manipulasi image dan animas
Jenis-jenis Profesi di Bidang IT
Profesi
adalah kata serapan dari sebuah kata dalam bahasa Inggris "Profess",
yang dalam bahasa Yunani adalah "Επαγγελια", yang bermakna:
"Janji untuk memenuhi kewajiban melakukan suatu tugas khusus secara
tetap/permanen".
Profesi
adalah pekerjaan yang membutuhkan pelatihan dan
penguasaan terhadap suatu pengetahuan khusus.
Suatu profesi biasanya memiliki asosiasi profesi, kode etik, serta proses sertifikasi dan lisensi yang
khusus untuk bidang profesi tersebut. Contoh profesi adalah pada bidang hukum, kedokteran, keuangan, militer,teknikdandesainer
Seseorang
yang memiliki suatu profesi tertentu, disebut profesional.
Walaupun begitu, istilah profesional juga digunakan untuk suatu aktivitas yang
menerima bayaran, sebagai lawan kata dari amatir. Contohnya adalah petinju profesional
menerima bayaran untuk pertandingan tinju yang dilakukannya, sementara olahraga tinju sendiri
umumnya tidak dianggap sebagai suatu profesi.
Profesi
adalah pekerjaan, namun tidak semua pekerjaan adalah profesi. Profesi mempunyai
karakteristik sendiri yang membedakannya dari pekerjaan lainnya. Daftar
karakterstik ini tidak memuat semua karakteristik yang pernah diterapkan pada
profesi, juga tidak semua ciri ini berlaku dalam setiap profesi:
Keterampilan
yang berdasar pada pengetahuan teoretis: Profesional diasumsikan mempunyai
pengetahuan teoretis yang ekstensif dan memiliki keterampilan yang berdasar
pada pengetahuan tersebut dan bisa diterapkan
dalam praktik.
Asosiasi
profesional: Profesi biasanya memiliki badan yang diorganisasi oleh para
anggotanya, yang dimaksudkan untuk meningkatkan status para anggotanya. Organisasi
profesi tersebut biasanya memiliki persyaratan khusus untuk
menjadi anggotanya.
Pendidikan
yang ekstensif: Profesi yang prestisius biasanya memerlukanpendidikan yang
lama dalam jenjang pendidikan tinggi.
Ujian
kompetensi: Sebelum memasuki organisasi profesional, biasanya ada persyaratan
untuk lulus dari suatu tes yang menguji terutama pengetahuan teoretis.
Pelatihan
institutional: Selain ujian, juga biasanya dipersyaratkan untuk mengikuti
pelatihan istitusional dimana calon profesional mendapatkan pengalaman praktis
sebelum menjadi anggota penuh organisasi. Peningkatan keterampilan melalui
pengembangan profesional juga dipersyaratkan.
Lisensi:
Profesi menetapkan syarat pendaftaran dan proses sertifikasi sehingga hanya
mereka yang memiliki lisensi bisa dianggap bisa dipercaya.
Otonomi
kerja: Profesional cenderung mengendalikan kerja dan pengetahuan teoretis
mereka agar terhindar adanya intervensi dari luar.
Kode
etik: Organisasi profesi biasanya memiliki kode etik bagi para anggotanya dan
prosedur pendisiplinan bagi mereka yang melanggar aturan.
Mengatur
diri: Organisasi profesi harus bisa mengatur organisasinya sendiri tanpa campur
tangan pemerintah. Profesional diatur oleh mereka yang lebih senior, praktisi
yang dihormati, atau mereka yang berkualifikasi paling tinggi.
Layanan
publik dan altruisme: Diperolehnya penghasilan dari kerja profesinya dapat
dipertahankan selama berkaitan dengan kebutuhan publik, seperti layanan dokter
berkontribusi terhadap kesehatan masyarakat.
Status
dan imbalan yang tinggi: Profesi yang paling sukses akan meraih status yang
tinggi, prestise, dan imbalan yang layak bagi para anggotanya. Hal tersebut
bisa dianggap sebagai pengakuan terhadap layanan yang mereka berikan bagi masyarakat.
Profesi
di bidang IT :
Kelompok
Pertama, adalah mereka yang bergelut di dunia perangkat lunak (software) baik
mereka yang merancang sistem operasi, database maupun sistem aplikasi. Pada
lingkungan kelompok ini terdapat pekerjaan-pekerjaan seperti misalnya :
System
analyst: orang yang bertugas menganalisa sistem yang akan diimplementasikan,
mulai dari menganalisa sistem yang ada, tentang kelebihan dan kekurangannya,
sampai studi kelayakan dan desain sistem yang akan dikembangkan.
Programmer:
orang yang bertugas mengimplementasikan rancangan sistem analis yaitu membuat
program (baik aplikasi maupun sistem operasi) sesuai sistem yang dianalisa
sebelumnya.
Web
designer: orang yang melakukan kegiatan perecanaan, termasuk studi kelayakan,
analisis dan desain terhadap suatu proyek pembuatan aplikasi berbasis web.
Web
programmer: orang yang bertugas mengimplementasikan rancangan web designer
yaitumembuat program berbasis web sesuai desain yang telah dirancang
sebelumnya.
b.
Kelompok kedua, adalah mereka yang bergelut di perangkat keras (hardware). Pada
lingkungan kelompok ini terdapat pekerjaanpekerjaan seperti :
Technical
engineer (atau teknisi): orang yang berkecimpung dalam bidang teknik baik
mengenai pemeliharaan maupun perbaikan perangkat sistem komputer.
Networking
engineer: orang yang berkecimpung dalam bidang teknis jaringan komputer dari maintenance
sampai pada troubleshooting-nya.
c.
Kelompok ketiga, adalah mereka yang berkecimpung dalam operasional sistem
informasi. Pada lingkungan kelompok ini terdapat pekerjaan-pekerjaan seperti:
EDP
operator : orang yang bertugas untuk mengoperasikan program-program yang
berhubungan dengan electronic data processing dalam lingkungan sebuah
perusahaan atau organisasi lainnya.
System
administrator: orang yang bertugas melakukan administrasi terhadap sistem,
melakukan pemeliharaan sistem, memiliki kewenangan mengatur hak akses terhadap
sistem, serta hal-hal lain yang berhubungan dengan pengaturan operasional
sebuah sistem.
MIS
director : orang yang memiliki wewenang paling tinggi terhadap sebuah sistem
informasi, melakukan manajemen terhadap sistem tersebut secara keseluruhan baik
hardware, software maupun sumber daya manusianya.
1. Programmer/Developer
Profesi
programmer/developer adalah profesi yang paling sering terdengar, karena
profesi ini sudah ada sejak diciptakannya komputer itu sendiri. 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
Dalam
pekerjaannya, 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
Bagi
yang sering mendengar 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. Hal ini
disebabkan karena aplikasi adalah jenis software yang paling banyak di gunakan.
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 dll. 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)
Walaupun
digolongkan dalam ke empat macam keahlian tersebut, seringkali 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
mengembangkan aplikasi web yang memerlukan database sebagai penyimpanan data.
Tidak sedikit pula programmer yang memiliki keahlian di seluruh jenis aplikasi
sehingga sering disebut disebut enterprise application developer.
Programmer/Developer:
Tugas:
Membangun/mengembangkan
software terutama pada tahap construction dengan melakukan coding dengan bahasa
pemprograman yang ditentukan
Mengimplementasikan
requiremant dan desain proses bisnis ke komputer dengan menggunakan algoritma
/logika dan bahasa pemprograman
Melakukan
testing terhadap software bila diperlukan
Keahlian
yang Diperlukan:
Menguasai
Algoritma dan logika pemprograman (ini penting sekali)
Memahami
metode, best practice dan tool/pemodelan pemprograman seperti OOP, design
pattern, UML (kemampuan membaca dan menerapkan)
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)
Memahami
RDBMS dan SQL (Structured Query Language)
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
Seiring
dengan berjalannya waktu dan perkembangan zaman, kebutuhan aplikasi komputer
semakin kompleks. Ada kalanya proses bisnis dan permasalahan dalam suatu
organisasi cukup kompleks untuk dijabarkan secara langsung ke sebuah software
aplikasi. Biasanya para manajer/direksi perusahaan memahami secara detail
mengenai proses bisnis di perusahaannya, misalnya dari sejak procurement,
purchasing, manufacturing, warehousing, marketing, accounting dll, tetapi
mereka biasanya kurang memahami mengenai bagaimana implementasinya secara
teknis dalam software aplikasi. Kemudian 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 dapat 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). Seorang system analyst
biasanya berangkat dari seorang programmer yang sudah mahir dan berpengalaman
dalam software development. Kemampuannya dalam menangkap requirement dan proses
bisnis, ketajaman analisis mengenai celah-celah dalam sistem serta kemampuan
merekomendasikan solusi terbaik secara technical sangat diperlukan dalam
mengembangkan software yang berkualitas dan dapat bermanfaat untuk meningkatkan
kinerja proses bisnis suatu organisasi.
System
analyst bekerja pada tahap requirement dan design, walaupun kadangkala 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:
Untuk
mengetahui lebih detail mengenai tahap pengembangan software (SDLC) akan saya
jelaskan di artikel lainnya.
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:
Membangun/mengembangkan
software terutama pada tahap requirement, design dan sebagian dalam tahap
construction/implementation
Membuat
dokumen requiremant dan desain software berdasarkan proses bisnis
customer/client
Membuat
proposal dan mempresentasikannya di hadapan stake holder / customer / client
Membuat
desain database bila aplikasi yang akan di bangun memerlukan database
Membangun/mengembangkan
framework/library untuk digunakan dalam pengembangan software oleh programmer
Keahlian
yang Diperlukan:
Menguasai
hal-hal yang dikuasai programmer
Menguasai
metode, best practice pemprograman dan tool/pemodelan pemprograman seperti OOP,
design pattern, UML (kemampuan membangun/mendesain)
Menguasai
SQL, ERD dan RDBMS secara lebih mendalam
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.
Hal ini mungkin karena di Indonesia belum banyak lowongan kerja yang
mencantumkan posisi ini. Bila anda pernah mendengar posisi “Software Tester”,
maka itu termasuk dalam profesi ini. 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 masi memiliki kelemahan.
Dalam
software development, terdapat beberapa resiko yang ditanggung oleh para stake
holders. Seperti terjadinya bug/defect, waktu pengembangan yang semakin panjang,
resource yang semakin bertambah ataupun kendala-kendala lain yang tidak
diperkirakan sebelumnya. Tugas SQA engineer yang persifat preventif adalah
dengan meminimalisir resiko-resiko ini.
Untuk
menilai kemapanan sebuah perusahaan, terutama yang bergerak dalam bidang
software development, terdapat beberapa standar seperti CMMI Capability
Maturity Model Integration. Singkatnya, makin tinggi level CMMI sebuah
perusahaan, resiko project yang ditanganinya akan semakin kecil. Dengan begitu
perusahaan dengan level CMMI yang tinggi dianggap sudah mapan dan dipercaya
untuk mengerjakan proyek-proyek besar. Salah satu tugas SQA engineer adalah
mengusahakan agar perusahaannya lulus sertifikasi CMMI di level tertentu.
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 / scenario
4.
Merumuskan dan merancang peningkatkan efisiensi dan efektifitas standar proses
yang digunakan
Keahlian
yang Diperlukan:
Menguasai
hal-hal yang berhubungan dengan software testing (test plan, test case, testing
automation, functionality testing, regression testing dll)
Memahami
tentang perinsip kerja software sesuai dengan platformnya masing-masing
Memahami
tentang SDLC dan metodologi software development seperti RUP, Agile, XP, Scrum
dll
Memahami
standarisasi seperti CMMI
Menguasai
penulisan dokumen dan komunikasi verbal dengan baik (dalam bahasa Inggris dan
Indonesia)
Latar
Belakang:
Ilmu
Komputer, Teknik Informatika, Manajemen Informatika
4.
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).
Kompleksitas
dalam software develompment dari tahun-ketahun semakin kompleks dan jauh lebih
kompleks dibandingkan pada saat awal komputer diciptakan. Untuk itulah para
ahli dalam bidang software engineering menyusun berbagai metodologi untuk
mengoptimalkan software development process agar dapat menghasilkan produk
software yang sesuai dengan tuntutan perkembangan zaman. Keahlian unik seorang
software engineer adalah kemampuannya untuk merekomendasikan dan menerapkan
metodologi software development terbaik dalam sebuah proyek. Metode-metode
software development populer seperti RUP, Agile, Scrum, XP, TDD, BDD memiliki
keunggulan dan kelemahan dan tentunya diperlukan keahlian dan pengalaman dalam
merekomendasikan dan mengimplementasikan metode yang paling cocok dalam sebuah
proyek software development.
Bila
programmer dan system analyst ada yang dipekerjakan di perusahaan-perusahaan
yang core business-nya bukan software, software engineer umumnya dipekerjakan
di perusahaan-perusahaan software development. Bila sebuah perusahaan
memerlukan karyawan dengan posisi software engineer, maka kemungkinan besar
perusahaan tersebut memerlukan karyawan yang dapat ditempatkan secara
fleksibel. Misalnya di sebuah proyek, karyawan A dapat diposisikan sebagai
programmer dalam tahap construction, sedangkan dalam proyek lainnya si A dapat
diposisikan sebagai system analyst dalam tahap requirement dan design. Dapat
pula si A diposisikan sebagai software tester, SQA engineer ataupun di posisi
mana saja dalam SDLC.
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:
Melakukan
tugas-tugas programmer, system analyst dan sebagian tugas SQA engineer
Merekomendasikan
dan menerapkan metodologi terbaik dalam sebuah proyek software development
Keahlian
yang Diperlukan:
Menguasai
hal-hal yang dikuasai programmer, system analyst dan SQA engineer (dalam porsi
yang lebih sedikit)
Menguasai
SDLC berdasarkan SWEBOK (requirement, design, implementation/construction,
testing, maintenance)
Menguasai
metodologi software development seperti RUP, Agile, XP, Scrum dll
Latar
Belakang:
Ilmu
Komputer, Teknik Informatika, Manajemen Informatika, Matematika pemusatan studi
Komputasi
5.
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.
Salah
satu tugas sehari-hari seorang DBA adalah memaintain database baik produksi,
backup maupun development dalam perusahaan yang membutuhkan aplikasi database
berskala besar untuk operasionalnya sehari-hari. Karena itu selain hal-hal yang
berhubungan dengan software, seorang DBA juga perlu memahami beberapa hal
tentang hardware seperti teknologi server, storage devices dll agar dapat
merekomendasikan database yang optimal. Pengetahuan tentang server clustering,
storage array network (SAN), RAID, backup devices dan optimalisasinya merupakan
keahlian unik seorang DBA.
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.
Dahulu
untuk mencari orang yang memiliki keahlian dalam bidang jaringan, server dan
database, Hasilnya orang seperti itu tidak pernah ditemukan, karena itu sama
saja menggabungkan kemampuan System Administrator dengan Database
Administrator. Seorang System Administrator berlatar belakang computer system
& networking Seorang DBA sebenarnya berlatar belakang software development.
Dua hal tersebut bagaikan jalan bercabang yang harus dipilih oleh seorang
profesional IT di awal karirnya.
Database
Administrator:
Tugas:
Merancang
dan membangun database dalam sebuah system
Merekomendasikan
solusi terbaik dalam implementasi database baik dalam hal software maupun
hardware
Memaintain
database agar dapat berjalan dengan baik dan optimal
Keahlian
yang Diperlukan:
Menguasai
ERD, SQL dan desain database secara mendalam
Menguasai
berbagai teknik optimalisasi/tuning, backup dan maintain database
Menguasai
secara mendalam salah satu atau lebih RDBMS beserta tools yang ada.
Memahami
tentang salah satu platform/bahasa pemprograman untuk mengakses database
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.
Bila
system analyst harus memiliki pengetahuan yang berimbang antara proses bisnis
(problem domain) dan software technology (solution domain), 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:
Merekomendasikan
teknologi yang paling cocok untuk mengembangkan produk software
Membuat
standar-standar software development yang akan digunakan oleh tim programmer /
developer
Membuat
rancangan/desain software dan proses pengembangannya secara keseluruhan
Keahlian
yang Diperlukan:
Menguasai
hal-hal yang dikuasai programmer, system analyst dan software engineer
Menguasai
secara mendalam tentang software development technology
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 dll
Software
Implementer / Support
Tugas:
Melakukan
instalasi/implementasi serta setting produk software di sisi client/customer
Memelihara
dan memastikan software yang sudah diimplementasikan berjalan dengan baik
Melakuakan
troubleshooting terhadap produk software
Memberikan
pelatihan (training) kepada para pengguna software
Keahlian
yang Diperlukan:
Menguasai
secara mendalam produk software yang akan diimplementasikan
Menguasai
teknologi platform / sistem poperasi/ middleware (bila ada) yang dibutuhkan
oleh produk software yang disupport
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 /
direkomndasikannya. Pada tulisan mengenai “Profesi di dunia IT Bagian 1″, IT
specialist mirip dengan technical consultant dalam hal rekomendasi dan
implementasi IT. Perbedaannya adalah, technical consultant lebih menguasai
proses bisnis dan software sedangkan IT specialist lebih meguasai hardware dan
jaringan serta software secara garis besar.
Bila
bekerja pada perusahaan yang menjual produk software, technical consultant
biasanya lebih banyak bekerja pada tahap pre-sales. Pada tahap implementasi,
technical consultant bekerja sama dengan software implementer. Setelah software
terimplementasi (after sales), software implementer / support akan lebih banyak
berperan dalam operasionalnya. Technical consultant akan diperlukan lagi bila
ada perubahan proses bisnis, modifikasi atau penambahan modul yang cukup
kompleks dalam software tersebut
Technical
Consultant:
Tugas:
Memberikan
konsultansi/rekomendasi mengenai solusi IT terbaik untuk memecahkan masalah
Membuat
dokumen seperti proposal, requirement dan desain software secara umum
Melakukan
pelatihan (training) kepada para pengguna software
Keahlian
yang Diperlukan:
Berpengalaman
dan menguasai berbagai macam proses bisnis enterprise atau jenis bisnis terentu
Menguasai
teknologi IT secara luas
Menguasai
secara mendalam tentang solusi software yang direkomendasikan
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.
Selain
menguasai programming terutama web programming, seorang web designer juga harus
menguasai tools dalam image design dan animasi seperti produk-produk
Adobe/Macromedia, Corel dll. Dalam web development, user interface designer
bekerja bahu-membahu dengan web programmer/developer untuk menghasilkan
aplikasi web yang baik dalam hal tampilan dan fungsionalitas. Tampilan yang
baik, menarik dan user friendly akan membuat aplikasi web tersebut dinilai
lebih bermutu.
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 Microsoft.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:
Mendesain
user interface agar menarik dan serasi secara visual dan user friendly
Mendesain
image/gambar/animasi yang akan digunakan di tampilan user interface (UI)
software aplikasi
Keahlian
yang Diperlukan:
Memiliki
bakat/minat di seni rupa / desain visual
Memahami
dasar-dasar pemprograman baik web maupun secara umum
Menguasai
scripting untuk user interface seperti seperti HTML, DHTML, CSS, JavaScript,
action script, XAML dll.
Menguasai
tools manipulasi image dan animas
0 komentar:
Posting Komentar