Seperti
halnya permainan sepak bola, tiap posisi pemain mempunyai perannya masing -
masing. Dalam sebuah tim proyek perangkat lunak, setiap orang tidak
hanya mempunyai peran, tapi juga posisi dalam struktur organisasi.
Pembagian peran dan struktur organisasi ini juga mempunyai aturan
atau rules yang tidak boleh dilanggar untuk memperkecil resiko dalam
pembuatan perangkat lunak.
Berikut
ini akan membahas mengenai Perencanaan Struktur Pelaksanaan Proyek pada sebuah
perusahaan Software Developer. Ada 3 jenis format struktur pelaksana sebuah
Proyek Software Developer yaitu format proyek, format fungsional, dan format
matriks.
1. Format Proyek
Dalam format ini sebuah team
dibentuk untuk pengerjaan proyek dari awal hingga akhir. Yang mana anggota dari
team yang sudah dibentuk tersebut diberikan masing-masing bagian tugasnya
seperti mendefiniskan produk, merancang produk, implementasi, dan melakukan
pengujian dan review serta menyiapkan dokumen pendukung dalam penggunaan
software itu nantinya.
2. Format Fungsional
Dalam format ini dibentuk
beberapa team yang akan mengerjakan proyek nya dalam setiap tahapan dan anggota
dari team ini bisa saja dirotasi sesuai kebutuhan.
Berikut beberapa team yang
dibentuk :
1)
Team Analisis dan
Perancangan, bertugas mengembangkan System
Definition (SD) dan Project Plan (PP).
2)
Team Pendefinisian
Produk, setelah menerima System
Definition dan Project Plan, team
ini melakukan analisa persyaratan perangkat lunak dan menyiapkan Software
Requirement Specification (SRS) atau lebih dikenal dengan Spesifikasi Kebutuhan Perangkat Lunak (SKPL).
3)
Team perancangan,
bertugas merancang produk yang sesuai dengan SRS dan SD.
4)
Team implementasi
bertugas mengimplementasi, debugging, dan melakukan uji per unit system.
5)
Team uji sistem
melakukan uji integrasi.
6)
Team kualitas
melakukan sertifikasi terhadap semua produk kerja (SQA).
7)
Team pemelihara
melakukan pemeliharaan produk (Maintenance).
3. Format Matriks
Setiap bagian divisi memiliki
team manajemen dan kelompok spesialis yang menangani dan melaksanakan tugas nya
sendiri.
A.
Proyek Sponsor
Merupakan seorang yang diserahkan tugas khusus oleh perusahaan sebagai penanggung jawab proyek. 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 Proyek Sponsor.
B.
Proyek Manajer
Merupakan seseorang yang memiliki tanggung jawab dan tugas yang banyak, tidak hanya terfokus pada hal yang bersifat teknis saja. Ia juga harus mempunyai kemampuan membuat tim tetap solid, mampu memonitor dan mengontrol budget serta mempunyai kemampuan analisis resiko yang baik.
Tanggung jawab Proyek Manajer :
1. Efisiensi Proyek
Proyek harus selesai sesuai dengan budget, sesuai dengan spesifikasi, dan waktu. Ketiga aspek itu harus dipenuhi oleh seorang Project Manager.
2. Organisasi
Seorang Proyek Manager juga mempunyai tanggung jawab terhadap organisasi. Taat kepada setiap kebijakan yang di keluarkan organisasi, harus mengambil keputusan dengan wewenang yang terbatas dari organisasi, dan juga terkadang juga harus mengambil keputusan yang terbaik buat organisasi namun tidak bagi proyek.
3. Kerja Tim
Tugas yang paling sulit bagi proyek manajer adalah menyeimbangkan antara kepentingan anggota tim, kepentingan tim, dan kepentingan proyek.
Skill yang harus dimiliki Proyek Manajer menurut Gary Heerken ( 2002) ada 4 yaitu :
1. Project Management
Seorang Project Manager harus bisa menguasai teknik, tools manajemen proyek dan teknologi yang bisa diaplikasikan di proyek. Contohnya seorang project manager harus bisa membuat work breakdown structure, membuat network diagram, dan bisa mempersiapakan dokumen-dokumen yang diperlukan klien.
2. Interpersonal dan behavioral Skill
Seorang Project manager harus mempunyai Interpersonal & Behavioral skill yang baik, bisanya disebut soft skill. Behavioral skill meliputi gaya (style), Kelakuan pesonal (personnal conduct), dan pendekatan (approach).
3. Technology Management Skill
Kemampuan untuk mengkoordinasi proses teknologi ini sangat penting jika ingin menjadi seorang project manager. Beberapa skill manajemen teknologi yang perlu dikuasai oleh seorang Project Manager yaitu :
a. Kemampuan dalam teknologi proyek
b. Kemampuan dalam mendukung teknologi area Pengetahuan tentang industri
c. Kemampuan dalam mempersiapkan spesifikasi teknis secara kompreshensif
d. Kemampuan dalam disain
C.
Proyek Manajemen dan
Administrasi
Project Administration adalah tim yang bertanggung jawab terhadap pengaturan dan penyimpanan segala jenis dokumen yang terlibat dalam proyek. Mulai dari proposal dan kontrak proyek, sampai dengan hasil wawancara atau notulen setiap pertemuan formal maupun informal. Disamping dokumen, hal-hal yang berkaitan dengan komunikasi antara anggota proyek dengan perusahaan dan vendors juga harus dikelola oleh tim ini. Agar segalanya berjalan dengan lancar, biasanya Project Administration sudah memiliki standar dokumen dan prosedur yang harus diikuti oleh seluruh anggota proyek agar proses administrasi berjalan dengan efektif dan secara efisien.
D.
Internal Audit dan
Quality Assurance
Quality Assurance terdiri dari tim yang mengawasi agar
pelaksanaan proyek dapat selalu terjamin kualitasnya sesuai dengan standar mutu
yang ada (standar lokal perusahaan konsultan yang bersangkutan atau standar
internasional seperti ISO). Fokus dari tim Quality Assurance lebih pada
kualitas dari outputoutput yang dihasilkan oleh proyek ini, seperti laporan,
rekomendasi, desain, perangkat lunak, perangkat keras, dan lain sebagainya.
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.
E.
Divisi Sistem Software
Sistem Analyst
System analyst adalah penghubung antara vendor dan profesional teknologi informasi. Mereka juga bertanggung jawab untuk mengembangkan analisi biaya, pertimbangan desain, dan implementasi timeline yang telah ditetapkan.
Kriteria Sistem Analyst :
1) Merencanakan aliran sistem dari bawah ke atas.
2) Berinteraksi dengan pelanggan untuk belajar dan mendokumentasikan kebutuhan yang nantinya akan digunakan untuk membuat Bussiness Requirement Document.
3) Menuliskan kebutuhan teknis dari fase kritis.
4) Berinteraksi dengan designer untuk memahami keterbatasan perangkat lunak.
5) Membantu programmer selama pengembangan sistem, seperti menyediakan use case, flowchart, atau bahkan design database.
6) Melakukan pengujian sistem.
7) Mendeploy sistem yang teah selesai dibangun
8) Mendokumentasikan kebutuhan atau berkontribusi dalam pembuatan user manual.
F. Divisi Software Developer
a. Programmer
Programmer adalah seseorang yang bertugas untuk mengimplementasikan apa yang telah dirancang oleh designer. 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. Seorang programmer memiliki kemampuan matematis dan kemampuan menulis bahasa pemrograman.
b. Software Designer
Seorang software designer mengambil tujuan akhir dari pelanggan dan merencanakan berbagai tahap pengembangan dari konsep awal sampai dengan sistem selesai dibuat. 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
c. Implementer
Tugas dari anggota tim implementor ini adalah membantu mempercepat proses implementasi sistem pada usaha, sekalipun usaha tersebut telah cukup lama beroperasi.
Tugas Implementator :
1. Penataan sistem keuangan dengan menggunakan fasilitas yang ada pada software developer secara lebih optimal.
2. Penanganan stok awal barang persediaan.
3. Administrasi budget.
G. Divisi Management Software
a. Software Tester
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). Selain harus memiliki kesabaran dan ketelitian, seorang software tester juga dituntut untuk proaktif dan memiliki kreatifitas imajinasi yang tinggi.
Dokumen yang dibutuhkan oleh software tester :
1) SRS (System Requirement Specification) Merupakan dokumen yang menyediakan panduan mengenai spesifikasi requirement sistem yang diinginkan oleh client/user secara lengkap terhadap suatu bagian/keseluruhan aplikasi.
2) SAD (Software Architecture Document) Merupakan dokumen yang menggambarkan desain arsitektur (flow process) secara umum dari modul yang ada dalam sebuah sistem. SAD memuat spesifikasi yang lebih rinci dari dokumen SRS.
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.
Referensi
Lestari, Indah.Tim Pengembang Perangkat Lunak.ppt
Referensi : http://winongkemiri.blogspot.com/2013/01/struktur-organisasi-pengembangan.html





