Manajemen Proyek Perangkat Lunak
Pola kerja sebuah perusahaan IT yang bergerak di bidang pengembangan software dapat dilihat terbagi menjadi dua bagian:
- Pembuatan Perangkat Lunak
- Manajemen Proyek Perangkat Lunak
Sebuah proyek adalah tugas yang didefinisikan dengan baik, yang merupakan kumpulan dari beberapa operasi yang dilakukan untuk mencapai suatu tujuan (misalnya, pengembangan dan pengiriman perangkat lunak). Sebuah Proyek dapat dicirikan sebagai:
- Setiap proyek mungkin memiliki tujuan yang unik dan berbeda.
- Proyek bukanlah kegiatan rutin atau operasi sehari-hari.
- Proyek dilengkapi dengan waktu mulai dan waktu berakhir.
- Proyek berakhir ketika tujuannya tercapai maka itu adalah fase sementara dalam masa hidup sebuah organisasi.
- Proyek membutuhkan sumber daya yang memadai dalam hal waktu, tenaga, keuangan, material dan bank pengetahuan.
Proyek Perangkat Lunak
Proyek Perangkat Lunak adalah prosedur lengkap pengembangan perangkat lunak mulai dari pengumpulan kebutuhan hingga pengujian dan pemeliharaan, yang dilakukan sesuai dengan metodologi pelaksanaan, dalam jangka waktu tertentu untuk mencapai produk perangkat lunak yang diinginkan.
Kebutuhan manajemen proyek perangkat lunak
Perangkat lunak dikatakan sebagai produk tidak berwujud. Pengembangan perangkat lunak adalah semacam aliran baru dalam bisnis dunia dan hanya ada sedikit pengalaman dalam membangun produk perangkat lunak. Sebagian besar produk perangkat lunak dibuat khusus agar sesuai dengan kebutuhan klien. Yang paling penting adalah bahwa teknologi yang mendasarinya berubah dan maju begitu sering dan cepat sehingga pengalaman satu produk mungkin tidak diterapkan pada produk lainnya. Semua kendala bisnis dan lingkungan seperti itu membawa risiko dalam pengembangan perangkat lunak sehingga sangat penting untuk mengelola proyek perangkat lunak secara efisien.
Gambar di atas menunjukkan tiga kendala untuk proyek perangkat lunak. Ini adalah bagian penting dari organisasi perangkat lunak untuk memberikan produk berkualitas, menjaga biaya dalam batasan anggaran klien dan menyelesaikan proyek sesuai jadwal. Ada beberapa faktor baik internal maupun eksternal yang dapat mempengaruhi segitiga kendala rangkap tiga ini. Salah satu dari tiga faktor dapat sangat mempengaruhi dua faktor lainnya.
Oleh karena itu, manajemen proyek perangkat lunak sangat penting untuk memasukkan persyaratan pengguna bersama dengan batasan anggaran dan waktu.
Manajer Proyek Perangkat Lunak
Seorang manajer proyek perangkat lunak adalah orang yang mengemban tanggung jawab untuk melaksanakan proyek perangkat lunak. Manajer proyek perangkat lunak benar-benar menyadari semua fase SDLC yang akan dilalui perangkat lunak. Manajer proyek mungkin tidak pernah terlibat langsung dalam memproduksi produk akhir tetapi dia mengontrol dan mengelola aktivitas yang terlibat dalam produksi.
Seorang manajer proyek secara dekat memantau proses pengembangan, mempersiapkan dan melaksanakan berbagai rencana, mengatur sumber daya yang diperlukan dan memadai, memelihara komunikasi di antara semua anggota tim untuk mengatasi masalah biaya, anggaran, sumber daya, waktu, kualitas dan kepuasan pelanggan.
Mari kita lihat beberapa tanggung jawab yang dipikul oleh manajer proyek -
Mengatur orang
- Bertindak sebagai pemimpin proyek
- Hubungan dengan pemangku kepentingan
- Mengelola sumber daya manusia
- Menyiapkan hierarki pelaporan, dll.
Mengelola Proyek
- Mendefinisikan dan menyiapkan ruang lingkup proyek
- Mengelola aktivitas manajemen proyek
- Memantau kemajuan dan kinerja
- Analisis risiko di setiap fase
- Ambil langkah yang diperlukan untuk menghindari atau keluar dari masalah
- Bertindak sebagai juru bicara proyek
Aktivitas Manajemen Perangkat Lunak
Manajemen proyek perangkat lunak terdiri dari sejumlah kegiatan, yang meliputi perencanaan proyek, penentuan ruang lingkup produk perangkat lunak, estimasi biaya dalam berbagai istilah, penjadwalan tugas dan acara, dan manajemen sumber daya. Kegiatan manajemen proyek dapat mencakup:
- Project Planning
- Scope Management
- Project Estimation
Perencanaan proyek
Perencanaan proyek perangkat lunak adalah tugas, yang dilakukan sebelum produksi perangkat lunak benar-benar dimulai. Itu ada untuk produksi perangkat lunak tetapi tidak melibatkan aktivitas konkret yang memiliki hubungan arah dengan produksi perangkat lunak; melainkan serangkaian proses yang beragam, yang memfasilitasi produksi perangkat lunak. Perencanaan proyek dapat mencakup yang berikut:
Manajemen Lingkup
Ini mendefinisikan ruang lingkup proyek; ini mencakup semua aktivitas, proses yang perlu dilakukan untuk membuat produk perangkat lunak yang dapat dikirimkan. Manajemen ruang lingkup sangat penting karena menciptakan batasan proyek dengan mendefinisikan secara jelas apa yang akan dilakukan dalam proyek dan apa yang tidak akan dilakukan. Ini membuat proyek berisi tugas-tugas yang terbatas dan dapat dihitung, yang dapat dengan mudah didokumentasikan dan pada gilirannya menghindari pembengkakan biaya dan waktu.
Selama pengelolaan Lingkup Proyek, perlu untuk -
- Tentukan cakupannya
- Putuskan verifikasi dan kontrolnya
- Bagilah proyek menjadi beberapa bagian yang lebih kecil untuk kemudahan pengelolaan.
- Verifikasi ruang lingkup
- Kontrol ruang lingkup dengan memasukkan perubahan pada ruang lingkup
Estimasi Proyek
Untuk manajemen yang efektif, estimasi yang akurat dari berbagai ukuran adalah suatu keharusan. Dengan estimasi yang benar, manajer dapat mengelola dan mengontrol proyek dengan lebih efisien dan efektif.
Estimasi proyek mungkin melibatkan hal-hal berikut:
- Software size estimation
Ukuran perangkat lunak dapat diperkirakan dalam bentuk KLOC (Kilo Line of Code) atau dengan menghitung jumlah titik fungsi dalam perangkat lunak. Baris kode bergantung pada praktik pengkodean dan Titik fungsi bervariasi sesuai dengan kebutuhan pengguna atau perangkat lunak.
- Effort estimation
Manajer memperkirakan upaya dalam hal kebutuhan personel dan jam kerja yang diperlukan untuk menghasilkan perangkat lunak. Untuk estimasi usaha ukuran software harus diketahui. Ini dapat diperoleh dari pengalaman manajer, data historis organisasi atau ukuran perangkat lunak dapat diubah menjadi upaya dengan menggunakan beberapa rumus standar.
- Time estimation
Setelah ukuran dan upaya diperkirakan, waktu yang dibutuhkan untuk memproduksi perangkat lunak dapat diperkirakan. Upaya yang diperlukan dipisahkan menjadi sub kategori sesuai spesifikasi kebutuhan dan saling ketergantungan berbagai komponen perangkat lunak. Tugas perangkat lunak dibagi menjadi tugas, aktivitas, atau acara yang lebih kecil oleh Work Breakthrough Structure (WBS). Tugas-tugas tersebut dijadwalkan setiap hari atau dalam bulan kalender.
Jumlah waktu yang dibutuhkan untuk menyelesaikan semua tugas dalam jam atau hari adalah total waktu yang diinvestasikan untuk menyelesaikan proyek.
- Cost estimation
Ini mungkin dianggap sebagai yang paling sulit dari semuanya karena bergantung pada lebih banyak elemen daripada elemen sebelumnya. Untuk memperkirakan biaya proyek, perlu dipertimbangkan -
- Ukuran perangkat lunak
- Kualitas perangkat lunak
- Hardware
- Perangkat lunak atau alat tambahan, lisensi, dll.
- Personel yang terampil dengan keterampilan khusus tugas
- Perjalanan terlibat
- Communication
- Pelatihan dan dukungan
Teknik Estimasi Proyek
Kami membahas berbagai parameter yang melibatkan estimasi proyek seperti ukuran, tenaga, waktu dan biaya.
Manajer proyek dapat memperkirakan faktor-faktor yang terdaftar menggunakan dua teknik yang dikenal luas -
Teknik Dekomposisi
Teknik ini mengasumsikan perangkat lunak sebagai produk dari berbagai komposisi.
Ada dua model utama -
- Line of Code Estimasi dilakukan atas nama jumlah baris kode pada produk perangkat lunak.
- Function Points Estimasi dilakukan atas nama jumlah titik fungsi di produk perangkat lunak.
Teknik Estimasi Empiris
Teknik ini menggunakan rumus yang diturunkan secara empiris untuk membuat estimasi. Rumus ini didasarkan pada LOC atau FP.
- Putnam Model
Model ini dibuat oleh Lawrence H. Putnam yang didasarkan pada distribusi frekuensi Norden (kurva Rayleigh). Model Putnam memetakan waktu dan upaya yang dibutuhkan dengan ukuran perangkat lunak.
- COCOMO
COCOMO adalah singkatan dari COnstructive COst MOdel, yang dikembangkan oleh Barry W. Boehm. Ini membagi produk perangkat lunak menjadi tiga kategori perangkat lunak: organik, semi-terpisah dan tertanam.
Penjadwalan Proyek
Penjadwalan Proyek dalam suatu proyek mengacu pada peta jalan dari semua kegiatan yang harus dilakukan dengan urutan tertentu dan dalam slot waktu yang dialokasikan untuk setiap kegiatan. Manajer proyek cenderung menentukan berbagai tugas, dan tonggak proyek dan mengaturnya dengan mempertimbangkan berbagai faktor. Mereka mencari tugas yang terletak di jalur kritis dalam jadwal, yang perlu diselesaikan dengan cara tertentu (karena saling ketergantungan tugas) dan secara ketat dalam waktu yang dialokasikan. Pengaturan tugas yang berada di luar jalur kritis cenderung tidak berdampak pada semua jadwal proyek.
Untuk menjadwalkan proyek, perlu untuk -
- Pecahkan tugas proyek menjadi lebih kecil, bentuk yang dapat dikelola
- Temukan berbagai tugas dan korelasikan
- Perkirakan kerangka waktu yang dibutuhkan untuk setiap tugas
- Bagilah waktu menjadi unit kerja
- Tetapkan jumlah unit kerja yang memadai untuk setiap tugas
- Hitung total waktu yang dibutuhkan untuk proyek dari awal hingga selesai
Pengelolaan sumber daya
Semua elemen yang digunakan untuk mengembangkan produk perangkat lunak dapat dianggap sebagai sumber daya untuk proyek itu. Ini mungkin termasuk sumber daya manusia, alat produktif dan perpustakaan perangkat lunak.
Sumber daya tersedia dalam jumlah terbatas dan tetap berada dalam organisasi sebagai kumpulan aset. Kekurangan sumber daya menghambat pengembangan proyek dan dapat terlambat dari jadwal. Mengalokasikan sumber daya tambahan pada akhirnya meningkatkan biaya pengembangan. Oleh karena itu perlu untuk memperkirakan dan mengalokasikan sumber daya yang memadai untuk proyek tersebut.
Manajemen sumber daya meliputi -
- Mendefinisikan proyek organisasi yang tepat dengan membuat tim proyek dan mengalokasikan tanggung jawab kepada setiap anggota tim
- Menentukan sumber daya yang dibutuhkan pada tahap tertentu dan ketersediaannya
- Kelola Sumber Daya dengan membuat permintaan sumber daya saat dibutuhkan dan batalkan alokasinya saat tidak diperlukan lagi.
Manajemen Risiko Proyek
Manajemen risiko melibatkan semua aktivitas yang berkaitan dengan identifikasi, analisis, dan pembuatan ketentuan untuk risiko yang dapat diprediksi dan tidak dapat diprediksi dalam proyek. Resiko mungkin termasuk yang berikut:
- Staf berpengalaman meninggalkan proyek dan staf baru masuk.
- Perubahan dalam manajemen organisasi.
- Perubahan kebutuhan atau salah tafsir persyaratan.
- Meremehkan waktu dan sumber daya yang dibutuhkan.
- Perubahan teknologi, perubahan lingkungan, persaingan bisnis.
Proses Manajemen Resiko
Ada aktivitas berikut yang terlibat dalam proses manajemen risiko:
- Identification - Catat semua risiko yang mungkin terjadi, yang mungkin terjadi dalam proyek.
- Categorize - Mengategorikan risiko yang diketahui ke dalam intensitas risiko tinggi, sedang dan rendah sesuai dengan kemungkinan dampaknya terhadap proyek.
- Manage - Menganalisis kemungkinan terjadinya risiko pada berbagai fase. Buat rencana untuk menghindari atau menghadapi risiko. Cobalah untuk meminimalkan efek sampingnya.
- Monitor - Pantau dengan cermat potensi risiko dan gejala awalnya. Pantau juga efek dari langkah-langkah yang diambil untuk mengurangi atau menghindarinya.
Eksekusi & Pemantauan Proyek
Dalam fase ini, tugas-tugas yang dijelaskan dalam rencana proyek dijalankan sesuai dengan jadwal mereka.
Eksekusi membutuhkan pemantauan untuk memeriksa apakah semuanya berjalan sesuai rencana. Pemantauan adalah mengamati untuk memeriksa kemungkinan risiko dan mengambil tindakan untuk mengatasi risiko atau melaporkan status berbagai tugas.
Langkah-langkah ini termasuk -
- Activity Monitoring - Semua aktivitas yang dijadwalkan dalam beberapa tugas dapat dipantau dari hari ke hari. Ketika semua aktivitas dalam sebuah tugas selesai, itu dianggap selesai.
- Status Reports - Laporan tersebut berisi status kegiatan dan tugas yang diselesaikan dalam jangka waktu tertentu, biasanya seminggu. Status dapat ditandai sebagai selesai, tertunda atau sedang dalam proses dll.
- Milestones Checklist - Setiap proyek dibagi menjadi beberapa fase di mana tugas-tugas utama dilakukan (milestone) berdasarkan fase SDLC. Daftar periksa pencapaian ini disiapkan setiap beberapa minggu sekali dan melaporkan status pencapaiannya.
Manajemen Komunikasi Proyek
Komunikasi yang efektif memainkan peran penting dalam keberhasilan suatu proyek. Ini menjembatani kesenjangan antara klien dan organisasi, di antara anggota tim serta pemegang saham lainnya dalam proyek seperti pemasok perangkat keras.
Komunikasi bisa lisan atau tertulis. Proses manajemen komunikasi mungkin memiliki langkah-langkah berikut:
- Planning - Langkah ini mencakup identifikasi semua pemangku kepentingan dalam proyek dan cara komunikasi di antara mereka. Ini juga mempertimbangkan jika ada fasilitas komunikasi tambahan yang diperlukan.
- Sharing - Setelah menentukan berbagai aspek perencanaan, manajer berfokus pada berbagi informasi yang benar dengan orang yang tepat pada waktu yang tepat. Ini membuat setiap orang yang terlibat dalam proyek tetap up-to-date dengan kemajuan proyek dan statusnya.
- Feedback - Manajer proyek menggunakan berbagai ukuran dan mekanisme umpan balik dan membuat laporan status dan kinerja. Mekanisme ini memastikan bahwa masukan dari berbagai pemangku kepentingan datang ke manajer proyek sebagai umpan balik mereka.
- Closure - Di akhir setiap acara besar, akhir fase SDLC atau akhir proyek itu sendiri, penutupan administratif secara resmi diumumkan untuk memperbarui setiap pemangku kepentingan dengan mengirim email, dengan mendistribusikan hardcopy dokumen atau dengan cara komunikasi efektif lainnya.
Setelah penutupan, tim pindah ke fase atau proyek berikutnya.
Manajemen konfigurasi
Manajemen konfigurasi adalah proses melacak dan mengendalikan perubahan perangkat lunak dalam hal persyaratan, desain, fungsi, dan pengembangan produk.
IEEE mendefinisikannya sebagai "proses mengidentifikasi dan menentukan item dalam sistem, mengontrol perubahan item ini sepanjang siklus hidupnya, mencatat dan melaporkan status item dan permintaan perubahan, serta memverifikasi kelengkapan dan kebenaran item".
Umumnya, setelah SRS diselesaikan, kecil kemungkinan persyaratan perubahan dari pengguna. Jika terjadi, perubahan hanya ditangani dengan persetujuan sebelumnya dari manajemen yang lebih tinggi, karena ada kemungkinan kelebihan biaya dan waktu.
Dasar
Sebuah fase SDLC diasumsikan selesai jika itu baselined, yaitu baseline adalah pengukuran yang mendefinisikan kelengkapan fase. Sebuah fase dibuat dasar ketika semua kegiatan yang berkaitan dengan itu selesai dan didokumentasikan dengan baik. Jika ini bukan tahap akhir, keluarannya akan digunakan pada tahap selanjutnya.
Manajemen konfigurasi adalah disiplin administrasi organisasi, yang menangani terjadinya perubahan apa pun (proses, persyaratan, teknologi, strategi, dll.) Setelah fase dibuat dasar. CM terus memeriksa setiap perubahan yang dilakukan dalam perangkat lunak.
Ubah Kontrol
Kontrol perubahan adalah fungsi manajemen konfigurasi, yang memastikan bahwa semua perubahan yang dilakukan pada sistem perangkat lunak konsisten dan dibuat sesuai aturan dan peraturan organisasi.
Perubahan dalam konfigurasi produk melalui langkah-langkah berikut -
Identification- Permintaan perubahan datang dari sumber internal atau eksternal. Ketika permintaan perubahan diidentifikasi secara resmi, itu didokumentasikan dengan benar.
Validation - Validitas permintaan perubahan diperiksa dan prosedur penanganannya dikonfirmasi.
Analysis- Dampak permintaan perubahan dianalisis dalam hal jadwal, biaya, dan upaya yang diperlukan. Dampak keseluruhan dari perubahan prospektif pada sistem dianalisis.
Control- Jika perubahan prospektif berdampak pada terlalu banyak entitas dalam sistem atau tidak dapat dihindari, diperlukan persetujuan dari otoritas tinggi sebelum perubahan dimasukkan ke dalam sistem. Diputuskan apakah perubahan itu layak untuk digabungkan atau tidak. Jika tidak, permintaan perubahan ditolak secara resmi.
Execution - Jika fase sebelumnya menentukan untuk mengeksekusi permintaan perubahan, fase ini mengambil tindakan yang sesuai untuk mengeksekusi perubahan, melakukan revisi menyeluruh jika perlu.
Close request- Perubahan diverifikasi untuk implementasi yang benar dan penggabungan dengan sistem lainnya. Perubahan yang baru dimasukkan dalam perangkat lunak ini didokumentasikan dengan baik dan permintaan ditutup secara resmi.
Alat Manajemen Proyek
Risiko dan ketidakpastian meningkat berlipat ganda sehubungan dengan ukuran proyek, bahkan ketika proyek dikembangkan sesuai dengan metodologi yang ditetapkan.
Ada alat yang tersedia, yang membantu manajemen proyek yang efektif. Beberapa dijelaskan -
Bagan Gantt
Grafik Gantt dirancang oleh Henry Gantt (1917). Ini mewakili jadwal proyek sehubungan dengan periode waktu. Ini adalah diagram batang horizontal dengan batang yang mewakili aktivitas dan waktu yang dijadwalkan untuk aktivitas proyek.
Bagan PERT
Diagram PERT (Program Evaluation & Review Technique) adalah alat yang menggambarkan proyek sebagai diagram jaringan. Ini mampu secara grafis mewakili peristiwa utama proyek secara paralel dan berurutan. Peristiwa, yang terjadi satu demi satu, menunjukkan ketergantungan peristiwa selanjutnya di atas peristiwa sebelumnya.
Peristiwa ditampilkan sebagai node bernomor. Mereka terhubung dengan panah berlabel yang menggambarkan urutan tugas dalam proyek.
Histogram Sumber Daya
Ini adalah alat grafis yang berisi batang atau bagan yang mewakili jumlah sumber daya (biasanya staf ahli) yang dibutuhkan dari waktu ke waktu untuk acara (atau fase) proyek. Histogram Sumber Daya adalah alat yang efektif untuk perencanaan dan koordinasi staf.
Analisis Jalur Kritis
Alat ini berguna untuk mengenali tugas yang saling bergantung dalam proyek. Ini juga membantu untuk mengetahui jalur terpendek atau jalur kritis untuk menyelesaikan proyek dengan sukses. Seperti diagram PERT, setiap peristiwa diberikan kerangka waktu tertentu. Alat ini menunjukkan ketergantungan acara dengan asumsi acara dapat dilanjutkan ke berikutnya hanya jika yang sebelumnya selesai.
Acara diatur sesuai dengan waktu mulai sedini mungkin. Jalur antara simpul awal dan akhir adalah jalur kritis yang tidak dapat dikurangi lebih lanjut dan semua kejadian harus dijalankan dalam urutan yang sama.