Selasa, 17 April 2018

Pemodelan Framework Enterprise Arcitecture : The Open Group Architecture Framework (TOGAF)


Pemodelan Framework Enterprise Arcitecture :  The Open Group Architecture Framework (TOGAF)





Saat ini ada beragam jenis  framework   yang menunjukkan perkembangan konsep Enterprice Arcitecture, diantaranya adalah  Zachman framework,  Federal Enterprise Architecture Framework  (FEAF), serta  The Open Group Architectural Framework  (TOGAF).  Untuk itu saya akan menjelaskan salah satu jenis framework yang mudah digunakan. Framework TOGAF yang akan saya jelaskan pada blog ini mengandung beberapa macam pertanyaan yang muncul dipikiran pembaca.



Apa itu TOGAF ?
Mengapa kita kok perlu memakai TOGAF ?
Pada saat bagaimana TOGAF diperlukan ?
Manfaat TOGAF ketimbang dengan framework lain ?
Apa saja bagian – bagian dari TOGAF ?
Pendapat saya tentang TOGAF ?



Untuk lebih memahami tentang salah satu jenis framework TOGAF, mari baca artikel blog dibawah ini.

Apa itu TOGAF ?
The Open Group Architecture Framework (TOGAF) adalah sebuah framework untuk arsitektur enterprise yang menyediakan sebuah pendekatan komprehensif untuk mendesain, merencanakan, menerapkan dan mengelola arsitektur informasi enterprise. TOGAF ini merupakan standar Open Group yang telah terbukti digunakan oleh organisasi-organisasi terkemuka dunia dalam meingkatkan efisensi bisnis. TOGAF juga telah menjadi standar Enterprise Architecture yang paling terkemuka dan handal, standar yang konsisten baik metode dan komunikasinya diantara para profesional Enterprise Architecture.

     The Open Group Architecture Framework (TOGAF) adalah sebuah framework yang dikembangkan oleh The Open Group’s Architecture Framework pada tahun 1995. Awalnya TOGAF digunakan oleh Departemen Pertahanan Amerika Serikat namun pada perkembangannya TOGAF banyak digunakan pada berbagai bidang seperti perbankan, industri manufaktur dan juga pendidikan. TOGAF ini digunakan untuk mengembangkan enterprise architecture, dimana terdapat metode dan tools yang detil untuk mengimplementasikannya, hal inilah yang membedakan dengan framework EA lain misalnya framework Zachman. Salah satu kelebihan menggunakan framework TOGAF ini adalah karena sifatnya yang fleksibel dan bersifat open source.


Mengapa kita kok perlu memakai TOGAF ?

Tentu banyak pertanyaan diantara kalian, mengapa kita perlu menggunakan TOGAF. Jangan bingung dan penasaran kenapa kita harus memakai framework TOGAF ini. Karena dibawah ini sudah saya jabarkan penjelasannya.
  • Pada saat penyusunan arsitektur sistem informasi di organisasi yang cukup besar dan memiliki proses yang cukup rumit, kita harus menggunakan tools, tidak bisa hanya menggunakan keinginan sendiri.
  • Dengan semakin berkembangnya teknologi IT dan best practice, ada banyak template yang dapat kita gunakan untuk menyusun strategi IT kita.
  • Kebanyakan industri menggunakan framework yang general seperti TOGAF ini.
  • Suatu framework itu lebih baik bisa mengcover satu framework yang lain atau memiliki interoperabilitas antar framework. Saling melengkapi satu framework dengan framework lainnya.
Para profesional Enterprise Architecture memilih TOGAF karena kredibilitas industri, efektivitas kerja, dan karir peluangnya lebih besar. TOGAF ini akan membantu para praktisi menghindari keterbatasan pengembangan Enterprise Architecture menuju metode yang eksklusif, memanfaatkan sumber daya secara lebih efisien dan efektif, dan mewujudkan keuntungan investasi yang lebih besar baik dalam bisnis maupun suatu organisasi.


