Information Technology Infrastructure Library (ITIL)

  • Rangkaian konsep dan teknik pengelolaan infrastruktur, pengembangan, serta operasi TI.
  • Best practice berikut daftar cek, tugas, serta prosedur yang menyeluruh yang dapat disesuaikan dengan segala jenis organisasi TI.

ITIL v2

  • Dikenal dengan ITSM (IT Service Management).
    • Service delivery (antar layanan).
    • Service support (dukungan layanan).

ITIL v3

  • Menekankan pada pengelolaan siklus hidup layanan yang disediakan oleh TI,
  • Lima bagian tersebut yang biasa disebut sebagai core guidance publications:
    1. Service strategy.
    2. Service design.
    3. Service transition.
    4. Service operation.
    5. Continual service operation
  • Setiap buku dalam kelompok utama (core guidance) ini berisi:
    1. Practice fundamentals; menjelaskan latar belakang tahapan lifecycle serta kontribusinya terhadap pengelolaan layanan TI secara keseluruhan. Contoh: …
    2. Practice principles; menjelaskan konsep-konsep kebijakan serta tata kelola lifecycle yang menjadi acuan setiap proses terkait dalam tahapan ini. Contoh: …
    3. Lifecycle process and activities; menjelaskan berbagai proses yang menjadi kegiatan utama tahapan lifecycle. Contoh …
    4. Supporting organization structures and roles; menjelaskan semua aspek yang terkait dengan kesiapan model dan struktur organisasi. Proses ITIL tidak akan berjalan baik tanpa definisi roles and responsibilities. Contoh …
    5. Technology considerations; menjelaskan solusi otomatisasi atau software ITIL yang dapat digunakan pada tahapan lifecycle. Contoh …
    6. Practice implementation; berisi panduan bagi organisasi TI yang ingin mengimplementasikan ITIL atau meningkatkan proses ITIL. Contoh …
    7. Complementary guideline; berisi panduan best-practice lain selain ITIL yang dapat digunakan sebagai referensi bagian tahapan lifecycle. Contoh …
    8. Examples and templates; berisi template maupun contoh-contoh pengaplikasian proses. Contoh …
  • Dalam buku juga terdapat kelompok utama complementary guidance.
    • Memberikan model, acuan, dan panduan bagi penerapan ITIL pada sektor tertentu, tipe organisasi serta arsitektur teknologi.
    • Supaya ITIL dapat lebih diterima dengan lingkungan organisasi TI.

reference:

Ke-lima bagian tadi (core guidance publications) jga disebut dengan Siklus Layanan ITIL.

  1. Service Strategy; ditujukan pada pengguna ITSM. Panduan untuk melihat ITSM bukan hanya sebagai sebuah kemampuan oragnisasi dalam menyediakan, mengelola, dan mengoerasikan layanan TI, Namun juga sebagai sebuah aset strategis perusahaan.
  2. Service Design; panduan bagi organisasi untuk dapat secara sistematis dan best practice mendesain dan membangun layanan TI sehingga selaras dengan tujuan bisnis dari pelanggan.
  3. Service Transition; panduan pada organisasi untuk dapat mengembangkan serta memiliki kemampuan untuk mengubah hasil desain ke dalam lingkungan operasional.
  4. Service Operation; panduan bagaimana mengelola layanan TI secara efisien, efektif, dan mampu memenuhi kebutuhan pelangggan
  5. Continual Service Improvement; panduan dalam menyusun serta memelihara kualitas layanan dari proses desain, transisi, dan pengoperasiannya. PDCA (Plan-Do-Check-Act)

Perbedaan Iterative dan Incremental Model

 

Perbedaan terletak pada Gambar 1 dan Gambar 2. Pada Gambar 1 terlihat tidak terdapat full spek requirement. Proses penyempurnaan dilakukan setiap tahap iterasi. Pada Gambar 2 terlihat requirement terbagi menjadi beberapa bagian seperti puzzle. Setiap cycle diibaratkan seperti potongan puzzle yang disusun hingga sempurna.

