METODOLOGI MANAJEMEN PROYEK Proses pelaksanaan / executing project Oleh : Weda adistianaya dewa, S.kom., mmsi
Referensi “MANAJEMEN PROYEK SISTEM INFORMASI” OLEH RUDY TANTRA, PENERBIT ANDI YOGYAKARTA “MANAJEMEN PROYEK BERBASIS TI” OLEH IMAM HERIANTO DAN TOTOK TRIWIBOWA, PENERBIT INFORMATIKA BANDUNG
Pendahuluan Merupakan tindak lanjut dari apa yang telah dituangkan dalam perencanaan manajemen proyek. Pelaksanaan pekerjaan pengembangan ini pada dasarnya adalah membangun sistem informasi dengan deliverables berupa software dan bagian-bagian pendukungnya seperti dokumentasi sistem, dokumentasi pengembangan sampai kepada dokumen penuntun pengguna. Diperlukan prosedur kerja yang terorganisir dengan baik, yaitu WBS yang telah disusun pada fase perencanaan. Karena yang dibangun adalah sistem informasi, biasanya mengikuti sebuah metode.
4 Dimensi proyek People Product Process technology
Tujuan Project Execution Merealisasikan perencanaan proyek yang tertuang dalam perencanaan manajemen proyek. Mengkoordinasikan kinerja tim proyek dan juga mengoptimalkannya serta pemanfaatan sumberdaya non personil. Merealisasikan perubahan perencanaan proyek yang telah disetujui.
Mekanisme Project Execution Manajer proyek dan tim proyek membentuk kerja sama tim selama proyek berlangsung Manajer proyek dan tim proyek melaksanakan semua tugas yang sudah tertuang di dalam perencanaan manajemen proyek. Membuat laporan pelaksanaan proyek. Mendapatkan persetujuan untuk setiap fase pekerjaan
Requirement Desain sistem dan Software Pembangunan Software Quality Assurance (QA) Dokumentasi
1. Requirements Setelah memiliki dokumen System Requirements Specification (SRS) dan Project Scope document (PSD) sebagai penunjang langkah berikutnya yaitu desain sistem dan software.
2. Desain Sistem dan Software Spesifikasi fungsional dan teknis. Risiko dan Mitigasi. Desain Sistem. Pemodelan (Modelling). Desain Software. Unified Modelling Language (UML). Desain antarmuka pengguna. Desain Database.
Spesifikasi Fungsional dan Teknis Spesifikasi teknis dideskripsikan melalui Funcional Spesification Document (FSD). Dokumen ini menggambarkan bagaimana nantinya software akan berfungsi dan fungsi-fungsi apa yang harus dimilikinya agar dapat memenuhi requirements. Selain fungsional juga terdapat spesifikasi teknis yang dituangkan dalam dokumen software technical spesification (STS). STS mendeskripsikan tentang aspek teknis dari software yang hendak didesain seperti bahasa pemrogragaman, platform yang dipakai, database dan struktur data, koneksi software database, arsitektur software, topologi jaringan dan sebagainya.
Risiko dan Mitigasi Risiko kegagalan proyek akan semakin tinggi jika proses desain ini tidak dilakukan dengan tepat. Desain yang tidak dilakukan dengan baik akan berpotensi terhadap kegagalan deliverables yang merupakan hasil akhir dari proyek itu sendiri. Hambatan untuk mewujudkan desain menjadi sebuah software : Terlalu kompleks. Fungsi yang dibutuhkan tidak didukung oleh bahasa pemrograman yang digunakan. Menyulitkan pengguna akhir karena tampilan yang terlalu banyak.
Desain Sistem Dalam konteks manajemen proyek, desain sistem adalah bagian dari fase pengembangan yang menjadi dasar bagi kontruksi sistem yang akan dibangn. Desain sistem adalah proses untuk mendefinisikan arsitektur, komponen, modul, antarmuka dan data untuk memenuhi requirements.
Desain Sistem (Lanjutan) Ada beberapa metode untuk melakukan desain sistem, sistem terstruktur yaitu Yourdon System method (YSM). Metode ini menggunakan context diagram yang menggambarkan hasil analisis dalam bentuk sumber data, aliran dan batasan-batasan sistem. Kemudian desain sistem lebih diperinci dengan teknik-teknik tradisional seperti entity relationship diagram (ERD), data flow diagram (DFD), normalisasi, state transition diagram (STD) dsb. Metode analisis dan desain sistem yang berorientasi obyek (object oriented system and analysis and design method), alat bantu yang digunakan adalah unified modelling language (UML)
Desain Sistem (Lanjutan) Ada dua jenis desain yaitu logikal dan fisikal. Desain logikal adalah melakukan representasi abstrak sistem dengan diagram, gambar bagan sehingga bagaimana aliran data, input, output dari sistem dapat dipahami oleh developer. Desain fisikal adalah desain yang berkaitan dengan bagaimana proses input dan outpit sebenarnya dalam sistem. Misalnya bagaimana data di input dalam sistem, bagaimana melakukan verifikasi, bagaimana data diproses dan seperti apa penyajian output yang dihasilkannya.
Pemodelan (Modelling) Model adalah representasi abstrak dari sistem yang akan dibangun. Tujuan melakukan pemodelan bagi developer : Memahami bagaimana suatu proses bekerja dan asumsi-asumsi yang menjadi dasar bagaimana proses kerja tersebut. Menelusuri desain kembali sampai kepada requirements untuk memastikan bahwa mereka membangun sistem yang sesuai. Menentukan representasi dari keterhubungan antara komponen-komponen sistem sehingga lebih memudahkan dalam memahami sistem secara keseluruhan.
Pemodelan (Modelling) lanjutan... Faktor penghambat yang perlu diperhatikan dalam membentuk model sistem : Asumsi – mengurangi dugaan-dugaan dari berbagai kemungkinan untuk hal-hal yang belum diketahui. Simplifikasi – agar tidak terjebak dalam menyusun model yang terlalu kompleks. Batasan – yang melingkupi sistem sehingga model menjadi lebih terfokus dan tidak melebar kepada hal-hal yang tidak diperlukan. Hambatan – untuk menentukan sumberdaya dan dukungan dalam mewujudkan sistem yang sebenarnya. Pilihan – menentukan arsitektur yang akan digunakan seperti data, fungsi maupun teknologi.
Desain Software Aktivitas desain sofware adalah dengan menyusun bentuk representasi dari software yang akan digunakan, baik desain arsitektural maupun desain detail. Biasanya dalam melakukan pemodelan menggunakan flowchart atau UML. Konsep dasar dalam desain software adalah Abstraksi Coupling Cohesion Dekomposisi dan modularisasi Encapsulation Pemisahan antarmuka dan implementasi
Desain Software (lanjutan) Langkah-langkah dan standar agar desain dapat dilakukan dengan baik : 1. Benar-benar memahami jangka pendek maupun panjang dari proyek. 2. Tinjau desain dari berbagai sudut pandang. 3. Berhati-hatilah dengan jalan pintas. 4. Pastikan desain bersih dan sederhana.
Unified Modelling Language (UML) UML adalah bahasa spesifikasi standar untuk mendokumentasikan, menspesifikasikan dan membangun sistem software. UML adalah hasil pengembangan dari bahasa pemodelan berbasis objek.
Unified Modelling Language (UML) lanj... Ada sembilan diagram dalam UML Diagram use case. Diagram class. Diagram sequences. Diagram state chart. Diagram aktivitas. Diagram objek. Diagram kolaborasi. Diagram komponen. Diagram Deployment.
Unified Modelling Language (UML) lanj... Ada jenis benda dalam UML Class Interface Collaboration Actor. Use Case Activity Class. Component. Node. Interaction. State machine. Packages. Note.
Unified Modelling Language (UML) lanj... Jenis relasi dalam UML Depedency Association Generalization Realitation
Desain antarmuka pengguna Antarmuka adalah bagian dari produk software, tetapi di mata pengguna, antarmuka adalah produk software itu sendiri. Yang diharapkan pengguna adalah antarmuka yang efisien untuk menyelesaikan pekerjaannya saat menggunakan software tersebut.
Desain antarmuka pengguna Lanjutan... Keuntungan menerapkan desain antarmuka Menghasilkan software yang lebih baik. Meningkatkan kepuasan klien. Lebih fleksibel dalam memberikan respon terhadap umpan balik klien. Mempersingkat waktu siklus pengembangan software. Konsisten. Tentukan standar tampilan antarmuka. Ikuti standar industri. Berikan penjelasan aturan pemakaiannya.
Desain antarmuka pengguna Lanjutan... Dukungan baik pengguna awam maupun mahir. Tampilan objek. Navigasi yang mudah. Tentukan warna, kontras dan jenis huruf. Perataan tampilan. Tampilan hurf dan angka. Efisien. Tips. Bantuan.
Desain database Suatu sistem informasi bisnis pasti memerlukan database untuk menampung data yang dimasukkan oleh pengguna, kemudian mengolahnya dan memberikan informasi dalam bentuk laporan, grafik, analisa dsb. Selain untuk mengelola data, database yang digunakan juga harus memperhatikan kemampuan untuk melakukan koneksi, backup dan restore serta keamanan yang baik. Desain database adalah proses untuk menghasilkan model data dari database.
Desain database Lanjutan... Desain database baik akan : 1. Membagi informasi menjadi tabel-tabel yang berdasarkan subyk untuk mengurangi redudansi data. 2. Memiliki kemampuan untuk melakukan pemrosesan data dan keperluan laporan.
Desain database Lanjutan... RDBMS adalah suatu pemodelan database dengan menggunakan prinsip relasi antara satu informasi dengan informasi lainnya. Proses desain dengan RDBMS : Tentukan tujuan penggunaan database Temukan dan atur informasi yang diperlukan Bagikan informasi dalam bentuk tabel-tabel Ubah satuan informasi dalam bentuk kolom-kolom Tentukan kolom kunci utama Aplikasikan aturan normalisasi Pengaturan relasi antar tabel-tabel
3. Pembangunan Software Setelah seluruh desain selesai dilakukan, langkah selanjutnya yang merupakan langkah paling penting mewujudkan produk yang berhubungan langsung dengan klien yaitu membangun software.
Pemrograman Aktivitas pemrograman utamanya melibatkan programmer yang menerima deliverables dari proses desain untuk diwujudkan dalam bentuk software. Aktivitas pembangunan proyek sistem informasi : 1. Pemrograman 2. Integrasi sistem
1. Pemrograman a. Paradigma Pemrograman b. Kolaborasi c. Penyimpanan dan dokumentasi
a. Paradigma Pemrograman Pada era 80-an sistem operasi masih berbasis teks, maka pemrograman juga menggunakan alat bantu dan memeberikan hasil yang berbasis teks. Kemudian sistem operasi berbasis grafik, maka alat bantu dan teknik pemrograman mengalami perkembangan yang signifikan.
Structured Programming Prosedur yang banyak digunakan dari era 80-an adalah pemrograman terstruktur yaitu teknik pemrograman secara terstruktur dan top down tau bersusun secara hirarkis dari atas ke bawah, seperti terlihat dalam flowchart . Pemrograman terstruktur biasanya menerapkan 3 bentuk logika : Sekuens Seleksi Iterasi
Procedural Programming Untuk mengatasi skala pengembangan software yang semakin besar maka pemrograman terstruktur manggunakan teknik yang membagi-bagikan suatu program dalam prosedur-prosedur yang disebut pemrograman procedural.
Event driven Programming Dalam pemrograman event-driven, alur program ditentukan oleh event atau suatu peristiwayang terjadi karena adanya interaksi baik dari pengguna maupun program lain.
Object Oriented Programming Dalam pemrograman berorientasi objek, fitur-fitur yang digunakan adalah : Data abstraction Encapsulation Messaging Modularity Polymorphism Inheritance
Object Oriented Programming Lanjutan... Perbedaan Pemrograman prosedural dan berorientasi objek : Prosedural Berorientasi objek Prosedur Method Modul Objek Pemanggilan Prosedur Message Variabel Atribut
Extreme Programming Extreme Programming adalah suatu metodologi yang bertujuan untuk meningkatkan kualitas software dan kemampuan untuk merespon perubahan-perubahan pada requirements.
b. Kolaborasi Jika proyek yang dibangun adalah sistem manufaktur dan bukan hanya software produksi saja, atau membangun sistem ERP bukan hanya sistem penjualan saja, maka memerlukan satu tim programmer yang harus saling berbagi pekerjaan.
c. Penyimpanan dan dokumentasi Tujuannya agar : Setiap perkembangan dan perubahan dapat terdokumentasi dengan baik Manajer proyek dapat memantau perkembangan dalam pembangunan software dan melakukan tindakan yang diperlukan jika terjadi penyimpangan baik dalam jadwal maupun memenuhi requirements. Pengamanan source code agar tidak disalah gunakan oleh pihak-pihak yang tidak berkepentingan.
2. Integrasi Sistem Sebagai manajer proyek harus memastikan bahwa integrasi sistem sudah terbentuk sehingga semua requirements dalam desain telah diimplementasikan dengan lengkap. Integrasi sistem juga berarti bahwa modul utama dari software dapat memanggil modul-modul lainnya dalam sistem secara transparan serta setiap modul mengakses database yang sama atau setidaknya saling berelasi sebagai sistem.
Debugging Bug adalah kesalahan dalam program baik yang secara logika maupun teknis. Beberapa hal yang bisa menyebabkan kesalahan teknis : Programer menggunakan command yang salah atau tidak sesuai dengan konteksnya. Programer menggunakan command yang sudah tidak didukung oleh versi bahasa program yang digunakannya. Programer menggunakan tipe data yang tidak sesuai sehingga data yang diproses menjadi tidak valid.
Programmer Programmer harus mampu menerjemahkan requirements yang telah dituangkan dalam desain menjadi kode-kode program yang jika dikompilasi akan menjadi software yang merupakan inti dari sistem informasi, di mana software tersebut harus dapat digunakan secara efisien dengan fitur yang sesuai dengan fungsi yang diharapkan, tidak lebih dan tidak kurang.
4. Quality Assurance (QA) Dalam QA akan dilakukan pengujian sebelum masuk dalam fase delivery di mana software sudah diyakini sudah memenuhi user requirements. Kualitas yang harus menjadi perhatian : 1. Kualitas deliverables yaitu kualitas dari sistem informasi yang dihasilkan oleh pelaksanaan proyek. 2. Kualitas proyek yaitu kualitas yang berhubungan dengan pelaksanaan pekerjaan dalam proyek.
Quality Assurance (QA) Lanjutan... Rencana Kualitas Testing Metodologi Testing Strategi Testing Rencana Test
Rencana Kualitas Langkah-langkah untuk menyusun rencana kualitas : Menentukan sasaran. Menentukan ukuran dari apa yang dibangun. Pelaksanaan aktivitas untuk mengurangi kesalahan dalam software. Rencana kualitas harus meliputi elemen-elemen berikut ini : hal-hal apa saja yang harus melalui pemeriksaan kualitas. Cara apa yang terbaik untuk melakukan pemeriksaan kualitas. Kapan waktu untuk melaksanakan pemeriksaan kualitas. Siapa saja yang terlibat. Material apa saja yang akan digunakan.
Testing Hasil yang diharapkan adalah software bugs yang sudah diminimalisir dan memenuhi semua kriteria dalam requirements. Untuk melakukan testing, organisasi proyek harus memiliki tim yang melakukan tugas ini dan bekerja secara independen, sehingga hasil testing tidak akan dipengaruhi oleh pihak manapun.
Metodologi Testing Buat strategi testing. Buat rencana atau strategi testing. Lakukan testing.
Strategi Testing Strategi testing dibuat untuk semua tingkatan test. Tim testing akan melakukan analisa requirements, menyusun strategi testing dan membahas rencana dengan tim proyek. Untuk menyusun strategi testing dibutuhkan deskripsi hardware dan software termasuk juga alat bantu test, penjelasan tentang peran dan tanggung jawab dari semua yang terlibat dalam melakukan testing.
Rencana Test Testing Unit Testing integrasi sistem Testing Fungsional Testing kasus Testing Pararel/audit Testing usability. Testing end-to-end Testing regresi Testing Kinerja Testing beban
Rencana Test Lanjutan... 11. Testing instalasi 12. Testing keamanan 13. Testing recovery/error 14. Testing Kompatibilitas 15. Testing perbandingan 16. Testing Penerimaan 17. Testing Alpha 18. Testing Beta
Dokumentasi Dokumentasi memiliki arti penting untuk fungsi-fungsi berikut : Media komunikasi antara anggota tim proyek maupun dengan stakeholder lainnya. Tempat penyimpanan informasi yang diperlukan oleh tim yang akan melakukan pemeliharaan sistem. Memberikan informasi penggunaan dan administrasi sistem.
Dokumentasi Lanjutan... Dokumentasi Proses Dokumentasi Produk Kualitas Dokumen Standar Operating Procedure Disaster Recovery Plan
TERIMA KASIH