Pada saat bagaimana TOGAF diperlukan ?
TOGAF diperlukan ketika suatu organisasi/ perusahaan perlu mengembangkan suatu Enterprise Architecture dengan kebutuhan bisnis yang digambarkan secara rinci. Adanya TOGAF menyebabkan lebih banyak kesempatan bagi organisasi untuk menemukan sumber daya dalam domain yang telah sangat sulit untuk merekrut arsitek perusahaan yang memenuhi syarat yang mampu memahami bagaimana perusahaan mereka melakukan bisnis.


Manfaat TOGAF ketimbang dengan framework lain ?
Berbicara mengenai TOGAF pasti kalian penasaran tentang kelebihan manfaat dari Framework TOGAF ketimbang framework lainnya. Berikut akan penjabaran kelebihan manfaat framework TOGAF dari Framework lainnya.

Manfaat dari Menggunakan TOGAF


  • Setiap organisasi berusaha untuk mendesain dan implementasi arsitektur enterprise untuk mendukung aplikasi bisnis mission-critical, dengan menggunakan blok bangunan sistem terbuka. 
  • Suatu perusahaan yang merancang dan mengimplementasikan arsitektur enterprise menggunakan TOGAF dipastikan bahwa desain dan spesifikasi pengadaan yang akan sangat memudahkan implementasi sistem terbuka, dan akan memungkinkan manfaat dari sistem terbuka bertambah untuk organisasi mereka dengan menurunkan risiko.
  • Salah satu kelebihan menggunakan framework TOGAF ini adalah karena sifatnya yang fleksibel dan bersifat open source.
       Apa saja bagian – bagian dari TOGAF ?
Sebelum kalian memilih framework untuk digunakan kedalam Enterprise Arsitecture. Kalian harus tahu terlebih dahulu apa saja bagian – bagian dari TOGAF. Dibawah ini terdapat penjelasan bagian – bagian dari framework TOGAF. 
      
     TOGAF secara umum memiliki struktur dan komponen sebagai berikut:
    1  .Architecture Development Method (ADM) : Merupakan bagian utama dari TOGAF yang            memberikan gambaran rinci bagaimana menentukan sebuah enterprise architecture secara spesifik berdasarkan kebutuhan bisnisnya.
    2.   Foundation Architecture (Enterprise Continuum) : Foundation Architecture merupakan sebuah “framework-within-a-framework” dimana didalamnya tersedia gambaran hubungan untuk pengumpulan arsitektur yang relevan, juga menyediakan bantuan petunjuk pada saat terjadinya perpindahan abstraksi level yang berbeda. Foundation Architecture dapat dikumpulkan melalui ADM. Terdapat tiga bagian pada foundation architecture yaitu Technical Reference Model, Standard Information dan Building Block Information Base.
     3.   Resource Base: Pada bagian ini terdapat informasi mengenai guidelines, templates, checklists,latar belakang informasi dan detil material pendukung yang membantu arsitek didalam penggunaan ADM.

     TOGAF- Architecture Development Method (ADM)
               Architecture Development Method (ADM) merupakan metodologi lojik dari TOGAF yang terdiri dari delapan fase utama untuk pengembangan dan pemeliharaan technical architecture dari organisasi. ADM membentuk sebuah siklus yang iteratif untuk keseluruhan proses, antar fase, dan dalam tiap fase di mana pada tiap-tiap iterasi keputusan baru harus diambil.

                 Keputusan tersebut dimaksudkan untuk menentukan luas cakupan enterprise, level kerincian, target waktu yang ingin dicapai dan asset arsitektural yang akan digali dalam enterprise continuum. ADM merupakan metode yang umum sehingga jika diperlukan pada prakteknya ADM dapat disesuaikan dengan kebutuhan spesifik tertentu, misalnya digabungkan dengan framework yang lain sehingga ADM menghasilkan arsitektur yang spesifik terhadap organisasi.
   
      ADM dapat dikenali dengan penggambaran siklus yang terdiri dari delapan langkah proses,
      Yaitu :
      ·         Architecture Vision
      ·         Business Architecture
      ·         Information System Architecture
      ·         Technology Architecture
      ·         Opportunities and Solution
      ·         Migration Planning
      ·         Implementation Governance
      ·         Architecture Change Management.


      Fase-Fase TOGAF- Architecture Development Method (ADM)