iterative-model-example

Gambar 1 – Iterative Model

incremental-model_11

Gambar 2 – Incremental Model

Iterative model membentuk gambaran produk secara kasar diawal untuk kemudian di review dan ditingkatkan pada setiap iterasi hingga sempurna. Gambar 3 menunjukkan bahwa keseluruhan product dibangun step-by-step.

iterative-model

Gambar 3 – Iterative Model Cycle

Keuntungan:

  • Bisa dibangun berdasarkan High-level design, kemudian baru membangun pondasinya.
  • Karena dibangun step-by-step maka dapat terlihat defect secara dini.
  • Bisa dapat feedback user secara efektif dan reliabel.
  • Less time documenting – more time designing.

Kekurangan:

  • Setiap tahapan rapuh karena tidak ada overlap.
  • Kemungkinan penambahan biaya arsitektur dibelakang karena requirement tidak dikumpulkan semua di awal

Cocok bagi:

  • Projek besar.
  • Requirement dan tujuan akhir sistem sudah jelas dan dimengerti.
  • Mayor requirement harus ada, detailnya bisa dikemudian hari

Pada model incremental sifatnya modular (seperti puzzle). Setiap modul dikerjakan dalam sebuah iterasi seperti Gambar 4. Modul pertama dibangun dalam sebuah iterasi kemudian bisa di presentasikan pada user, setelah fix baru kemudian iterasi kedua atau modul kedua dibangun kembali, hingga modul terakhir berlangsung.

incremental_model

Gambar 4 – Incremental Model Cycle

Keuntungan:

  • Generate perangkat lunak secara cepat (tanpa menunggu hingga semua selesai bisa terlihat).
  • Lebih fleksibel.
  • Lebih mudah di uji dan debug pada setiap iterasi.
  • User bisa feedback setiap tahapan.
  • Lebih mudah mengelola risiko.

Kerugian:

  • Membutuhkan rancangan yang sangat baik.
  • Harus jelas kesuluruhan sistem baru bisa dibagi-bagi menjadi modul.
  • Pengeluaran lebih banyak dibandingkan waterfall model.

Cocok bagi:

  • Sudah memiliki requirement yang komplit dan jelas
  • Tidak mengejar waktu
  • Menggunakan teknologi baru
  • Tidak membutuhkan tenaga ahli ekstra
  • Terdapat risiko dan target yang besar

Agile Model

Merupakan model inkremental, pengembangan perangkat lunak secara berulang dengan perputaran iterasi yang cepat. Hasil keluaran terlihat setiap iterasi yang dilakukan Gambar 1. Setiap hasil keluaran di uji untuk memasikan kualitas perangkat lunak tetap terjaga. Extreme Programming (XP) merupakan salah satu contoh penggunaan agile model.

agile-model

Gambar 1 – Agile Model

Keuntungan:

  • Kepuasan pelanggan karena pengerjaan yang cepat “terlihat”
  • Bisa terus diperbaiki dan berubah requirement
  • Interaksi antara customer (business people) – developer terus berjalan dari awal hingga selesai
  • Terjadinya komunikasi tatap muka (cara terbaik berkomunikasi)

Kekurangan:

  • Sulit menghitung tenaga yang dikeluarkan dalam sebuah lifecycle
  • Kurangnya rancangan dan dokumentasi
  • Projek bisa melenceng jauh jika customer tidak tahu tujuan akhir-nya apa
  • Junior programmer not allowed to take any decision!

Cocok bagi:

  • Customer yang suka galau, karena cost perubahan spek tidak besar
  • Perancangan perangkat lunak belum jelas
  • Yang mau lihat trend ditengah jalan dalam menentukan pilihan kedepan

Reference:

  1. Agile model advantages and disadvantages

Waterfall Model

