noprianto-tantangan pengembangan dan pengelolaan software · 2020. 6. 6. · TANTANGAN YANG MUNGKIN...

22
TANTANGAN PENGEMBANGAN DAN PENGELOLAAN SOFTWARE Dr. Noprianto noprianto.com 2020-Feb-17 [email protected]

Transcript of noprianto-tantangan pengembangan dan pengelolaan software · 2020. 6. 6. · TANTANGAN YANG MUNGKIN...

Page 1: noprianto-tantangan pengembangan dan pengelolaan software · 2020. 6. 6. · TANTANGAN YANG MUNGKIN KITA HADAPI A. PERANGKAT, AKSES INTERNET, PENGGUNA Pengguna berpotensi mengakses

TANTANGAN PENGEMBANGAN DAN PENGELOLAAN SOFTWAREDr. Noprianto

noprianto.com2020-Feb-17 [email protected]

Page 2: noprianto-tantangan pengembangan dan pengelolaan software · 2020. 6. 6. · TANTANGAN YANG MUNGKIN KITA HADAPI A. PERANGKAT, AKSES INTERNET, PENGGUNA Pengguna berpotensi mengakses

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

Page 3: noprianto-tantangan pengembangan dan pengelolaan software · 2020. 6. 6. · TANTANGAN YANG MUNGKIN KITA HADAPI A. PERANGKAT, AKSES INTERNET, PENGGUNA Pengguna berpotensi mengakses

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

Page 4: noprianto-tantangan pengembangan dan pengelolaan software · 2020. 6. 6. · TANTANGAN YANG MUNGKIN KITA HADAPI A. PERANGKAT, AKSES INTERNET, PENGGUNA Pengguna berpotensi mengakses

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

Page 5: noprianto-tantangan pengembangan dan pengelolaan software · 2020. 6. 6. · TANTANGAN YANG MUNGKIN KITA HADAPI A. PERANGKAT, AKSES INTERNET, PENGGUNA Pengguna berpotensi mengakses

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

Page 6: noprianto-tantangan pengembangan dan pengelolaan software · 2020. 6. 6. · TANTANGAN YANG MUNGKIN KITA HADAPI A. PERANGKAT, AKSES INTERNET, PENGGUNA Pengguna berpotensi mengakses

TANTANGAN YANG MUNGKIN KITA HADAPI

JUMLAH PENGGUNA INTERNET DI INDONESIA (2018)

�6

Sumber: APJII

Populasi (juta)

Pengguna Internet (juta)

264,16 171,17

Page 7: noprianto-tantangan pengembangan dan pengelolaan software · 2020. 6. 6. · TANTANGAN YANG MUNGKIN KITA HADAPI A. PERANGKAT, AKSES INTERNET, PENGGUNA Pengguna berpotensi mengakses

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

Page 8: noprianto-tantangan pengembangan dan pengelolaan software · 2020. 6. 6. · TANTANGAN YANG MUNGKIN KITA HADAPI A. PERANGKAT, AKSES INTERNET, PENGGUNA Pengguna berpotensi mengakses

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?

Page 9: noprianto-tantangan pengembangan dan pengelolaan software · 2020. 6. 6. · TANTANGAN YANG MUNGKIN KITA HADAPI A. PERANGKAT, AKSES INTERNET, PENGGUNA Pengguna berpotensi mengakses

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?

Page 10: noprianto-tantangan pengembangan dan pengelolaan software · 2020. 6. 6. · TANTANGAN YANG MUNGKIN KITA HADAPI A. PERANGKAT, AKSES INTERNET, PENGGUNA Pengguna berpotensi mengakses

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

Page 11: noprianto-tantangan pengembangan dan pengelolaan software · 2020. 6. 6. · TANTANGAN YANG MUNGKIN KITA HADAPI A. PERANGKAT, AKSES INTERNET, PENGGUNA Pengguna berpotensi mengakses

TANTANGAN YANG MUNGKIN KITA HADAPI