TOGAF ADM juga merupakan metode yang bersifat generik dan mudah di terapkan berdasarkan kebutuhan banyak organisasi, baik organisasi industri ataupun industri akademik seperti perguruan tinggi.

  
       Secara singkat kedelapan fase ADM adalah sebagai berikut:
      1.      Fase Preliminary: Framework and Principles: Merupakan fase persiapan yang bertujuan untuk mengkonfirmasi komitmen dari stakeholder, penentuan framework dan metodologi detil yang akan digunakan pada pengembangan EA.
      2.      Fase A : Architecture Vision. Fase ini memiliki tujuan untuk memperoleh komitmen manajemen terhadap fase ADM ini, memvalidasi prinsip, tujuan dan pendorong bisnis, mengidentifikasi stakeholder. Terdapat beberapa langkah untuk mencapaian tujuan fase ini dengan inputan berupa permintaan untuk pembuatan arsitektur, prinsip arsitektur dan enterprise continuum. Output dari fase ini adalah: (1) pernyataan persetujuan pengerjaan arsitektur yang meliputi: Scope dan konstrain serta rencana pengerjaan arsitektur, (2) prinsip arsitektur termasuk prinsip bisnis, (3) Architecture Vision.
      3.      B : Business Architecture. Fase B bertujuan untuk (1) memilih sudut pandang terhadap arsitektur yang bersesuaian dengan bisnis dan memilih teknik dan tools yang tepat (2) mendeskripsikan arsitektur bisnis eksisting dan target pengembangannya serta analisis gap antara keduanya. Inputan untuk fase B berasal dari output fase A, sedangkan outputnya adalah revisi terbaru dari hasil ouput fase A ditambah dengan arsitektur bisnis eksisting dan target pengembangannya secara detil serta hasil analisis gap, business architecture report dan kebutuhan bisnis yang telah diperbaharui.
    4.    Fase C : Information Systems Architectures. Tujuan fase ini adalah untuk mengembangkan arsitektur target untuk data dan/atau domain aplikasi. Pada arsitektur data misalkan untuk menentukan tipe dan sumber data yang diperlukan untuk mendukung bisnis dengan cara yang dimengerti oleh stakeholder. Pada arsitektur aplikasi untuk menentukan jenis sistem aplikasi yang dibutuhkan untuk memproses data dan mendukung bisnis.
     5.      Fase D : Technology Architecture. Untuk pengembangan arsitektur teknologi target yang akan menjadi basis implementasi selanjutnya.
     6.      Fase E : Opportunities and Solutions. Secara umum merupakan fase untuk mengevaluasi dan memilih cara pengimplemetasian, mengidentifikasi parameter strategis untuk perubahan, perhitungan cost dan benefit dari proyek serta menghasilkan rencana implementasi secara keseluruhan berikut strategi migrasinya.
    7.      Fase F : Migration Planning: Fase ini bertujuan untuk mengurutkan implementasi proyek berdasarkan prioritas dan daftar tersebut akan menjadi basis bagi rencana detil implementasi dan migrasi.
     8.      Fase G : Implementation Governance. Merupakan tahapan memformulasikan rekomendasi untuk setiap implementasi proyek, membuat kontrak arsitektur yang akan menjadi acuan implementasi proyek serta menjaga kesesuaiannya dengan arsitektur yang telah ditentukan.
   9.   Fase H : Architecture Change Management. Pada akhir fase ini diharapkan terbentuk skema proses manajemen perubahan arsitektur.
   10.  Requirements Management bertujuan untuk menyediakan proses pengelolaan kebutuhan arsitektur sepanjang fase pada siklus ADM, mengidentifikasi kebutuhan enterprise, menyimpan lalu memberikannya kepada fase yang relevan.


       TOGAF memandang enterprise architecture ke dalam empat kategori yaitu: 
       1.      Business Architecture          : Mendeskripsikan tentang bagaimana proses bisnis untuk             mencapai   tujuan organisasi.
       2.       Application Architecture     : Merupakan pendeskripsian bagaimana aplikasi tertentu didesain   dan bagaimana interaksinya dengan apikasi lainnya.
      3.      Data Architecture                : Adalah penggambaran bagaimana penyimpanan, pengelolaan   dan   pengaksesan data pada perusahaan.
     4.      Technical Architecture     : Gambaran mengenai infastruktur hardware dan software yang   mendukung aplikasi dan bagaimana interaksinya.

    
    
     Pendapat saya tentang TOGAF ?
     Kesimpulan :
