Sabtu, 01 Juni 2013

Diposting oleh Rizky amelia di 20.00

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 profesikode etik, serta proses sertifikasi dan lisensi yang khusus untuk bidang profesi tersebut. Contoh profesi adalah pada bidang hukumkedokterankeuanganmiliter,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 profesikode etik, serta proses sertifikasi dan lisensi yang khusus untuk bidang profesi tersebut. Contoh profesi adalah pada bidang hukumkedokterankeuanganmiliter,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 profesikode etik, serta proses sertifikasi dan lisensi yang khusus untuk bidang profesi tersebut. Contoh profesi adalah pada bidang hukumkedokterankeuanganmiliter,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

TIME

 

my life is my message Copyright © 2010 Design by Ipietoon Blogger Template Graphic from Enakei | web hosting