Software Engineering #Chapter 22 : Project Management – Risk Management

risk_management-removebg-preview

 

Hallo teman-teman Akhdani, aku mau sedikit sharing nih dari buku yang udah aku baca

Apa itu Project Management?
Project Management adalah metode penyelesaian proyek dengan melakukan proses initiating, planning, executing, control and monitoring, hingga closing untuk mencapai output/tujuan yang sudah ditentukan.

Dalam pengelolaan proyek dapat mengikuti panduan dari PMBOK Guide 4th Edition yang salah satu isinya ada Risk Management.

Apa itu Risk Management?

Risk Management adalah salah satu pekerjaan terpenting seorang Project Manager yang memikirkan kemungkinan terjadinya risiko dan konsekuensinya terhadap proyek. Risk Management dapat mengantisipasi risiko yang mungkin mempengaruhi jadwal proyek atau kualitas software yang sedang dikembangkan, kemudian mengambil tindakan untuk menghindari risiko tersebut.

Beberapa tahapan yang dapat dilakukan:

screenshot-2023-10-30-105801

  1. Risk Identification
    Pada tahapan ini tim berkumpul untuk bertukar pikiran mengenai kemungkinan risiko yang terjadi sehingga project manager dapat mengidentifikasi risiko berdasarkan pengalaman pada proyek sebelumnya.
    Sebagai titik awal untuk identifikasi risiko, ada 6 (enam) jenis risiko yang dapat dimasukkan dalam daftar risiko:
    a. Estimation
    b. Organizational
    c. People
    d. Requirements
    e. Technology
    f. Tools
  2. Risk Analysis
    Pada tahapan ini project manager harus mempertimbangkan setiap risiko yang teridentifikasi dan mengambil tindakan penilaian tentang kemungkinan dan keseriusan risiko tersebut. Project manager tidak mungkin membuat penilaian numerik yang tepat mengenai probabilitas dan keseriusan setiap risiko, sehingga dapat dilakukan penilaian dengan cara berikut ini:
    a. Kemungkinan risiko dapat dinilai sebagai tidak signifikan (rendah, sedang, tinggi, atau sangat tinggi).
    b. Dampak risiko dapat dinilai sebagai bencana besar (mengancam kelangsungan hidup proyek), serius (akan menyebabkan penundaan besar), dapat ditoleransi (keterlambatan akan terjadi kontingensi yang diperbolehkan), atau tidak signifikan.
  3. Risk Planning
    Pada tahapan ini project manager mengembangkan strategi untuk mengelola risiko-risiko utama yang mengancam proyek. Untuk setiap risiko, project manager harus memikirkan tindakan yang memungkinkan dalam meminimalisir gangguan terhadap proyek jika masalah yang diidentifikasi dalam risiko tersebut terjadi.
  4. Risk Monitoring
    Pada tahapan ini project manager harus memantau risiko secara teratur di semua tahapan proyek, mempertimbangkan dan mendiskusikan setiap risiko utama secara terpisah, memutuskan apakah risiko tersebut lebih besar atau lebih kecil kemungkinannya untuk timbul dan apakah konsekuensi risiko telah berubah.

Sehingga dapat disimpulkan untuk pengajuan proposal manajemen proyek bagian Risk Management tertulis seperti berikut ini: 

421315

Mengenal Business Intelligence

Cover BI

Halo Sobat Akhdani! Di era teknologi saat ini, para pelaku usaha mulai menggunakan Businesss Intelligence sebagai tools untuk memonitoring performa bisnisnya. Secara umum, Businesss Intelligence dapat membantu mengumpulkan informasi dari berbagai sumber, yang kemudian disimpan, diolah dan diproses menjadi data visual. Untuk mengenal lebih dalam apa itu BI dan bagaimana cara kerjanya, mari simak artikel berikut ini!

Apa itu Business Intelligence?

Business Intelligence merupakan bentuk pengolahan data menggunakan model matematis dan analitis yang kemudian akan menghasilkan informasi untuk memudahkan perusahaan dalam pengambilan keputusan pada proses bisnis yang dijalankan.