Menurut saya, TOGAF adalah salah satu framework yang banyak digunakan oleh perusahaan dalam merancang dan merencanakan Enterprise arsitecture. TOGAF juga mendukung aplikasi bisnis untuk mendesain dan mengimplementasikan Enterprise Arcitecture dengan system terbuka. TOGAF diperlukan ketika suatu organisasi/ perusahaan perlu mengembangkan suatu Enterprise Arcitecture dengan kebutuhan bisnis yang digambarkan secara rinci. TOGAF adalah  framework yang general. TOGAF sangat membantu praktisi untuk memanfaatkan sumber daya secara lebih efisien dan efektif dan mewujudkan keuntungan investasi yang lebih besar baik dalam bisnis maupun suatu organisasi.

Sabtu, 25 November 2017

Perbedaan dari beberapa Model Pengembangan Software

1. Agile Software Development Methodology



Agile Software Development adalah sebuah metode dari beberapa kumpulan prinsip untuk pengembangan software yang persyaratan dan solusinya melalui kolaborasi antara tim fungsional dengan klien.

Metode Agile mendukung berbagai siklus pengembangan perangkat lunak, sementara beberapa diantaranya fokus pada bidang masing-masing. Misalnya pada praktek (XP, Pragmatic Programming, dan Agile Modelling), kemudian pada pengelolaan aliran kerja ( Scrum dan Kanban), pada kegiatan dukungan untuk pengembangan (FDD), serta berusaha menutupi siklus pengembangan penuh (DSDM dan RUP).

Untuk pengembangannya sendiri, Agile didukung oleh sejumlah praktek yang konkrit yang meliputi sektor permintaan, desain, pemodelan, coding, pegujian, perencanaan, manajemen risiko proses, dan lain-lain.

Agile memiliki pengertian bersifat cepat, ringan, bebas bergerak, dan waspada.Sehingga saat membuat perangkat lunak dengan menggunakan agile development methods diperlukan inovasi dan responsibiliti yang baik antara tim pengembang dan klien agar kualitas dari perangkat lunak yang dihasilkan bagus dan kelincahan dari tim seimbang.

kelebihan dan kekurangan dari metode Agile ini sendiri, diantaranya :

Kelebihan Agile Software Development :
  1. Meningkatkan kepuasan klien
  2. Pembangunan system dibuat lebih cepat
  3. Mengurangi resiko kegagalan implementasi dari segi non-teknis
  4. Jika terjadi kegagalan, kerugian materi relatif kecil

Kekurangan Agile Software Development :
  1. Developer harus selalu siap dengan perubahan, karena perubahan akan selalu diterima


Tim pelaksana pengembangan Agile seringkali menghadapi kesulitan diantaranya ; kesulitan umum metode Agile, kurangnya desain produk secara keseluruhan, kurangnya dukungan sponsor, kurangnya pelatihan, serta kurangnya otimatisasi. Sedangkan untuk praktek kerjanya sendiri, Agile mengadopsi praktek kerja spesifik berulang dan inkremental seperti Scrum, Kanban, pengembangan wi-driven atau pengembangan fitur-driven di semua fungsi bisnis.


2. Rapid Application Development




RAD (Rapid Application Development) Adalah metodologi pengembangan perangkat lunak (SDLC) yang menggunakan pengabungan antara Prototype Model dengan Iterative Model. Prototipe adalah model kerja yang secara fungsional setara dengan komponen produk.

Dalam model RAD (Rapid Application Development), modul fungsional dikembangkan secara paralel sebagai prototip dan terintegrasi untuk membuat produk yang lengkap untuk pengiriman produk yang lebih cepat. Dikarenakan tidak ada rincian planning yang detail, maka memudahkan untuk melakukan perubahan pada saat development berjalan.

