sdlc project
DESCRIPTION
langkahTRANSCRIPT
Software Project Management merupakan bidang yang menarik untuk dipelajari dan
tulisan saya di sini lebih difokuskan kepada apa yang telah saya lakukan selama ini. Suatu
Software Project dapat dilakukan oleh Konsultan atas permintaan User atau juga bisa
merupakan Suatu Internal Development Project , dan dalam tulisan ini, yang dibahas
adalah Software Project yang dilakukan oleh Konsultan yang telah ditunjuk oleh User.
Apa yang saya lakukan dalam suatu software project management selama ini adalah
dengan menerapkan SDLC (software development life cycle) yang tediri dari :
1. Project Kick Off
2. Project Plan : menentukan jadwal dan resource
3. Requirement Gathering & Analysis
4. Design
5. Development / Coding
6. Sistem Integration Test
7. User Acceptance Test
8. Data Migration
9. Go Live
Berikut adalah penjelasan singkat terkait hal-hal tersebut di atas :
Project Kick Off
Tahap ini merupakan awal dari project. Tahapan ini dilakukan dalam suatu rapat yang
dihadiri oleh Tim User dan Konsultan. User menyiapkan summary cakupan project serta
tahapan serta deliverables yang diharapkan. Tahap ini dilakukan dalam bentuk rapat resmi
disertai dengan notulensi. Catatan rapat ini akan didistribusikan ke seluruh pihak yang
terkait dengan project dan menjadi landasan kegiatan selanjutnya. Pada tahap ini juga
ditentukan Person In Charge (PIC) baik dari sisi User maupun dari sisi Konsultan. Project
Kick Off dilakukan dengan merujuk kepada kontrak atau SPK yang telah ditandatangani.
Project Plan
Perencanaan project merupakan tahap yang sangat penting. Pada tahap ini, project
manager membuatkan draft jadwal atas keseluruhan kegiatan project, sehingga dapat
memberikan gambaran kepada setiap orang yang terlibat di project. Project manager juga
menyiapkan resource yang akan dilibatkan pada project. Sehingga target utama dari Plan
Project ini adalah untuk mendapatkan gambaran kapan setiap tahapan project dilakukan
dan kapan selesainya serta siapa saja personal yang terlibat dalam project. Hal ini dapat
dibuat berdasarkan kontrak pekerjaan yang telah dibuat dan ditandangani sebelumnya.
Business Requirement Gathering and Analysis
Pendefinisian masalah merupakan hal yang esensi dari sebuah Software Project. Setiap
bagian/unit/divisi yang akan menjadi pengguna software, wajib mengirimkan
perwakilannya pada proses ini. Tanpa keterwakilan dari salah satu bagian/unit/divisi,
assesment kebutuhan menjadi tidak tepat yang pada ujungnya akan memberikan solusi
software yang tidak sesuai dengan kebutuhan.
Pada tahap ini sering kali terjadi konflik kepentingan antara pekerjaan operasional dengan
menghadiri meeting requirement assessment, untuk itu sangat diperlukan dukungan
penuh dari pimpinan perusahaan dari sisi User untuk memberikan prioritas utama pada
project ini. Solusi konflik kepentingan ini sering kali dengan menetapkan minimal satu
orang perwakilan dari setiap bagian/unit/divisi yang terlibat secara penuh project ini dari
awal sampai akhir. Jadi walaupun masih ada tanggung jawab operasional, PIC ini tetap
memprioritaskan waktunya di project. Untuk melengkapi hal tersebut, penentuan PIC
sebaiknya juga disertai dengan penetapan KPI (Key Performance Indicator) tambahan atas
karyawan tersebut atas keterlibatannya di Project Software ini.
Konsultan biasanya akan mengirimkan Project Manager, Business Analyst dan System
Analyst nya ke meeting ini. Project Manager memastikan meeting ini berjalan tepat waktu,
dihadiri oleh peserta meeting yang diharapkan, menentukan target meeting dan
memastikan agar target pertemuan tercapai. Business Analyst mempelajari kebutuhan
User, membuat hipotesis awal, menyiapkan daftar pertanyaan dan menanyakannya ke
User, mencatat jawaban-jawaban yang diterima, melakukan analysis kebutuhan,
menyiapkan minutes of meeting. System Analyst memberikan konfirmasi kesanggupan
teknis saat dibutuhkan oleh Business Analyst. Hal-hal kritikal akan sangat ditentukan dari
kesanggupan teknis yang dikonfirmasi oleh System Analyst dalam menjawab kebutuhan
User.
Konsultant akan menganalisis seluruh hasil interview dengan pihak user ini. Produk dari
tahap ini adalah dibuatkannya Functional Spesification Document (FSD). FSD akan menjadi
rujukan semua pihak yang terlibat di Project ini. FSD akan menjadi rujukan utama
programmer dalam pembuatan program dimana salah satu isi utama dari FSD adalah
desain screen-screen dari software yang akan dikembangkan. FSD yang salah akan
berdampak pada solusi software yang tidak salah.
Design
Tahap desain sangat menentukan kualitas atas software yang akan dibuat. Pada tahap
desain dilakukan pembuatan Flow Process, Data Flow Diagram, Entity Relationship
Diagram, Program Framework dan Struktur Class dan aspek teknis lainnya. Seluruh
pekerjaan pada tahap disain dibuat berdasarkan FSD yang telah disepakati pada tahap
sebelumnya. Desain solusi yang baik akan sangat memudahkan dalam pembuatan
program yang akan dikembangkan. Data Flow Diagram yang efektif dan efisien akan
membuat solusi menjadi lebih cepat dan lebih mudah direalisasikan. Entity Relationship
Diagram menentukan kualitas database yang akan dibangun. Kesalahan yang sering terjadi
adalah ERD tidak dibuat secara akurat sehingga menghasilkan kualitas database yang
redundan dan tidak efisien. DFD merupakan alur data dari business process yang sedang
dipelajari, sedangkan ERD merupakan tipe hubungan antara 2 atau lebih entitas di dalam
business process tersebut.
Coding/Development
Inti dari project software adalah coding/developmen program. Umumnya, kualitas dari
program sering berdasarkan pada kualitas si programmer yang bersangkutan. Software
Project Management yang baik akan membuatkan struktur class yang lengkap dan stabil
sebagai framework utama. Dengan pembuatan struktur class dan framework yang baku,
variasi dan kesalahan programmer dapat diminimilisasi. Tanpa itu akan terjadi tingkat
variasi dan kesalahan yang sering kali tinggi dan mengurangi kualitas software yang
dibangun, untuk itu peran senior developer dalam suatu project software akan sangat
penting, terutama
Saat ini banyak sekali pilihan bahasa program beserta Integrated Development
Environment-nya (IDE), namun yang saat ini banyak digunakan adalah Java, PHP,
Miscrosoft Visual Studio. Net, serta pengembangan untuk platform mobile seperti Android,
Apple dan Blackberry. Terlepas dari perbedaan pemilihan tools development, penerapan
konsep Object Oriented Programming (OOP) merupakan seuatu keharusan dan tetap dijaga
untuk memberikan kualitas software yang efektif dan efisien, konsep class dan framework
yang baik akan memberikan kemudahan dan keseragaman dalam pengembangan software.
Pembuatan Test Script
Tahap ini dilakukan bersamaan dengan tahapan coding/Development yang dilakkan oleh
Business Analyst bersama tim User, tujuannya adalah membuat suatu skenario test yang
lengkap dan komprehensif sesuai dengan proses real yang diinginkan oleh user sehingga
bisa menggambarkan kondisi proses sebenarnya. Test script ini harus benar-benar
mewakili cerita sebenarnya yang dilengkapi dengan contoh nilai-nilai masukan beserta
hasil yang diharapkan. Dengan adanya test script yang lengkap dan komprehensif, maka
testing bisa dilakukan oleh siapa saja, walaupun tidak terlibat di tahap awal project
software, dimana orang yang akan melakukan testing, cukup memasukan nilai awal sesuai
test script dan melihat apakah nilai yang dihasilkan sudah sesuai dengan hasil perhitungan
manual yang tercantum pada test script. Kasus-kasus test script harus divariasikan sesuai
dengan kemungkinan variasi pada proses sebenarnya.
Sistem Integration Test (SIT)
Pada tahap ini, modul-modul yang telah dikembangkan akan diintegrasikan menjadi suatu
solusi lengkap. Setelah diintegrasikan, sistem akan diujicobakan dengan menggunakan test
script yang sudah dibuat sebelumnya. Pengujian ini dilakkukan oleh internal konsultan
tanpa melibatkan user, namun test script yang digunakan tentunya sudah disesuaikan
dengan keinginan user dan disetujui user. Bila hasil dari ujicoba tidak sesuai dengan
hasilyang tertera di test script, maka program masih salah dan perlu diperbaiki. SIT telah
selesai apabila seluruh input test script telah diujicobakan dan hasilnya juga telah sesuai
dengan yang ada di test script. Business Analyst adalah PIC yang melakukan testing pada
proses SIT ini. Programmer akan melakukan perubahan yang diperlukan sampai diperoleh
hasil yang diharapkan sesuai test script.
User Acceptance Test (UAT)
Tahap ini kurang lebih sama dengan yang dilakukan pada tahap SIT, hanya saja yang
melakukan adalah User dari bagian/unit/divisi terkait. Tantangan yang muncul pada
tahapan ini adalah memastikan agar user terkait dapat menghadiri jadwal UAT sesuai
dengan waktu yang disepakati. Suatu sistem yang diintegrasikan biasanya melibatkan
beberapa bagian/unit/divisi, sehingga ketidakhadiran salah satu perwakilan dari
bagian/unit/divisi tertentu akan memundurkan jadwal UAT sehingga jadwal keseluruhan
juga jadi terganggu. Untuk itu perlu dilakukan pendeketan secara dini ke setiap pimpinan
bagian/unit/divisi terkait sehingga mempunyai kesadaran dan persepsi yang sama
mengenai pentingnya software yang sedang dikembangkan. Walaupun batasan pekerjaan
dan batasan proses ujicoba sudah digariskan dengan testscript yang disepakati
sebelumnya, namun demikian tidak jarang pada saat UAT, user menemukan suatu variasi
testing yang ternyata tidak ada di test script dan hal terburuknya adalah feature yang tidak
tersedia tersebut harus di develop oleh programmer. Hal ini tentunya akan menunda
penyelesaian UAT, namun apabila hal itu memang harus terjadi, maka harus mendapat
persetujuan dari kedua belah pihak. Masalah yang sering terjadi adalah pihak konsultan
sering disalahkan pada saat terjadi kemunduran jadwal karena tidak mendokumentasikan
dengan detail hal-hal yang menjadi new request selama proses UAT. Proses UAT biasanya
adalah proses yang paling sibuk/ramai dibanding tahap lainnya di SDLC, karena pada tahap
ini seluruh pihak terkait biasanya langsung saling berinteraksi, jadi adalah sangat bijaksana
bila seorang Project Manager mengantisipasi hal ini sedini mungkin, salah satunya adalah
pada saat requirement gathering dan pembuatan test script yang seakurat mungkin. Selain
itu, dengan penanganan new request yang baik, masalah keterlambatan penyelesaian UAT
dapat diselesaikan dengan baik.
Data Migration
Software dibuat dengan tujuan untuk menggantikan proses manual yang selama ini terjadi
menjadi suatu proses yang otomatis, atau mengganti sistem lama dengan sistem baru yang
dianggap lebih baik, atau melakukan penambahan program atas existing program. Jenis
manapun dari pengembangan software tersebut di atas harus melalui tahap yang
dinamakan Data Migration atau Migrasi Data. Untuk pelaksanaan data migration, beberapa
hal harus dipersiapkan yaitu : penyiapan existing data yang digunakan secara manual atau
yang digunakan oleh sistem yang lama, pembuatan script untuk melakukan one time
migration dimana data yang lama akan diupload ke sistem baru dengan menggunakan
script migrasi tersebut. Selain itu yang harus disiapkan adalah cut off dimana data
migration akan dilakukan, pemberitahuan ke seluruh pengguna sistem lama kapan cut off
data akan dilakukan dan berapa lama sistem akan off, pembuatan panduan step by step
dalam melakukan migrasi data, dan terakhir adalah pembuatan Fall Back Plan dimana bila
proses migrasi ini gagal, maka data lama akan dikembalikan lagi ke enviroment production,
sistem baru diangkat kembali dan sistem lama di kembalikan lagi. Setelah semua data
terbukti berhasil dimigrasikan dan user sudah melakukan final cek atas data hasil migrasi
di sistem baru, maka migrasi data selesai dilakukan.
Go Live
Ini adalah suatu tahap dimana semua proses SDLC sudah selesai dan user sudah bisa
menggunakan sistem baru dengan existing data. Setelah Go Live bukan berarti tidak ada
problem lagi, sering kali suatu sistem akan terlihat masalahnya pada saat sistem Go Live di
production server, namun dengan penanganan proses project management yang handal,
problem ini seharusnya dapat diminimalisasi.
Support
Untuk menjamin agar sistem berjalan bagus dan stabil setela production, diperlukan
mekanisme support yang efektif, dengan Service Level Agreement (SLA) yang disepakati
oleh User dan Vendor. Issue biasanya digolongkan menjadi Critical/Stopper, Urgent,
Important dan Nice to Have, dan masing-masing kriteria issue ini akan disolusikan dengan
SLA yang berbeda-beda