Dalam artian lain, BI dapat membantu perusahaan melihat secara rinci dan real-time kondisi bisnis yang sedang berjalan saat ini, apakah sedang mengalami penurunan, peningkatan, atau bahkan stagnan. BI juga dapat membantu menyajikan informasi secara lebih ringkas, sehingga perusahaan dapat mengambil langkah lebih cepat dan tepat untuk perencanaan bisnis kedepannya.

BI

Komponen Business Intelligence

Business Intelligence terdiri atas beberapa komponen pembentuk, antara lain:

  • OLAP (On-line Analytical Processing)

OLAP melakukan query data dari berbagai sumber untuk menghasilkan berbagai sudut pandang. Dengan kata lain, BI menggunakan OLAP untuk menggabungkan dan mengelompokkan data ke dalam beberapa kategori untuk memberikan informasi yang lebih ringkas dalam bentuk pelaporan, analisis, pemodelan, dan perencanaan. Beberapa operasi OLAP yang digunakan adalah roll up, drill down, slice and dice, dan pivot.

  • Analisis lanjutan

BI menerapkan teknik machine learning, otomasi proses bisnis, teknik statistik tren, mengenali pola, karakteristik, serta menganalisa anomali dari berbagai sumber data.

  • Manajemen Kinerja Perusahaan

Peran utama BI adalah integrasi dari beberapa data untuk menghasilkan informasi kinerja bisnis. Dalam komponen ini, BI berperan untuk meningkatkan kinerja perusahaan dengan melacak fluktuasi pasar, menganalisis tren jangka pendek dan jangka panjang, serta menciptakan peluang investasi

Cara kerja Business Intelligence

Untuk menghasilkan sebuah data visual berbentuk laporan, BI perlu melewati beberapa proses seperti pengumpulan data, pemrosesan dan penyimpanan data, serta analisis dan penyajian.

konsep BI

Sumber: Pengantar BI dalam Bisnis

  • Pengumpulan data

Pada tahapan ini, BI akan melakukan ekstraksi pada data-data “mentah” yang telah tercatat pada database, seperti data penjualan, laporan laba rugi, penggajian, dan lain-lain sebelum disimpan dan diintegrasikan antar satu dengan yang lain.

  • Penyimpanan pada Data Warehouse

Data mentah yang telah dikumpulkan berikutnya akan disimpan dalam bentuk Data Warehouse untuk dilakukan proses integrasi dari beragam database yang ada.

  • Akses dan Analisis Data

Setelah proses integrasi data, peran BI berikutnya adalah mengakses informasi dari Data Warehouse untuk kemudian dianalisa dan diinterpretasikan dalam bentuk tren, pola, dan menyajikannya dengan bentuk yang lebih ringkas.

  • Pembuatan Laporan

Dari hasil analisa dan interpretasi data tersebut, dilakukan proses pembuatan laporan yang nantinya akan menampilkan data visual beserta informasi pendukung agar pengguna dapat lebih mudah memahami data yang telah diolah.

Aplikasi Business Intelligence

Nah, berikut ini terdapat beberapa rekomendasi aplikasi yang dapat mendukung penerapan Business Intelligence, antara lain:

  1. Microsoft Power BI
  2. Tableau
  3. Oracle BI

 


Referensi:
Business Intelegent (Pengantar Business Intelligence dalam Bisnis)
PT. Sonpedia Publishing Indonesia
Bagian 1 - Pengenalan dan Konsep Dasar Business Intellegence

Keterkaitan Sistem Failover dengan Downtime Disaster Recovery Planing

hallo – hallo Sahabat Akhdani, aku mau sedikit sharing nih dari jurnal yang udah aku baca

Apa itu Disaster Recovery Planning??

Disaster Recovery Planning  itu adalah perencanaan untuk pengelolaan secara rasional dan cost-effective bencana terhadap sistem informasi yang akan dan telah terjadi. 

Apa itu Failover??

Failover itu adalah sebuah metode operasional backup yang dijalankan secara otomatis. Kondisi sistem yang digunakan untuk failover harus dalam posisi standby baik itu database, server ataupun jaringan. Dalam proses kerjanya failover system akan bekerja secara smooth berdasarkan permintaan yang muncul setelah diterima indikasi – indikasi sistem utama mengalami downtime.

