Etika dan
Profesionalisme TSI
Nama :
Eti Trisetiowati
Npm : 12111510
Npm : 12111510
Kelas : 4 KA40
Dosen : Rifki Amalia
Dosen : Rifki Amalia
1. Buatlah
bagan formal dari profesi teknologi informasi beserta penjelasannya !
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.
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
Kualifikasi :
-
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)
2.
System Analyst
adalah orang yang memiliki
keahlian untuk menganalisa system yang akan diimplementasikan, mulai dari
menganalisa system yang ada, kelebihan dan kekurangannya, sampai studi
kelayakan dan desain system yang akan dikembangkan. 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.
Tugas :
-
Mengembangkan
perangkat lunak/software dalam tahapan requirement, design dan construction
-
Membuat
dokumen requirement dan desain software berdasarkan jenis bisnis customer
-
Membangun
framework untuk digunakan dalam pengembangan software oleh programmer
Kualifikasi :
-
Menguasai
keahlian sebagai programmer
-
Menguasai
metode dan best practice pemrograman
-
Memahami
arsitektur aplikasi dan teknologi terkini
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.
Tugas:
-
Memonitor jalannya proyek software development
apakah sudah sesuai dengan standar dan prosedur yang ada
-
Merancang dan membuat test case / skenario
software testing
-
Melakukan testing sesuai dengan test case /
scenario
-
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)
4. Database
Administrator (DBA)
Profesi Database Administrator (DBA)
terkait erat dengan programmer dan system analyst. Seorang DBA biasanya pernah
menjadi seorang programmer tetapi pekerjaannya lebih sering berkaitan dengan
database. Perbedaannya dengan database application programmer adalah seorang
DBA memiliki keahlian lebih mendalam dalam hal desain, optimasi dan manajemen
RDBMS (Relational Database Managemant System) tertentu seperti Oracle, SQL
Server, MySQL dll. Tentunya penguasaan terhadap SQL (Structured Query Language)
mutlak diperlukan. DBA harus memiliki keahlian menterjemahkan requirement proses
bisnis ke obyek-obyek dalam database seperti tabel, query\view dan stored
procedure disamping keahliannya dalam optimasi database seperti tuning,
indexing, clustering, backup data, maintain high availability dan sebagainya.
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
5. 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
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
6. 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.
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 animasi
7. 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.
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)
8. 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.
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)
9. 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).
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