Tuesday, August 28, 2007

Analisis Sistem, Salah Satu Penyebab Kekacauan Proyek

Analisis sistem :) Waktu ngedenger itu, sejujurnya kepala gw bingung. Bingung, apa yang musti dilakukan duluan? Gimana menyimpulkan bahwa si pengguna kebutuhannya adalah modul ini, ini, ini dan itu? Kalau softwarenya kecil, dan dipake oleh sedikit orang masih gak masalah. Tapi gimana kalo softwarenya besar, dipake oleh banyak orang yang tersebar di divisi-divisi? Software yang dibuat, harus bisa mengintegrasikan proses-proses yang ada. Gimana kita bisa memulai ngumpulin kebutuhan untuk bikin software "raksasa" itu?

Nah, kepusingan ini muncul pada saat dapet proyek ERP perusahaan manufaktur, dan yang terakhir Sistem Informasi Hotel. Nah Sistem Informasi Hotel, bagian Front Officenya aja udah besar dan kompleks, ditambah lagi Back Office, yang kalo diliat-liat kebutuhanya udah kayak ERP buat perusahaan manufaktur. Cuma gak ada modul untuk Produksinya. Pusing lah sudah..

Di buku Robert L. Glass, judulnya Facts And Fallaces Of Software Engineering, di Fact no 23, dia bilang gini,

One of the two common causes of runaway projects is unstable requirments.

Ternyata bener banget :) Gw ngalamin masalah di proyek-proyek besar itu.

Beberapa waktu ini, gw lagi sering belajar manajemen. Tadi malem mulai belajar tentang Software Project Planning. Yang dibutuhin dari planning, salah satunya adalah data-data dari masa lalu. Akhirnya mulai mikir, kalo untuk programming, bisa kita ukur waktunya, untuk disain juga bisa. Karena ada framework, jadi lebih mudah antisipasinya. Waktu mulai mikir analisis........ deng deng..... pusing pun datang. Karena memang gak pernah dipikir sampe tuntas, tahapan-tahapan untuk analisis yang kita pake di kantor.

Akhirnya sepanjang jalan dari rumah ke kantor (jalan kaki nih, kan deket), gw mikirin langkah apa aja yang musti dikerjain. Sampe kantor, gw tambahin di file software_dev_workflow.xls (file yang isinya hasil mikir tentang step-step pengembangan software), begini isinya,
  1. Pahami struktur organisasi customer. Dengan memahami struktur organisasi, dapat membantu kita buat mecah-mecah masalah menjadi lebih kecil. Contoh, hotel terdiri dari departemen Front Office, Food And Beverage, Accounting, Marketing dan HRD.
  2. Pahami proses yang terjadi di setiap departemen dan hubungannya dengan departemen lain. Contoh, untuk melakukan pembelian, bagian gudang membuat Purchase Requisition dan diberikan ke bagian Procurement, bagian Procurement membuat Purchase Order, lalu dikirimkan ke Vendor...dst dst.
  3. Kumpulkan dokumen-dokumen yang digunakan di setiap departemen. Sewaktu proses terjadi di dalam dan antar departemen, ada dokumen-dokumen yang digunakan. Dokumen ini digunakan sebagai landasan dikerjakannya sesuatu, atau dasar pencatatan akuntansi. Dengan mempelajari dokumen-dokumen tersebut, kita bisa memahami data-data yang digunakan, dan persetujuan yang diperlukan oleh tingkatan yang lebih tinggi. Contoh, untuk proses pembelian tadi bisa dilihat dokumen-dokumenya di contoh di atas. Lalu di Purchase Order, perlu ditandatangani oleh Departement Head Accounting.
  4. Pahami pencatatan-pencatatan yang dibuat oleh komponen-komponen yang ada. Contoh, pelajari pencatatan utang yang dibuat oleh bagian Account Payable.
  5. Pelajari laporan-laporan yang dibuat. Dengan mempelajari laporan-laporan yang dibuat, kita dapat menyimpulkan data-data tambahan yang perlu disimpan yang data tersebut tidak ada di dokumen dan pencatatan. Lalu, kita juga dapat menyimpulkan kebutuhan laporan mereka. Contoh, laporang Aging AP berisi informasi hutang yang kita miliki per periode tertentu (3 bulan, 6 bulan, > 12 bulan).
  6. Buat Use Case. Setelah kita pahami beberapa komponen di atas, kita sudah mulai dapat simpulkan gimana kira-kira nanti pengguna akan mengakses sistem.
  7. Definisikan modul-modul yang perlu dibuat dan integrasinya dengan modul lain. Kalo udah ada use case, mudah untuk menentukan modul-modul apa saja yang perlu dibuat. Contoh, perlu dibuat modul Invoice, modul ini akan terintegrasi dengan Incoming Payment.
  8. Buat aturan untuk setiap modul. Contoh, di modul Point Of Sales, dilarang ada penghapusan bill. Pembatalan bill harus dilakukan dengan mekanisme void, di mana sistem akan membuat transaksi pembalik dari bill yang di-void.
