Upload
others
View
5
Download
0
Embed Size (px)
Citation preview
TANTANGAN PENGEMBANGAN DAN PENGELOLAAN SOFTWAREDr. Noprianto
noprianto.com2020-Feb-17 [email protected]
TANTANGAN YANG MUNGKIN KITA HADAPI
A. PERANGKAT, AKSES INTERNET, PENGGUNA
▸ Pengguna berpotensi mengakses software dari berbagai perangkat: ponsel pintar, tablet, laptop, desktop, alat rumah tangga, perangkat dalam kendaraan, dan lainnya.
▸ Masing-masing perangkat memiliki kapabilitas yang bisa sangat berbeda.
▸ Perkembangan infrastruktur memungkinkan Internet semakin terjangkau: semakin banyak pengguna.
▸ Skalabilitas: seberapa software yang dikembangkan dapat menyesuaikan dengan jumlah pengguna?
�2
TANTANGAN YANG MUNGKIN KITA HADAPI
MARKET SHARE: DESKTOP - MOBILE - TABLET (INDONESIA, 2020-JAN)
�3
Data: https://gs.statcounter.com/platform-market-share/desktop-mobile-tablet/indonesia
0,55%
46,74% 52,71%
MobileDesktopTablet
TANTANGAN YANG MUNGKIN KITA HADAPI
MARKET SHARE: SISTEM OPERASI PERANGKAT MOBILE (INDONESIA, 2020-JAN)
�4
Data: https://gs.statcounter.com/os-market-share/mobile/indonesia
0,04%
0,05%
0,05%0,07%
6,62%
93,03%
Android iOS Nokia (unknown)Series 40 Samsung Unknown
TANTANGAN YANG MUNGKIN KITA HADAPI
MARKET SHARE: BROWSER (INDONESIA, 2020-JAN)
�5
Data: https://gs.statcounter.com/browser-market-share/all/indonesia
2,67%
3,34%4,19%
5,90%8,09%
73,52%
Chrome FirefoxSafari UC BrowserOpera Samsung Internet
TANTANGAN YANG MUNGKIN KITA HADAPI
JUMLAH PENGGUNA INTERNET DI INDONESIA (2018)
�6
Sumber: APJII
Populasi (juta)
Pengguna Internet (juta)
264,16 171,17
TANTANGAN YANG MUNGKIN KITA HADAPI
B. TEKNOLOGI PENGEMBANGAN SOFTWARE
�7
‣ Terdapat sejumlah bahasa pemrograman, virtual machine, pustaka, framework: lahir, berkembang, tidak lagi dikembangkan
‣ Kita mungkin sedang menggunakan teknologi tertentu yang pengembangannya dapat dihentikan dalam beberapa waktu ke depan
‣ Perkembangan teknologi tidak selalu menawarkan kompatibilitas
TANTANGAN YANG MUNGKIN KITA HADAPI
CERITA: PYTHON2 VS PYTHON3
�8
‣ Python 3 dirilis pertama kali pada 2008 dan merupakan versi yang tidak kompatibel dengan Python 2.
‣ EOL untuk Python 2.7 diundur sampai 1 Januari 2020.
‣ Apa pelajaran yang bisa kita dapatkan?
TANTANGAN YANG MUNGKIN KITA HADAPI
C. VENDOR LOCK-IN
�9
‣ Untuk mengurangi biaya pengembangan dan pemeliharaan, serta mempercepat waktu ke pasar, perusahaan dapat membeli layanan dari pihak lain
‣ Vendor lock-in dapat terjadi
‣ Apa yang dapat kita lakukan ketika vendor tidak lagi beroperasi atau layanan dihentikan oleh vendor?
TANTANGAN YANG MUNGKIN KITA HADAPI
D. KETIDAKSIAPAN SUMBER DAYA MANUSIA
�10
‣ Tidak mudah mengelola tim pengembang software dengan berbagai karakteristik
‣ Kombinasikan ini dengan jadwal pengembangan yang ketat, kurangnya pengujian, kurangnya disiplin, pemilihan teknologi yang kurang cocok, dan lainnya
TANTANGAN YANG MUNGKIN KITA HADAPI
CONTOH: DYNAMIC PROGRAMMING LANGUAGE
�11
Isi file test.py
APA YANG BISA KITA LAKUKAN
A. PERANGKAT, AKSES INTERNET, PENGGUNA
�12
‣ Berbagai perangkat: software dirancang dalam arsitektur multitier, dimana pada tier tertentu, API disediakan. API tersebut kemudian dapat digunakan oleh setiap perangkat, yang dapat memiliki kapabilitas yang berbeda-beda.
‣ HTTP digunakan sebagai protokol.
‣ Untuk mengantisipasi perangkat dengan kapabilitas yang terlalu terfragmentasi, fungsionalitas disediakan di sisi server, apabila dimungkinkan.
‣ Skalabilitas: software dirancang supaya application server tidak menyimpan data, sehingga dapat diatur skalanya secara horizontal, vertikal, atau kombinasinya.
‣ Fragmentasi perangkat: tool pengembangan cross-platform?
APA YANG BISA KITA LAKUKAN
GAMBARAN DASAR ARSITEKTUR
�13
Database as a Service (skala bisa diatur)
Berbagai perangkat yang berbeda kapabilitas
HTTP API
Platform as a Service (skala bisa diatur)
APA YANG BISA KITA LAKUKAN
CROSS-PLATFORM MOBILE/DESKTOP/WEB APPLICATION DEVELOPMENT
�14
Satu atau beberapa bahasa/teknologi
Aplikasi mobile berbagai OS
Aplikasi desktop
Aplikasi web
Diskusi: Bisakah kita memanfaatkan secara penuh kapabilitas yang disediakan oleh perangkat?
APA YANG BISA KITA LAKUKAN
B. TEKNOLOGI PENGEMBANGAN SOFTWARE
�15
‣ Perubahan dan inkompatibilitas:
‣ Microservices:
‣ Dampak perubahan/inkompatibilitas bisa diminimalisir
‣ Menggunakan teknologi yang sudah teruji, matang, kompatibel
‣ Menggunakan bahasa pemrograman tersendiri - yang pengembangannya dapat dikontrol - untuk kebutuhan tertentu
‣ Studi kasus: bahasa pemrograman Singkong
APA YANG BISA KITA LAKUKAN
C. VENDOR LOCK-IN
‣ Sebisa mungkin, gunakanlah layanan cloud computing dari penyedia yang telah teruji.
‣ Usahakan untuk memilih teknologi mendasar yang dapat di ‘install di server sendiri’, andaikata layanan tidak lagi disediakan.
‣ Atau, gunakanlah teknologi yang juga disediakan oleh vendor-vendor lain.
�16
APA YANG BISA KITA LAKUKAN
D. KETIDAKSIAPAN SUMBER DAYA MANUSIA
‣ Dari sisi teknis:
‣ Pilih teknologi yang dapat mengurangi dampak akibat: pemrograman yang ceroboh, pengujian yang kurang, dan lainnya
‣ Manfaatkan alat bantu seperti source code management dan code review
‣ Blue-Green deployment
�17
APA YANG BISA KITA LAKUKAN
STATIC VS DYNAMIC PROGRAMMING LANGUAGE
�18
Kompilasi gagal (kesalahan dicegah pada saat kompilasi)
APA YANG BISA KITA LAKUKAN
BLUE-GREEN DEPLOYMENT
�19
Produksi ProduksiAktif Menunggu
Router
APA YANG BISA KITA LAKUKAN
BLUE-GREEN DEPLOYMENT (KETIKA ADA VERSI BARU)
�20
Produksi ProduksiMenunggu Aktif
Router
Versi baru
APA YANG BISA KITA LAKUKAN
BLUE-GREEN DEPLOYMENT (ADA KENDALA PADA VERSI BARU)
�21
Produksi ProduksiAktif Menunggu
Router
Versi baru, terjadi kendala
TERIMA KASIH
�22