Jadi, apa hubungannya data dengan Disaster Recovery Planning  dan Failover??

Data tidak hanya digunakan sebagai media untuk pertukaran informasi melainkan juga sebagai alat komunikasi antar perangkat yang sudah diintegrasikan. Data menjadi kebutuhan yang penting, tidak terbayangkan bagaimana data hilang atau tidak dapat diakses lagi. Beberapa sebab data tidak dapat diakses seperti data corrupt atau bisa juga data mengalami gangguan saat akan diakses, akses gangguan bisa berasal dari koneksi jaringan bisa juga berasal dari server dari data tersebut. Bahaya yang paling besar adalah bencana. Jika bencana tersebut terjadi menyebabkan banyak data hilang, maka dari itulah Disaster Recovery Planning diperlukan. Waktu downtime menjadi penentu apakah suatu DRP efektif atau tidak. Sehingga waktu downtime permasalahan ketersediaan data server erat kaitannya dengan high availability  dengan protokol heartbeat

Protokol heartbeat digunakan untuk sistem failover dari server web server. Selain failover web server, proses backup dan restore database server melibatkan backup dari database server utama, untuk restore akan menggunakan differential backup. Sinkronisasi server dilakukan dengan rsync. Perintah rsync dikombinasikan dengan crontab untuk proses penjadwalan sedangkan proses restore pada server backup bergantung pada waktu pemindahan data dari server utama dan proses backup pada server utama itu sendiri. Hasil pengujian menunjukkan bahwa sinergi dari sistem failover dan replikasi server mereduksi waktu downtime untuk link server efektif diterapkan pada suatu DRP dengan mereduksi waktu downtime jika dibandingkan dengan DRP yang dilakukan secara manual.

Downtime artinya erat kaitannya dengan ketersedian website yang selalu dapat diakses kapanpun dan dimanapun, sangat beresiko jika website tersebut mengalami error atau tidak dapat diakses ini lah fungsi dari high availability yang perlu ada pada system dari website tersebut. Proses backup ataupun restore pada suatu database sudah wajar dilakukan, baik untuk keperluan pemindahan database, untuk update aplikasi, untuk migrasi server, ataupun pengambilan data agar tidak mengganggu proses yang ada di suatu perusahaan.

Database memiliki beberapa jenis, seperti MySQL, MSSQL, Postgree, Oracle Database, sedangkan layanan cloud juga saat ini telah banyak tersedia contohnya Microsoft Azure dan Amazon Web Service (AWS). Selain backup otomatis juga tidak lupa ada fitur backup manual yang bisa dilakukan dengan mengakses menu task selanjutnya pilih backup atau restore. Pada backup database SQL server ini bisa dilakukan back up full artinya backup dilakukan dengan membackup seluruh data yang ada mulai dari database di inisialisasi sedangkan terdapat differential/incremental backup dimana backup ini hanya meliputi tambahan data dari database tersebut. Kedua metode backup database ini sudah meliputi transaksi dan juga log pada database yang akan di backup. Berikut adalah gambar detail backup database server.

diagram-tanpa-judul-drawio-1

 

 

Referensi :A.P. Wahyu Ari Yuliono, " Sinergi Replikasi Server dan Ssitem Failover pada Datavase untuk Mereduksi Downtime Disaster REcovery Plning ( DRO)," Journal of Informatics and Computer Science, vol.03,2021

Meningkatkan User Interface dan User Experience (UI/UX) melalui Pendekatan Berbasis Pengguna

user-1

Pengembangan aplikasi yang sukses tidak hanya bergantung pada teknologi canggih, tetapi juga pada kemampuan untuk memahami, menghormati, dan memenuhi kebutuhan pengguna. Salah satu pendekatan yang fading efektif dalam mencapai tujuan ini adalah Metode User Centered Design( UCD). UCD adalah kerangka kerja yang difokuskan pada pengguna dalam pengembangan tampilan antarmuka aplikasi. Pada kesempatan kali ini ARS Mania akan membahas tentang metode UCD dan mengapa ini sangat penting dalam menciptakan aplikasi yang sukses.

Berdasarkan penelitian yang dilakukan oleh (Kaligis & Fatri, 2020), berikut adalah penjelasan mengenai User Centered Design (UCD).