Model RAD mendistribusikan tahap analisis, perancangan, pembuatan dan pengujian ke dalam rangkaian siklus pengembangan jangka pendek yang singkat.

Kelebihan dan kekurangan Rapid applicationh Development
Kelebihan RAD (Rapid Application Development)
1.      Mudah mengakomodasi peruabahan sistem
2.      Progress development bisa di ukur
3.      Waktu iterasi bisa di perpendek menggunakan RAD Tools
4.      Mengurangi waktu development
5.      Mudah dalam menentukan dasar sistem
6.      Mempermudah feedback customer
7.      Cocok untuk proyek yang membutuhkan waktu pengembangan yang lebih pendek.
8.      Cocok untuk sistem yang berbasis komponen dan terukur.

Kekurangan RAD (Rapid Application Development)
  1. Ketergantungan pada anggota bisnis tim untuk mengidentifikasi persyaratan bisnis
  2. Hanya sistem yang bisa di modularized yang bisa dibangun menggunakan RAD
  3. Membutuhkan developer / designer yang berpengalaman
  4. Ketergantungan pada keterampilan model
  5.  Kompleksitas manajemen 
  6. Tidak dapat diterapkan pada proyek yang kecil / murah.


3.  Dynamic System Development Model Methodology




Dynamic System Development Model Methodology adalah iteratif dan incremental pendekatan yang mencakup prinsip-prinsip pembangunan Agile, termasuk keterlibatan pengguna atau pelanggan secara terus-menerus, intinya DSDM suatu metode yang mendekati Incremental dan Agile Alliance.

Beberapa karakteristik DSDM yaitu sebagai berikut :

1.  Menyajikan kerangka kerja (Framework) untuk membangun dan memelihara sistem dalam waktu yang terbatas melalui penggunaan prototyping yang incremental dalam lingkungan yang terkondisikan.
2.   Membangun software dengan cepat yaitu 80% dari proyek diserahkan dalam 20% dari waktu total untuk menyerahkan proyek secara utuh.
3.  Aktifitas Feasibility Study yaitu dengan requirement, lalu uji apakah sesuai gunakan proses DSDM
4.  Aktifitas Business Study yaitu susunam kebutuhan fungsional dan informasi, menentukan arsitektur aplikasi dan identifikasi kebutuhan pemeliharaan untuk aplikasi
5. Aktifitas Functional model iteration yaitu menghasilkan incremental prototype yang perlihatkan fungsi software ke client untuk dapatkan kebutuhan lebih jelas dan konfirmasi.
6.  Aktifitas Design and Build Iteration yaitu melakukan cek ulang prototype yang di bangun untuk memastikan bahwa prototype yang di bangun dengan cara tersebut memungkinkan semua fungsi benar-benar bekerja
7. Aktifitas Implementation yaitu menempatkan software pada lingkungan sebenarnya sekalipun belum lengkap atau masih ada perubahan.
8. DSDM dapat dikombinasikan dengan XP yang menghasilkan kombinasi model prosesmengikuti metode DSDM dan praktek yang sejalan dengan XP.

Telah di jelaskan beberapa karakteristik DSDM, pada tujuannya untuk menciptakan suatu rangkaian RPL yang cepat sama hal nya dengan XP model.


4. Ekstreme Programing Methodologhy


Extreme Programming adalah suatu model yang termasuk dalam pendekatan agile yang diperkenalkan oleh Kent Back. Menurut penjelasannya, definisi XP adalah sebagai berikut: “Extreme Programming (XP) adalah metode pengembangan software yang cepat, efisien, beresiko rendah, fleksibel, terprediksi, scientific, dan menyenangkan.“.

Tahapan-tahapan yang harus dilalui antara lain: Planning, Design, Coding, dan Testing. Sasaran Extreme Programming adalah tim yang dibentuk berukuran antara kecil sampai medium saja, tidak perlu menggunakan sebuah tim yang besar. Hal ini dimaksudkan untuk menghadapi requirements yang tidak jelas maupun terjadinya perubahan-perubahan requirements yang sangat cepat. Extreme Programming merupakan agile methods yang paling banyak digunakan dan menjadi sebuah pendekatan yang sangat terkenal.

