Detail Program - Software Development

Internship Program: Software Development

Selami proses penciptaan perangkat lunak dari ide hingga menjadi produk jadi bersama tim profesional di lingkungan kerja yang nyata.

Durasi

1 Tahun

Tipe

Junior Staff

Lokasi

WFO (Yogyakarta)

Periode

Jan - Des 2024

Deskripsi Program

Software Development adalah proses dimana perangkat lunak diciptakan. Ini mencakup berbagai aktivitas mulai dari ide awal, perencanaan, desain, pemrograman, pengujian, hingga pemeliharaan. Tujuannya adalah untuk memenuhi kebutuhan pengguna atau memecahkan masalah tertentu melalui aplikasi atau sistem yang dikembangkan.

Dalam mengembangkan perangkat lunak, ada suatu pendekatan sistematis yang dikenal dengan Software Development Life Cycle (SDLC). Ini adalah serangkaian langkah atau fase yang dilalui selama proses pembuatan atau pemeliharaan perangkat lunak.

Software Development Life Cycle (SDLC)

1.

Perencanaan (Planning)

Menentukan apa yang perlu dibuat, mengidentifikasi kebutuhan, dan menetapkan sumber daya.

2.

Analisis (Analysis)

Mengkaji kebutuhan pengguna secara mendalam, memastikan semua aspek fungsional dan non-fungsional.

3.

Desain (Design)

Mengembangkan blueprint teknis dari aplikasi atau sistem, mencakup antarmuka, basis data, dan arsitektur.

4.

Implementasi (Implementation)

Dikenal sebagai coding, di mana desain yang telah dibuat diwujudkan menjadi kode program.

5.

Pengujian (Testing)

Perangkat lunak diuji untuk memastikan bebas dari kesalahan dan memenuhi kebutuhan.

6.

Peluncuran (Deployment)

Setelah selesai diuji, perangkat lunak siap diluncurkan dan digunakan oleh pengguna.

Peran & Tanggung Jawab di Setiap Fase

Setiap fase dalam SDLC membutuhkan keahlian spesifik dari berbagai peran profesional. Berikut adalah kontribusi mereka dalam setiap tahapan pengembangan.

1. Planning (Perencanaan)

  • System Analyst: Memainkan peran penting dalam menentukan kebutuhan dan sasaran dari proyek perangkat lunak yang akan dikembangkan.

2. Analysis (Analisis)

  • System Analyst: Memastikan semua kebutuhan pengguna dan bisnis teridentifikasi dan didokumentasikan dengan baik.
  • UX Designer: Mulai memahami kebutuhan pengguna untuk mempersiapkan desain yang sesuai.

3. Design (Desain)

  • System Analyst: Bekerja bersama tim untuk memastikan spesifikasi teknis sesuai dengan kebutuhan bisnis.
  • UX Designer: Merancang tampilan antarmuka dan alur interaksi pengguna.
  • Database Administrator: Terlibat dalam merancang struktur basis data yang optimal.

4. Implementation (Penerapan)

  • Programmer/Developer: Mulai menulis kode berdasarkan desain yang sudah dibuat.
  • Database Administrator: Bertanggung jawab untuk mengatur dan memastikan basis data berfungsi dengan baik.

5. Testing (Pengujian)

  • Quality Assurance: Melakukan pengujian untuk memastikan kualitas dan fungsi sesuai kebutuhan serta bebas dari bug.
  • Cyber Security Specialist: Melakukan uji penetrasi untuk memastikan aplikasi aman dari ancaman.

6. Deployment (Peluncuran)

  • System Administrator: Bertanggung jawab untuk menyiapkan infrastruktur dan memastikan perangkat lunak dapat di-deploy dengan lancar.
  • Database Administrator: Memastikan basis data siap untuk produksi.
  • Cyber Security Specialist: Memastikan semua langkah keamanan telah diterapkan sebelum peluncuran.

7. Maintenance (Pemeliharaan)

  • Programmer/Developer: Memperbaiki bug atau menambahkan fitur baru berdasarkan feedback.
  • Quality Assurance: Melakukan pengujian ulang setelah pembaruan.
  • System Administrator: Memastikan layanan berjalan baik dan melakukan pembaruan.
  • Database Administrator: Melakukan backup reguler, pemulihan data, atau optimalisasi.
  • Cyber Security Specialist: Memantau potensi ancaman dan memastikan keamanan terus diperbarui.

Budaya DevOps

DevOps adalah suatu pendekatan atau budaya dalam pengembangan perangkat lunak yang menekankan kolaborasi antara tim pengembangan (Dev) dan tim operasi (Ops). Inti dari DevOps adalah mempercepat siklus pengembangan dan peluncuran sambil memastikan kualitas dan stabilitas.

DevOps Cycle Diagram
Planning

Mendorong feedback loop yang cepat melalui iterasi rilis yang lebih kecil & sering. Infrastruktur sebagai Kode (IaC) mulai dipertimbangkan.

Analysis

Tim Dev & Ops berkolaborasi erat sejak dini untuk memahami kebutuhan infrastruktur, keamanan, dan kinerja aplikasi.

Design

Desain tidak hanya fokus pada fitur, tapi juga pada keamanan & skalabilitas. Arsitektur mikroservis sering digunakan agar mudah dikelola.

Implementation

Menerapkan Continuous Integration (CI), di mana kode langsung diuji setelah commit. Proses build & test juga diotomatisasi.

Testing

Pengujian dilakukan secara otomatis & berkelanjutan (Continuous Testing). IaC dipakai untuk membuat lingkungan uji yang konsisten.

Deployment

Dengan Continuous Deployment (CD), kode yang lolos tes dapat dikirim ke produksi secara otomatis, seringkali menggunakan container (Docker).

Maintenance

Kinerja aplikasi dipantau secara ketat melalui monitoring dan log. Otomatisasi juga digunakan untuk pemulihan cepat saat terjadi masalah.

Tahapan Pendaftaran

Jadwal Akan Diumumkan

Pendaftaran

Mengisi form, seleksi administrasi, dan pengumuman.

Jadwal Akan Diumumkan

Tes Kompetensi

Penentuan studi kasus dan pengerjaan secara team work.

Jadwal Akan Diumumkan

Penentuan Penerimaan

Presentasi progress, penilaian individu, dan pengumuman.

Jadwal Akan Diumumkan

Penandatanganan Kontrak

Tanda tangan kontrak magang dan NDA.

Jadwal Akan Diumumkan

Bootcamp

Pembekalan intensif mencakup BPMN, UX, Backend, Frontend, Security, & DevOps.

Pendaftaran Segera Dibuka

Periode pendaftaran untuk program ini belum dibuka. Pantau terus halaman ini untuk informasi terbaru mengenai jadwal pendaftaran berikutnya!