Apa Itu User Centered Design?

Menurut ISO 9241- 210 yang mengatur tentang Prinsip- prinsip Ergonomi Antarmuka Manusia Sistem Interaktif, metode UCD merupakan pendekatan dalam pengembangan sistem secara interaktif dengan tujuan untuk mengembangkan sistem yang berguna bagi penggunanya. UCD menempatkan pengguna sebagai pusat dari proses desain, dan berfokus pada pemahaman mendalam tentang kebutuhan, dan pengalaman pengguna. Pada metode pengembangan aplikasi, UCD diterapkan pada tahap perencanaan, perancangan, dan pengujian.

Tahapan Metode User Centered Design

the-user-centred-design-process-according-to-iso-9241-21020101. Understand and Specify the Context of Use (Memahami dan Menentukan Konteks Penggunaan)

Pada tahapan ini kita melakukan identifikasi yang berfokus pada kondisi siapa yang akan menggunakan sistem, di mana mereka akan menggunakannya dan apa yang menjadi alasan pengguna menggunakan sistem. Kita mencoba memahami apa yang mereka butuhkan dari sistem tersebut

2. Specify the User Requirements (Menentukan Kebutuhan Pengguna)

Setelah kita tahu siapa pengguna, di mana sistem akan digunakan, dan mengapa pengguna menggunakan sistem, kita menuliskan dengan jelas apa yang pengguna butuhkan dari sistem ini. Kita menentukan apa tugas yang harus mereka lakukan dan apa keinginan mereka.

3. Produce Design Solutions to Meet User Requirements (Menghasilkan Solusi Desain yang Memenuhi Kebutuhan Pengguna)

Dalam tahap ini, kita mulai membuat desain sistem. Desain ini harus mencakup antarmuka yang memudahkan pengguna untuk mengoperasikan sistem dan mencapai tujuan mereka. Pada tahapan ini juga kita berfokus pada untuk meningkatkan user experinece.

4. Evaluate the Design Against Requirements (Evaluasi Desain Berdasarkan Kebutuhan)

Setelah desain dibuat, kita menguji desain ini dengan pengguna. Pengguna mencoba sistem dan memberikan masukan atau feedback. Dari masukan tersebut akan dilakukan perbaikan secara berulang hingga memenuhi ekspektasi pengguna, karena pada metode ini berjalan secara iteratif.

Kesimpulan

Metode User-Centered Design (UCD) adalah pendekatan yang kritis dalam pengembangan aplikasi yang bertujuan untuk meningkatkan pengalaman pengguna. Dengan memahami dan memenuhi kebutuhan pengguna, aplikasi dapat menjadi lebih efisien, efektif, dan memuaskan. UCD membantu mengurangi risiko kesalahan desain dan meningkatkan peluang kesuksesan aplikasi. Oleh karena itu, pengguna seharusnya selalu menjadi fokus utama dalam pengembangan aplikasi yang sukses.

Referensi : 
¹Kaligis, D.L. & Fatri R.R. (2020). Pengembangan Tampilan Antar Muka Aplikasi Survei Berbasis Web Dengan Metode User Centered Design. Jurnal Sistem Informasi, Teknologi Informatika dan Komputer, Vol 10. No 2, Hal 106-114.
²Saputri, I.S.Y. Fadhli, M. & Surya, I. (2017). Penerapan Metode UCD (User Centered Design) pada E-Commerce Putri Intan Shop Berbasis Web. Jurnal Nasional Teknologi dan Sistem Informasi. Vol 03. No 02. 269-278.

Understanding Requirement Engineering

cover-1

Fase Requirement Engineering merupakan proses memahami kebutuhan sistem, baik dari segi bisnis, kebutuhan fungsional, ataupun dari segi interaksi pengguna dengan sistem nantinya.

Tujuan dilakukannya fase Requirement Engineering adalah untuk menyamakan presepsi setiap pemangku kepentingan yang terlibat, agar dapat menghasilkan solusi yang efektif dan efisien.

Fase ini terdiri dari beberapa tahapan:

  1. Identifikasi permasalahan
  2. Analisa kebutuhan pengguna
  3. Klasifikasi kebutuhan pengguna
  4. Pemodelan sistem
  5. Negosiasi dan spesifikasi kebutuhan
  6. Validasi kebutuhan
