Kamis, 12 Februari 2015

Pahlawan Dibalik Layar Kesuksesan Software

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

3 komentar:

  1. infonya sangat bermanfaat gan, ngomong mana tuh yang gajinya paling gede

    BalasHapus
  2. mau nanya mas, itu kan antara SQA dan pihak developer kan bertentangan kerjanya, hal tersebut apakah tidak mempengaruhi hasil sebuah software?

    BalasHapus
  3. sebelumnya terima kasih buat para agan anon sekalian, sudah mau bertanya.
    baiklah saya akan menjawab pertanyaan agan anon1, sebenarnya gaji itu tergantung proyek yang di kerjakan, dan biasanya gajinya sesuai dengan tingkatan pengaruh seseorang tersebut terhadap software nya tadi.
    untuk agan annon 2, di artikel juga sudah ada saya sebutkan bahwa "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)."

    semoga agan puas dengan jawaban saya.

    BalasHapus