Scheduling adalah puncak dari perencanaan proyek yang merupakan komponen utama dalam manajemen proyek​ software engineering ​ .​Software project scheduling adalah pendistribusian effort ​ di seluruh durasi proyek yang telah direncanakan dengan mengalokasikan ​effort tersebut ke tugas tugas tertentu. Scheduling menghasilkan ​roadmap yang mendefinisikan tugas dan ​milestones ​ untuk dikendalikan saat proyek berjalan. Dengan menggunakan scheduling, kita dapat mengontrol dan memonitor setiap langkah dalam proses software.

Prinsip dasar panduan untuk software project scheduling:

– Compartmentalization.
Proyek perlu untuk dikelompokkan menjadi beberapa tugas atau kegiatan yang dapat dikelola.

– Interdependency.
Ketergantungan dari setiap tugas atau kegiatan yang telah dikelompokkan harus ditentukan. Beberapa tugas atau kegiatan ada yang terjadi secara berurutan dan ada yang terjadi secara paralel. Beberapa kegiatan tidak dapat dimulai sampai produk yang diproduksi orang lain tersedia. Kegiatan lain dapat terjadi secara mandiri.

-Time allocation
Setiap tugas yang dijadwalkan harusdialokasikansejumlahunitkerja.Selainitu,setiaptugas harus diberi tanggal mulai dan tanggal penyelesaian yang merupakan fungsi dari saling ketergantungan dan apakah pekerjaan akan dilakukan secara ​full time ​ atau paruh waktu

– Effort Validation
Setiap proyek memiliki jumlah orang yang ditentukan dalam tim. Ketika alokasi waktu terjadi, kita harus memastikan bahwa jumlah orang yang dialokasikan pada waktu tertentu tidak melebihi.

– Defined responsibilities
Setiap tugas yang dijadwalkan harus diberikan kepada anggota tim tertentu.

– Defined outcomes
Setiap tugas yang dijadwalkan harus memiliki hasil yang pasti. Hasil yang dihasilkan biasanya adalah produk kerja berupa suatu design ataupun komponen dari produk tersebut.

– Defined milestones
Setiap tugas harus dikaitkan dengan suatu ​milestones. ​Milestones dicapai ketika satu atau lebih produk telah ditinjau kualitasnya dan telah disetujui.

Pada tahap awal perencanaan proyek, ​macroscopic schedule dikembangkan. ​Macroscopic schedule berfungsi untuk mengidentifikasi semua kegiatan utama dan produk yang akan diterapkannya. Seiring dengan prosesnya, macroscopic schedule dapat disempurnakan menjadi detailed schedule ​ . Pada ​detailed schedule ​ , tugas yang dibutuhkan untuk menyelesaikan kegiatan tersebut diidentifikasi dan dijadwalkan. Untuk dapat menyempurnakan ​macroscopic schedule menjadi detailed schedule ​ , dimulai dengan mengambil kegiatan dan menguraikannya menjadi serangkaian tugas. Serangkaian tugas ini adalah kumpulan tugas, ​milestones ​ , produk, dan filter kualitas yang dibutuhkan untuk menyelesaikan proyek. Serangkaian tugas ini harus dapat mencapai kualitas ​software ​ yang tinggi. Untuk mengembangkan project schedule ​ , serangkaian tugas ini harus didistribusikan ke ​timeline ​ proyek. Jika ​tools ​ yang digunakan adalah ​tools ​ otomatis, rangkaian tugas akan dimasukkan sebagai ​task network ​ .

Task network (​activitynetwork ​) adalah representasi grafik dari​ flow ​ tugasuntuksuatuproyek. Task network menggambarkan setiap ​task ​ , ketergantungannya dengan ​task lain, dan durasinya. ​Task network sering kali digunakan sebagai mekanisme untuk mengetahui urutan task dan dependensi yang nantinya akan menjadi input dari ​project scheduling tool yang otomatis. Task network tidak hanya digunakan untuk menghitung critical path ​ tapi juga termasuk timeline chart, dan berbagai informasi proyek.​ Critical path adalah rangkaian tugas yang menentukan durasi suatu proyek.

Saat membuat ​project schedule ​ , dimulai dengan serangkaian tugas yang akan dimasukkan sebagai​task network ​ . ​Effort ​ , durasi,dan tanggal mulai adalah input dari setiap tugas. Sebagai konsekuensi dari input ini, ​timeline chart ​ (​Gantt ​chart) dibuat. Setelah informasi yang diperlukan untuk membuat ​timeline chart ​ telah dimasukkan, kebanyakan dari ​software project scheduling tools akan memproduksi ​project tables ​ .​Project tables ​ adalah tabel yang berisi semua tugas, tanggal mulai dan berakhir yang direncanakan, dan informasi lainnya. Dengan ada ​project tables ​ , memungkinkan kita untuk melacak ​progress ​ .

Terdapat dua metode dari ​project scheduling yang dapat digunakan dalam pengembangan software ​ , yaitu ​program evaluation and review technique (PERT) dan ​critical path method (CPM) ​ . Keduanya memungkinakan kita untuk menentukan critical path ​, menetapkan perkiraan waktu paling mungkin untuk tugas dengan menerapkan model statistik, dan menghitung batas waktu untuk tugas tertentu.

Referensi: Pressman, R. S. (2007). A Practitioner’s Approach. ​Software Engineering ​
.
http://seu1.org/files/level4/IT-242/Software%20Engineering%20_%207th%20Edition.pdf

Author : Felix Valentino Ongkosutant, Jansen Guisaga, Leonardus Kevin Yobeth, Mesyella, Vicky Joe
Supervised by : Irma Kartika Wairooy, S.Kom., M.T.I