Extreme Programming tepat digunakan saat kondisi :
1.     Keperluan berubah dengan cepat
2.     Resiko tinggi dan ada proyek dengan tantangan yang baru
3.     Tim programmer sedikit, yaitu 2-10 orang.
4.     Mampu mengotomatiskan tes
5.     Ada campur tangan klien secara langsung

kelebihan Ekstrem programing : 
1.     Meningkatkan kepuasan kepada klien 
2.     Pembangunan system dibuat lebih cepat 
3.     Menjalin komunikasi yang baik dengan client. 
4.     Meningkatkan komunikasi dan sifat saling menghargai antar developer.


Kelemahan Extreme Programming :
1.  Cerita-cerita yang menunjukkan requirements kemungkinan besar tidak lengkap sehingga Developer harus selalu siap dengan perubahan karena perubahan akan selalu diterima.
2.   Tidak bisa membuat kode yang detail di awal (prinsip simplicity dan juga anjuran untuk melakukan apa yang diperlukan hari itu juga).
3.  XP tidak memiliki dokumentasi formal yang dibuat selama pengembangan. Satu satunya dokumentasi adalah dokumentasi awal yang dilakukan oleh user.

 Aspek dasar XP dari berbagai metode yang diterapkan, antara lain : 
  • Whole team
  • planning Game
  • small release
  • design improvement
  • collective code ownership
  • simple design
  • pair programming
  • test driven development
  • continous integration
  • coding standard
  • metaphor
  • suistainable pace  

5. Scrum Development Methodologhy




Scrum merupakan suatu kerangka kerja yang berupa deskripsi rinci tentang bagaimana segala sesuatu yang harus dilakukan pada proyek. Hal ini dilakukan dikarenakan tim akan tahu bagaimana cara terbaik untuk memecahkan masalah yang disajikan untuk mereka.

Ada 3 elemen organisasi utama pada scrum yaitu product owner, Scrum master, dan Scrum team. Scrum Master dapat dianggap sebagai pelatih / guru bagi tim yang mengajarkan cara kerja lebih kolaboratif dan menyenangkan dalam mengembangkan software. Product Owner mewakili bisnis, pelanggan atau pengguna dan memandu tim ke arah pengembangan produk yang tepat. Sedangkan Scrum Team merupakan grup pengembang kecil biasanya terdiri dari 5-9 orang. Untuk project yang sangat besar, biasanya pekerjaan akan dibagi dan didelegasikan ke grup-grup kecil. Jika sangat dibutuhkan scrum master juga dapat ikut membantu dalam koordinasi team.

Scrum tepat digunakan saat kondisi:
  1. Keperluan berubah dengan cepat
  2. Tim programmer sedikit, yaitu 5-9 orang
  3. Pelanggan tidak terlalu paham dengan apa yang diinginkan
Scrum memiliki prinsip yaitu:
  1. Ukuran tim yang kecil melancarkan komunikasi, mengurangi biaya, dan memberdayakan satu sama lain
  2. Proses dapat beradaptasi terhadap perubahan teknis dan bisnis
  3.  Proses menghasilkan beberapa software increment
  4. Pembangunan dan orang yang membangun dibagi dalam tim yang kecil
  5. Dokumentasi dan pengujian terus menerus dilakukan setelah software dibangun
  6. Proses scrum mampu menyatakan bahwa produk selesai kapanpun diperlukan

Kelebihan Scrum antara lain:
1.      Keperluan berubah dengan cepat
2.      Tim berukuran kecil sehingga melancarkan komunikasi, mengurangi biaya dan memberdayakan satu sama lain
3.      Pekerjaan terbagi-bagi sehingga dapat diselesaikan dengan cepat
4.      Dokumentasi dan pengujian terus menerus dilakukan setelah software dibangun
5.      Proses Scrum mampu menyatakan bahwa produk selesai kapanpun diperlukan

Kelemahan Scrum antara lain:
  • Developer harus selalu siap dengan perubahan karena perubahan akan selalu diterima.

Dikarenakan, model yang digunakan akan berpengaruh pada kinerja dari tim dan juga dapat menunjang keberhasilan suatu project pembuatan perangkat lunak.