Identifikasi Permasalahan

Tahapan ini merupakan awal dari proses Requirement Engineering. Identifikasi permasalahan biasanya dilakukan menggunakan teknik kolaborasi meeting yang akan dihadiri oleh pihak user atau pengguna, serta vendor atau tim yang akan melakukan pengembangan sistem. Tahapan ini dapat juga disebut Requirement Gathering.

Tujuan utama dari Requirement Gathering adalah memahami permasalahan yang dihadapi oleh user yang kemudian dilanjutkan dengan penawaran solusi secara garis besar.

Analisa Kebutuhan Pengguna

Tahapan ini merupakan tindak lanjut atas informasi yang telah diperoleh pada tahap sebelumnya. Pemasalahan akan dipetakan menjadi poin-poin kebutuhan yang nantinya akan direalisasikan dalam bentuk fitur-fitur pada sistem yang dikembangkan.

Klasifikasi Kebutuhan Pengguna

Setelah diperoleh daftar kebutuhan pengguna, maka selanjutnya akan dilakukan klasifikasi kebutuhan berdasarkan level kepentingannya, yaitu:

  1. Normal Requirement (Kebutuhan objektif sesuai dengan permintaan user)
  2. Expected Requirement (Kebutuhan dasar sebuah sistem)
  3. Exciting Requirement (Kebutuhan tambahan yang berada di luar ekspektasi user)

Klasifikasi kebutuhan dilakukan untuk memudahkan tim pengembang dalam menentukan prioritas ketika proses pengerjaan nantinya.

Pemodelan Sistem

Tahapan ini bertujuan untuk menggambarkan sistem dalam bentuk dokumen teknis untuk memperjelas elemen apa saja yang dibutuhkan, bagaimana hubungan antar entitas, serta bagaimana behavior atau perilaku sistem atas berbagai kondisi yang diminta oleh setiap aktor.

Pemodelan dapat dilakukan menggunakan Use Case Skenario ataupun Use Case Diagram, UML, Class Diagram, ataupun Prototype sistem.

Negosiasi dan Spesifikasi Kebutuhan

Setelah dilakukan pemodelan, gambaran alur serta fungsional sistem akan semakin jelas. Tahapan berikutnya adalah melakukan diskusi dan negosiasi antara vendor dan user untuk menentukan prioritas pada proses pengembangan, biaya yang dibutuhkan, risiko yang akan ditimbulkan, serta kemungkinan untuk menggabungkan, memodifikasi atau bahkan mengeliminasi kebutuhan-kebutuhan yang telah dituliskan di awal agar mencapai kesepakatan bersama.

Hasil terbaik negosiasi adalah terbentuknya Project Plan dimana pihak user dapat memperoleh sistem yang diinginkan sesuai spesifikasi yang telah diminta, dan pihak vendor dapat bekerja dengan realistis, mendapatkan upah yang sesuai, serta deadline yang wajar.

Validasi Kebutuhan

Setelah proses negosiasi menghasilkan kesepakatan bersama, maka tahapan berikutnya adalah proses validasi dari kedua belah pihak yaitu user dan vendor. Hal ini dilakukan untuk mencegah kesalahan interpretasi, kurangnya informasi, inkonsistensi, serta kemungkinan tidak terpenuhinya kebutuhan yang telah disepakati di awal.

Jika seluruh informasi telah dinyatakan valid, maka dilanjutkan dengan proses pengembangan sistem sesuai dengan kebutuhan yang telah dituliskan dalam dokumen Requirement Engineering.

Dalam beberapa kasus, proses Requirement Engineering dapat berlangsung secara paralel atau beriringan dengan proses pengembangan sistem, tergantung pada kebutuhan setiap projectnya. Semakin banyak pemangku kepentingan yang terlibat, maka akan bertambah pula kebutuhan yang harus diidentifikasi. Maka dibutuhkan kemampuan manajemen informasi dan pendokumentasian yang baik, agar memudahkan pelacakan perubahan sepanjang proses pengembangan.