CONTOH: DYNAMIC PROGRAMMING LANGUAGE

�11

Isi file test.py

Page 12: noprianto-tantangan pengembangan dan pengelolaan software · 2020. 6. 6. · TANTANGAN YANG MUNGKIN KITA HADAPI A. PERANGKAT, AKSES INTERNET, PENGGUNA Pengguna berpotensi mengakses

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?

Page 13: noprianto-tantangan pengembangan dan pengelolaan software · 2020. 6. 6. · TANTANGAN YANG MUNGKIN KITA HADAPI A. PERANGKAT, AKSES INTERNET, PENGGUNA Pengguna berpotensi mengakses

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)

Page 14: noprianto-tantangan pengembangan dan pengelolaan software · 2020. 6. 6. · TANTANGAN YANG MUNGKIN KITA HADAPI A. PERANGKAT, AKSES INTERNET, PENGGUNA Pengguna berpotensi mengakses

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?

Page 15: noprianto-tantangan pengembangan dan pengelolaan software · 2020. 6. 6. · TANTANGAN YANG MUNGKIN KITA HADAPI A. PERANGKAT, AKSES INTERNET, PENGGUNA Pengguna berpotensi mengakses

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

Page 16: noprianto-tantangan pengembangan dan pengelolaan software · 2020. 6. 6. · TANTANGAN YANG MUNGKIN KITA HADAPI A. PERANGKAT, AKSES INTERNET, PENGGUNA Pengguna berpotensi mengakses

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

Page 17: noprianto-tantangan pengembangan dan pengelolaan software · 2020. 6. 6. · TANTANGAN YANG MUNGKIN KITA HADAPI A. PERANGKAT, AKSES INTERNET, PENGGUNA Pengguna berpotensi mengakses

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

Page 18: noprianto-tantangan pengembangan dan pengelolaan software · 2020. 6. 6. · TANTANGAN YANG MUNGKIN KITA HADAPI A. PERANGKAT, AKSES INTERNET, PENGGUNA Pengguna berpotensi mengakses

APA YANG BISA KITA LAKUKAN

STATIC VS DYNAMIC PROGRAMMING LANGUAGE

�18

Kompilasi gagal (kesalahan dicegah pada saat kompilasi)

Page 19: noprianto-tantangan pengembangan dan pengelolaan software · 2020. 6. 6. · TANTANGAN YANG MUNGKIN KITA HADAPI A. PERANGKAT, AKSES INTERNET, PENGGUNA Pengguna berpotensi mengakses

APA YANG BISA KITA LAKUKAN

BLUE-GREEN DEPLOYMENT

�19

Produksi ProduksiAktif Menunggu

Router

Page 20: noprianto-tantangan pengembangan dan pengelolaan software · 2020. 6. 6. · TANTANGAN YANG MUNGKIN KITA HADAPI A. PERANGKAT, AKSES INTERNET, PENGGUNA Pengguna berpotensi mengakses

APA YANG BISA KITA LAKUKAN

BLUE-GREEN DEPLOYMENT (KETIKA ADA VERSI BARU)

�20

Produksi ProduksiMenunggu Aktif

Router

Versi baru

Page 21: noprianto-tantangan pengembangan dan pengelolaan software · 2020. 6. 6. · TANTANGAN YANG MUNGKIN KITA HADAPI A. PERANGKAT, AKSES INTERNET, PENGGUNA Pengguna berpotensi mengakses

APA YANG BISA KITA LAKUKAN

BLUE-GREEN DEPLOYMENT (ADA KENDALA PADA VERSI BARU)

�21

Produksi ProduksiAktif Menunggu

Router

Versi baru, terjadi kendala

Page 22: noprianto-tantangan pengembangan dan pengelolaan software · 2020. 6. 6. · TANTANGAN YANG MUNGKIN KITA HADAPI A. PERANGKAT, AKSES INTERNET, PENGGUNA Pengguna berpotensi mengakses

TERIMA KASIH

�22