Merupakan model pertama yang dikenalkan dalam pengembangan perangkat lunak. Disebut juga dengan linear-sequential life cycle, karena tahapannya lurus, mudah dipahami, dan digunakan. Masing-masing tahapan pada waterfall model harus diselesaikan sebelum berlanjut ke tahapan selanjutnya, tidak bisa overlaping Gambar 1.

waterfall-model

Gambar 1 – Waterfall model

Keuntungan:

  • Mudah digunakan dan dipahami.
  • Mudah di kelola karena setiap tahap punya target yang spesifik dan melalui proses review.
  • Setiap tahap dilakukan sekali hingga selesai, tidak overlap.

Kekurangan:

  • Ketika sudah tahap testing, sangat sulit kembali ke tahap selanjutnya untuk merubah komponen yang tertinggal.
  • Risiko tinggi dan ketidakpastian.
  • Tidak cocok untuk projek kompleks dan object-oriented projects.
  • Tidak cocok untuk projek yang kebutuhannya masih belum jelas.

Cocok bagi:

  • Projek dengan skala kecil.
  • Sudah memiliki perancangan yang detail.
  • Requirement jelas dan tidak ambigu.
  • Teknologinya sudah dipahami.
  • Mengetahui titik permasalahan.
  • Memiliki ketersediaan solusi.
  • Mudah mencari tenaga ahli.
  • Projek jangka pendek.

Thread dan Multithread

Thread adalah kumpulan instruksi yang dieksekusi secara independen.

Thread adalah alur kontrol dari suatu proses

Multithreading adalah kemampuan yang memungkinkan beberapa kumpulan instruksi (thread) dijalankan secara bersamaan dalam sebuah proses

Manfaat dari multithreading: Ketika kita mengakses sebuah broswser thread yang terbuka terlebih dahulu biasanya “text” kemudian “gambar” dari contoh tersebut terlihat manfaatnya responsif; tidak nunggu gambar load semua baru memunculkan yang lain, kemudian berbagi sumber daya; dalam alokasi memori yang sama terdapat beberapa thread yang berbeda, lalu ekonomis; karena thread dapat membagi memori dan sumber daya-nya, dan terakhir utilisasi arsitektur prosesor; sebuah proses dijalankan pada arsitektur prosesor/multiprosesor, penggunaan multithread dapat meningkat ketika menggunakan multiprosesor, karena setiap prosesor dapat mengerjakan thread yang berbeda secara bersamaan.

multi-threading-model

3 model multi-threading:

  1. Many-to-One: memetakan beberapa thread tingkatan pengguna ke sebuah thread.
  2. One-to-One: memetakan setiap thread tingkatan ke setiap thread.
  3. Many-to-Many: multipleks banyak thread tingkatan ke thread kernel yang jumlahnya sdikit atau sama dengan tingkatan pengguna.

Reference:

  1. Multi-Threading 
  2. Keuntungan MultiThreading
  3. Model multi-threading

Object Oriented Programming (OOP)

Kumpulan objek yang berkolaborasi dengan saling mengirimkan pesan satu sama lain.

  • Pemanggilan objek lain untuk mengeluarkan hasil yang di-inginkan.
  • Panggilan berulang tidak di selesaikan hingga runtime.
  • Polymorphism; objek yang berbeda dipanggil untuk implementasi suatu pesan yang sama.
  • Inheritance; penggunaan turunan atau delegasi turunan.
  • Enkapsulasi; merupakan kumpulan instruksi yang di enkapsulasi. Ketika memanggil prosedur itu kita tidak tahu isi di dalamnya (seakan ter-enkapsulasi, dimasukan ke dalam kapsul).
  • Abstraction; menyembunyikan detail, hanya menunjukkan fitur penting pada objek.
  • Sembunyikan informasi; ketika objek A ingin memanggil objek B, objek A tidak perlu tahu apa isi objek B. Fungsinya, ketika objek B bermasalah, tidak ada keperluan untuk merubah isi dari objek A

 

Reference:

  1. What makes a language Object-Oriented?
  2. https://magneticinfo.blogspot.co.id/2014/08/apa-itu-object-oriented-programming-oop.html