Beberapa kendala yang memungkinkan terjadi pada proses Requirement Engineering adalah:

  1. User kesulitan dalam mengkomunikasikan kebutuhannya.
  2. Terlalu banyak pemangku kepentingan yang terlibat, sehingga menyulitkan dalam proses pengambilan keputusan.
  3. Ketidaksesuaian antara permintaan, deadline, serta budget yang ditawarkan.

It’s your worst nightmare. A customer walks into your office, sits down, looks you straight in the eye, and says, “I know you think you understand what I said, but what you don’t understand is what I said is not what I meant.” Invariably, this happens late -Ralph Young

Reference: Software Engineering A Practitioner’s Approach / Roger S. Pressman / Seventh Edition

Software Engineering #Chapter 3 – Agile Software Development

blog-removebg-preview

Ringkasan Agile Software Development
Metode agile adalah metode pengembangan berulang yang berfokus pada pengurangan biaya overhead dan proses dokumentasi serta pengiriman perangkat lunak tambahan. Metode ini cocok untuk pengembangan aplikasi dimana persyaratan sistem biasanya berubah dengan cepat, kemudian mengusulkan persyaratan baru dan perubahan untuk disertakan dalam iterasi sistem selanjutnya selama proses pengembangan.

Scrum merupakan metode agile yang telah muncul sebagai metode yang paling banyak digunakan. Proses scrum atau siklus sprint menghasilkan peningkatan produk dari setiap iterasi proses, kemudian dapat dikirimkan ke pelanggan. Titik awal siklus sprint scrum adalah product backlog. Product backlog merupakan daftar dari item seperti fitur produk, dokumen requirement, daftar cerita pengguna, atau deskripsi lain dari software yang akan dikembangkan oleh tim Scrum. Kemudian seluruh tim dilibatkan dalam memilih item mana yang memiliki prioritas tertinggi dan memperkirakan waktu yang dibutuhkan untuk menyelesaikan setiap sprint.

Dalam berbagai kisah sukses Scrum (Schatz and Abdelshafi 2005; Mulder and van Vliet 2008; Bellouiti 2009), hal-hal yang disukai pengguna tentang metode Scrum adalah:

  1. Produk dipecah menjadi serangkaian bagian yang dapat dikelola bersamaan dan dipahami oleh para pemangku kepentingan.
  2. Perubahan requirement saat pengembangan software tidak menghambat kemajuan progress.
  3. Seluruh tim dapat melihat progress pengerjaan produk, sehingga komunikasi dan semangat tim meningkat.
  4. Pelanggan melihat kemajuan progress, deliverable tepat waktu, dan mendapatkan feedback tentang produk dengan jangka waktu yang cukup pendek.
  5. Kepercayaan antara pelanggan dan pengembang terjalin, dimana setiap pelanggan mengharapkan produk berhasil dan sesuai dengan yang diharapkan.

Diketahui sebagian besar software engineering melakukan pemeliharaan dan pengembangan dari sistem yang ada. Berikut adalah keunggulan pada metode agile software development:

  1. Up to date, karena lebih fleksibel dan menerima perubahan berkelanjutan.
  2. Resource yang dibutuhkan tidak terlalu banyak.
  3. Alur kerja lebih singkat dan efisien,  sehingga kinerja tim menjadi lebih stabil.
  4. Interaksi antara client dan developer menjadi lebih intens dan responsif terhadap kebutuhan pengembangan software.

Tetapi bagaimana jika business requirement saat pemeliharaan perangkat lunak melibatkan sistem kustom yang harus diubah, tidak ada konsensus yang jelas mengenai kesesuaiannya?
Tiga jenis masalah dapat terjadi:

  1. Kurangnya dokumentasi produk dari pembangunan perangkat lunak sebelumnya
  2. Menjaga keterlibatan pelanggan dalam proses pengembangan
  3. Tim pengembangan harus dapat memahami perangkat lunak sebelumnya

Kesimpulan
Menurut saya buku ini sangat menarik untuk pembaca yang ingin mengetahui teknik agile development seperti user stories, refactoring, pair programming and test-first development. Pada buku ini pembaca juga dapat memahami perbedaan antara metode agile software development dengan plan-driven development, dan isu-isu pada scaling agile methods.