Baru segini yang kepikiran nih. Hmm, ntar di perjalanan disempurnain lagi deh :)

Para Project Manager dan System Analyst, harus sangat merhatiin masalah prosedur analisis sistem. Karena kesuksesan dan kegagalan proyek software, bisa disebabkan oleh yang satu ini.

NB:
Karena sejauh ini pekerjaan yang gw dapet adalah ngembangin sistem informasi, jadi yang disebutin di atas adalah langkah-langkah untuk analisis software Sistem Informasi.

9 comments:

Anonymous said...

horee pertamax!!

halah...

yo wis tak kasih komen, tadi disebutin requirement yang nggak stabil. Pertanyaannya, bisa nggak requirement nggak stabil ini diantisipasi? karena kadang (baca: sering) di suatu instansi itu requirementnya bisa nggak stabil. Minta bikin doclang sayur malah jadi pecel+lontong.

Isaam Khalid said...

mustinya di project planning udah dipikirin tuh. baru belajar nih project planning yang bener :) seperti biasa, scopenya kita tempel di kontrak.

Anonymous said...

pake prioritas dong. tp model kayak gini paling enak kalo proyeknya fleksibel, artinya tidak terbatas waktu, syukur2 juga tidak terbatas dananya. kita aman (ada jaminan bahwa tidak akan ada hard deadline), user pun senang krn semua kebutuhan yg mereka anggap penting dpt dipenuhi.

model prioritas akan sesuai jika user melek IT dan paham bagaimana software di-devel. spt pengalamanku pd proyek di salah satu bimbel terkenal. tp sayangnya payung hukumnya (baca: pks) lemah, jadinya ya sama saja dg proyek fixed.

yg menjadi kendala adlh kebanyakan proyek di indonesia adlh proyek fixed, dimana waktu dan dana sdh ditentukan di muka. dg model fixed spt itu, user akan cenderung melihat hasil dibanding prosesnya. tidak peduli bagaimana developer hrs banting tulang sampe kurus utk devel aplikasinya, yg penting semua kebutuhan user terpenuhi.

cmiiw

Isaam Khalid said...

@yogatama

Step-step analisis yang kutulis tujuannya bukan sebagai step mandatory yang harus dilakukan mas. Tujuanya hanya sebagai guide kalo merasa bingung, apa yang perlu dilakukan.

Jika ada step yang terasa berlebihan untuk dilakukan, tidak usah dilakukan. Yang penting tujuanya adalah, kita bisa jelas software apa yang akan kita buat.

Masalah prioritas sangat penting dalam masalah pembuatan jadwal. Aku gak bahas, karena memang gak termasuk scope yang diceritain.

Ayo mas Yoga, bikin tulisan pelengkap dank kritisinya di blogmu. Supaya pendapat yang kita punya hasil pengalaman bisa setidaknya terdokumentasi :)

Anonymous said...

sori, njawab pertanyaannya harry, bukan komen tulisannya. :D

pasti prioritas akan dimasukkan dlm project plan. tp bukankah plan itu utk dilanggar? ;)) kalo kita sdh menjiwai metodologi iteratif (dan pastinya isaam sdh sangat menjiwai), segala perubahan adlh utk di.. (embrace itu bahasa indonesianya yg pas apa ya?). ada artikel menarik di sini: http://www.agileadvice.com/archives/2005/05/change_is_const.html

tp, kalo dihubungkan dg artikelnya, ya jelas diskusi ini ngga nyambung. wong ditulisannya mbahas bagaimana melakukan analisis, kok diskusinya mbahas perubahan requirement.

step2nya sih sptnya sdh cukup komplit. mungkin bisa ditambahkan 1 poin lagi:
9. perbanyaklah berdoa, memohon supaya tidak banyak perubahan requirement dan user tidak berulah

j/k :D

Isaam Khalid said...

@anonymous (mas Yogatama nih ya)

Hwahahahahahaha.

Tapi bener juga si mas :) Biar Allah bantu memudahkan kerjaan kita.

Anonymous said...

aku setuju sm mas yogatama ajah Sam!
hehehe..narsis ya..
eh bener lo yg kamu tulis itu.. ak dah sering mengalaminya..
hahaha jd kacaw semuaa dehh
dan tentu sj, berdoa.

Anonymous said...

Wew, masukin query "contoh laporan system analyst" di google ... keluar-keluar nomor satu langsung artikel ini ... keren keren ... piye kabare saam? Sukses ya bro, gw sedang belajar merangkak nih ... ntar kalo mumet ajarin yah ^^

Isaam Khalid said...

Kita belajar bareng sonx. As usual :)