Kumpulan Artikel Struktur IT
Kumpulan Artikel Struktur IT
Contents
Struktur Organisasi IT dan Peran Divisi IT.......................................................................2
Struktur Organisasi Proyek Software Developer CV Soft-Hegar DevelopWare.Corp.....13
Source:
John Baschap, 2008. Executives IT. John Willey and Son.
Anonymous. Microsoft Incident Management. Microsoft Solution Framework.
Sebuah sumber utama dari ketidak efisienan dari departemen IT adalah organisasi
yang buruk dari staf dan kurangnya kejelasan peran dan tanggung jawab. Biaya dari
departemen IT yang tidak efektif umumnya besar. Organisasi IT yang buruk juga
menyebabkan deadline proyek yang tidak terpenuhi, jatuhnya service dari server
secara tidak terencana, garis service IT yang tidak jelas, dan proyek yang tidak
menguntungkan.
Umumnya seluruh kegiatan IT dapat dibagi menjadi dua bagian dasar yaitu operation
and infrastructure dan Aplication Development. Bagian operasi berurusan dengan
penanganan sehari-hari dari lingkugan komputer dan keamanan. Bagian Aplikasi
bertanggung jawab dengan pembuatan dan pengembangan aplikasi bisnis. Untuk
perusahaan besar, ada beberapa group khusus yang dibentuk agar lebih
terspesialisasi. Berikut adalah diagram peran karyawan pada divisi IT (Note: diagam
dibawah dapat menjadi bentuk dari struktur organisasi tetapi tidak selalu):
Untuk perusahaan yang kecil, satu karyawan dapat mengambil lebih dari satu peran
misalkan sebagai Business Analyst sekaligus Application Developer. Tapi perusahaan
harus tetap berpegang pada satu syarat : tidak diperkenankan karyawan memegang
dua jenis peran sebagai pembuat sekaligus pengawas dalam sebuah proyek. Misalkan
seorang programmer yang juga mengambil peran sebagai testing. Ada kemungkinan
hasil testingnya diragukan karena programmer tersebut menilai hasil karyanya sendiri.
Berikut ini adalah penjelasan dari peran-peran yang umum ditemukan pada divisi IT:
1. Help Desk
Help Desk adalah titik utama dimana client dari IT akan pertama kali
menghubungi divisi IT saat mempunyai pertanyaan atau masalah yang
berhubungan dengan IT. Help Desk membawa harga diri dan wibawa divisi IT
saat berhubungan dengan client sehingga Help Desk sangat
mempengaruhi customer experience.
Help Desk menyimpan database dari masalah dan solusi yang muncul dari
operasional IT sehari-hari. Help Desk memfasilitasi komunikasi antara user
dan bagian IT lainnya, merespon crisis, dan membuat prioritas pengerjaan
masalah.
Karena merupakan titik pertama hubungan ke client, staf help desk harus
mempunyai pengetahuan yang luas (meskipun tidak mendalam). Hal ini
diperlukan agar sebuah masalah dapat segera dikategorikan dan diberikan
pada tim solusi yang benar.
End User Support bertanggung jawab untuk perbaikan fisik komputer dan
kunjungan ke lapangan kerja. Grup ini adalah lapisan kedua dari manajemen
masalah dan solusi. Umumnya bila ukuran group cukup besar, manajer akan
membagi menjadi beberapa tim kecil berdasarkan lokasi, teknologi, aplikasi,
atau kelompok bisnis. Setiap kelompok kecil mempunyai seorang kepala.
Seperti Help Desk, End User Support harus juga mempunyai kemampuan
yang luas pada sistem IT pada perusahaan. Perbedaannya, End User Support
mempunyai pengetahuan yang lebih mendalam pada sistem standar
perusahaan. Keahlian lebih diarahkan pada hardware dan software yang ada
pada sistem komputer end user bukan pada aplikasi server.
Dalam sebuah organisasi IT yang lemah, adalah umum bila kita mendapati
end user / client melompati help desk dan langsung menghubungi profesional
atas. Bila terus berlangsung, sikap ini akan menimbulkan frustasi pada
profesional lapisan atas karena pekerjaan mereka yang terganggu. Ujung-
ujungnya prosesional atas akan keluar dari perusahaan saat moral kerja
mereka menjadi terlalu rendah. Sifat dari end user / client ini juga
menunjukkan frustasi mereka pada IT karena merasa help desk kurang dapat
membantu menangani masalah mereka.
Saat mengerjakan sebuah proyek, penanggung jawab proyek harus jelas dan
memiliki cukup kekuasaan untuk menjalankan proyek dengan lancar. IT
Development group harus menjadwalkan dan dengan jelas
mengkomunikasikan pada IT Department, Streering Committee, dan business
users untuk progress dari proyek, fungsionalitas sistem, dan waktu
implementasi proyek. Aplikasi yang akan diimplementasikan harus
memperhatikan waktu dari bisnis. Saat kebutuhan bisnis sedang tinggi,
sebaiknya tidak ada implementasi sistem yang beresiko.
Untuk software-software besar seperti Enterprise Resource Planning,
terkadang perusahaan harus mengalah pada proses bisnis yang telah
didefinisikan pada software untuk menghindari biaya customization yang
tinggi. Perubahan proses bisnis ini belum tentu suatu yang buruk bila proses
bisnis yang terdefine pada software jauh lebih cocok bagi perusahaan.
Umumnya pembuatan aplikasi bisnis disertai dengan Business Process
Reengineering.
Application Support Group
Pada perusahaan besar, tim developer sering dibagi menjadi dua. Disatu sisi
menangani pembuatan aplikasi, disisi lain menjadi support seperti help desk
untuk aplikasi yang telah dibuat. Grup ini menjadi lapis ketiga dalam support
aplikasi.
Hanya sedikit organisasi yang memahami fungsi group testing ini dan lebih
sedikit lagi yang memberikan perhatian yang cukup.
Idealnya waktu untuk testing aplikasi adalah 30% dari total proyek. Meskipun
terlihat besar, tetapi akan terbayar dengan stabilnya aplikasi saat telah
menyentuh production sekaligus menghemat panggilan ke help desk.
Tim yang melakukan testing haruslah terdiri dari business users.
Peran business users adalah menjamin fungsi-fungsi yang akan sering
terpakai bebas dari masalah. Keuntungan lainnya,business users menjadi
cukup terbiasa menggunakan sistem itu sebelum di implementasikan.
Aspek lain dari uji coba aplikasi adalah stress testing. Stess Testing adalah
tipe uji coba untuk mengetahui kemampuan sistem dalam menangani
request. Hasil dari uji coba ini sangat membantu dalam memonitor performa
server dan meningkatkan kapasitas bila server mulai terbebani request
mendekati batas toleransi.
Pada perusahaan kecil umumnya tim testing menjadi bagian dari
developer, database administrator, atausystem administrator. Pada
perusahaan besar, tim testing umumnya berdiri sendiri.
9. Database Administrator
Database administrator mendesain arsitektur database, melakukan install dan
konfigurasi database software, berpartisipasi pada desain dan pengembangan
dengan developer, menjamin integritas data, dan mengawasi serta
meningkatkan performa database.
Tim ini bertanggung jawab pada database baik pada
lingkunganproduction maupun lingkungan pengembangan.
Transmisi data dapat dimulai dari sebuah kejadian atau berdasarkan jadwal.
Seorang EDI harus menterjemahkan hasil dari salah satu aplikasi menjadi
format yang dapat dibaca oleh aplikasi lainnya. Selain itu seorang EDI harus
menjamin tidak ada dua buah transmisi data besar terjadi pada saat
bersamaan untuk menghindari beban jaringan yang terlalu besar.
Bagian paling rumit dari analis bisnis adalah kebutuhan untuk memahami
proses bisnis dan teknologi secara bersamaan. Mereka harus menjamin
strategi pada IT telah sesuai strategi bisnis dan juga menawarkan peluang
yang ada pada IT ke bisnis.
Analis bisnis harus membuat sebuah dokumen high level tentang kebutuhan
dari sistem yang akan dibuat. Dokumen ini akan diterjemahkan
oleh application developer menjadi kode-kode aplikasi. Karena ini, analis
bisnis harus bekerja sama erat dengan application developer.
12.Manager of Application Management
Manager dari Application Mangement Group bertanggung jawab pada
performa dari seluruh tim dalam grupnya. Application Manager harus
mempunyai sebuah pemahaman yang lengkap pada sistem bisnis yang
digunakan. Fungsi yang terpenting adalah organisasi dan manajemen tim.
Membuat prioritas, mengatur tim, dan menyelesaikan proyek adalah
tanggung jawab dari application manager.
Selain kelompok kerja diatas, beberapa kelompok kerja dibawah ini dapat muncul
pada perusahaan yang besar:
1. Project Sponsor
Project Sponsor adalah seorang manajemen puncak (beserta anggota tim jika perlu), yang
diserahkan tugas khusus oleh perusahaan sebagai penanggung jawab proyek sistem
informasi. Paling tidak salah seorang anggota direksi harus berada dalam tim ini untuk
mencegah hambatan-hambatan berarti dalam pelaksanaan proyek. Secara prinsip,
Direktur Utama atau Presiden Direktur-lah yang harus menjadi Project Sponsor.
2. Project Manajer
Seorang project manager mempunyai tanggung jawab dan tugas yang bermacam-macam,
tidak hanya terfokus pada hal-hal yg teknis sifatnya. Bagaimana layaknya seorang project
manager harus mempunyai kemampuan membuat tim tetap solid, mampu memonitor dan
mengontrol budget serta mempunyai kemampuan analisis resiko yang baik.
Untuk melaksanakan tanggung jawab yang telah dijabarkan diatas, seorang project
manager perlu memiliki skill yang bermacam-macam. Gary Heerken ( 2002)
mengkategorikan skill & pengetahuan yang diperlukan seorang
Tim inti proyek software developer dapat dikategorikan menjadi tiga bagian utama: Sistem
Software, Software Developer dan Tester. Tim Sistem Software merupakan kumpulan para
ahli manajemen yang sangat menguasai ilmu desain aplikasi software, Tim Software Developer
merupakan para ahli programmer pembuat sebuah aplikasi software, sedangkan tim Tester
merupakan para ahli untuk menguji layak tidaknya sebuah aplikasi software dikembangkan.
Berikut Penjelasannya :
Seorang system analyst memiliki beberapa kriteria yang harus dijalankan, yaitu :
a. Merencanakan aliran sistem dari bawah ke atas.
b. Berinteraksi dengan pelanggan untuk belajar dan mendokumentasikan kebutuhan
yang nantinya akan digunakan untuk membuat Bussiness Requirement Document.
c. Menuliskan kebutuhan teknis dari fase kritis.
d. Berinteraksi dengan designer untuk memahami keterbatasan perangkat lunak.
e. Membantu programmer selama pengembangan sistem, seperti menyediakan use
case, flowchart, atau bahkan design database.
f. Melakukan pengujian sistem.
g. Mendeploy sistem yang teah selesai dibangun.
h. Mendokumentasikan kebutuhan atau berkontribusi dalam pembuatan user manual.
i. Kapanpun proses pengembangan dilakukan, system analyst bertanggung jawab
untuk merancang komponen dan memberikan informasi tersebut kepada developer.
Tetapi seorang programmer tidak bertugas untuk memastikan produk yang mereka buat
dapat digunakan dan diimplementasikan dengan denagn modul lainnya. Programmer
adalah spesialis di bidang pembuatan, bukan hasil akhir ataupun perencanaan.
Berikut ini adalah beberapa kode etik yang disadur berdasarkan kode etik yang kini
digunakan oleh perkumpulan programmer internasional yang berlaku saat ini :
1) Seorang programmer tidak boleh membuat atau mendistribusikan Malware.
2) Seorang programmer tidak boleh menulis kode yang sulit diikuti dengan sengaja.
3) Seorang programmer tidak boleh menulis dokumentasi yang dengan sengaja untuk
membingungkan atau tidak akurat.
4) Seorang programmer tidak boleh menggunakan ulang kode dengan hak cipta kecuali
telah membeli atau telah meminta izin.
5) Tidak boleh mencari keuntungan tambahan dari proyek yang didanai oleh pihak kedua
tanpa izin.
6) Etika profesi yang berlaku bagi programmer di indonesia. Tidak boleh mencuri software
khususnya development tools.
7) Tidak boleh menerima dana tambahan dari berbagai pihak eksternal dalam suatu
proyek secara bersamaan kecuali mendapatkan izin.
8) Tidak boleh menulis kode yang dengan sengaja menjatuhkan kode programmer lain
untuk mengambil keuntungan dalam menaikkan status.
9) Tidak boleh membeberkan data-data penting karyawan dalam perusahaan.
10) Tidak boleh memberitahu masalah keuangan pada pekerja dalam
pengembangan suatu proyek.
11) Tidak pernah mengambil keuntungan dari pekerjaan orang lain.
12) Tidak boleh mempermalukan profesinya.
13) Tidak boleh secara asal-asalan menyangkal adanya bug dalam aplikasi.
14) Tidak boleh mengenalkan bug yang ada di dalam software yang nantinya
programmer akan mendapatkan keuntungan dalam membetulkan bug.
15) Terus mengikuti perkembangan ilmu komputer.
2. Sofware Designer
Software designer adalah seseorang yang bekerja untuk menciptakan sebuah perangkat
lunak pada level yang cukup tinggi yang sesuai dengan kebutuhan pelanggan atau
manajemen. Seorang designer tidak melakukan proses coding sendiri, namun bertugas
untuk memastikan bahwa semua kebutuhan software telah ada dan diperhitungkan dengan
baik sebelum proses coding yang sebenarnya dimulai. Mereka mengambil tujuan akhir dari
pelanggan dan merencanakan berbagai tahap pengembangan dari konsep awal sampai
dengan sistem selesai dibuat. Mereka menggunakan IT dalam setiap aspek pekerjaan
mereka. Pemrograman dan perencanaan, keduanya dilakukan pada komputer, dan
sinkronisasi data yang diperlukan untuk rencana dan komunikasi yang efektif
membutuhkan penggunaan jaringan media yang modern.
Software design tidak hanya terlihat pada perusahaan yang memproduksi program dan
perangkat lunak, tetapi juga pada perusahaan yang membutuhkan solusi pada sebuah
perangkat lunak namun tidak ada perangkat lunak yang mampu mengatasinya.
Desainer software memegang peranan penting dalam segala hal yang berkaitan dengan
software, programming, matematika, logika, perencanaan, dan komunikasi. Mereka yang
menemukan diri mereka tertarik untuk bekerja dalam pembuatan program atau game
biasanya akan tertarik dalam mendesain perangkat lunak.
Biasanya software designer bekerja dengan erat dengan Quality Assurance Specialist.
Project Manager tim desain pengembangan perangkat lunak, dan segala yang berhubungan
dengan mendesain perangkat lunak.
3. Implementer
Salah satu kendala yang umum dijumpai oleh para pengusaha yang ingin melakukan
investasi dalam pengadaan sistem di perusahaan mereka adalah tidak adanya bimbingan
yang memadai dari vendor pembuat sistem. Oleh sebab itu,jasa tim implementor yang
dapat diperbantukan di perusahaan apabiladiperlukan.Tugas dari anggota tim implementor
ini adalah membantumempercepat proses implementasi sistem pada usaha, sekalipun
usaha tersebut telah cukup lama beroperasi.
Tugas Implementator :
Penataan sistem keuangan dengan menggunakan fasilitas yang ada pada
software developer secara lebih optimal.
Penanganan stok awal barang persediaan.
Administrasi budget
Divisi Tester
1. Software Tester
Software Tester merupakan salah satu posisi yang menjadi musuh para developer. Tugas
utama dari seorang software tester adalah melakukan pengecekan atau testing terhadap
error atau bug di dalam sebuah aplikasi atau program.
Dengan kata lain, keberhasilan seorang software tester adalah kegagalan bagi developer,
demikian juga sebaliknya. Namun, pada dasarnya keberhasilan software tester ataupun
keberhasilan developer memiliki tujuan yang sama, yaitu untuk membuat sebuah aplikasi
atau software bebas dari bug (meskipun sebenarnya tidak ada aplikasi yang bisa benar-
benar bebas dari bug).
Banyak orang yang berpikir bahwa tugas software tester adalah tugas yang sangat mudah,
namun pada kenyataannya tugas software tester adalah tugas yang sulit dan memiliki
tanggungjawab yang besar terhadap keberhasilan sebuah produk IT. Selain harus memiliki
kesabaran dan ketelitian, seorang software tester juga dituntut untuk proaktif dan memiliki
kreatifitas imajinasi yang tinggi.
Berkutat dengan dokumen-dokumen adalah hal yang biasa dan lumrah, karena tanpa
dokumen, software tester tidak dapat membuat test scenarioyang baik.
Dari semua dokumen inilah sofware tester kemudian akan mengetahui seperti apa sistem
yang akan di testing. Setelah mengetahui proses bisnis dari sistemnya, maka software
tester harus membuat test case yang terdiri dari langkah-langkah pengetesan terhadap
sistem yang dibagi-bagi kedalam tiap modul/unit sistem.