Jumat, 24 November 2017

Perbedaan Agile Software Development Methodology, Rapid Application Development, Dynamic System Development Model Methodology, Extreme Programing Methodology, SCRUM Development Methodology

Pada postingan kali ini saya akan menjelaskan beberapa model pengembangan software, yaitu Agile Software Development Methodology, Rapid Application Development, Dynamic System Development Model Methodology, Extreme Programing Methodology, dan SCRUM Development Methodology
Apa saja yg membedakan antara model yang satu dengan yang lain?? Langsung saja

Agile Software Development Methodology

Hasil gambar untuk agile software methodology adalah
Agile Development Methodology adalah sekelompok metodologi pengembangan perangkat lunak yang didasarkan pada prinsip-prinsip yang sama atau pengembangan sistem jangka pendek yang memerlukan adaptasi cepat dari pengembang terhadap perubahan dalam bentuk apapun. Agile development methods merupakan salah satu dari Metodologi pengembangan perangkat lunak yang digunakan dalam pengembangan perangkat lunak. 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 dari agile
·         Meningkatkan kepuasan kepada klien.
·         Dapat melakukan review pelanggan mengenai software yang dibuat lebih awal.
·         Pembangunan system dibuat lebih cepat.
·         Mengurangi resiko kegagalan implementasi software dari segi non-teknis.
·         Jika pada saat pembangunan system terjadi kegagalan kerugian dari segi materi relatif kecil.
Kekurangan dari agile
·         Developer harus selalu siap dengan perubahan karena perubahan akan selalu diterima.
·         Agile tidak akan berjalan dengan baik jika komitmen tim kurang.
·         Tidak cocok dalam skala tim yang besar (>20 orang).
·         Perkiraan waktu release dan harga perangkat lunak sulit ditentukan.

Rapid Application Development

https://piyaneo.files.wordpress.com/2014/05/siklus-rad-e1399723570398.jpg
Rapid Application Development (RAD) adalah strategi siklus hidup yang ditujukan untuk menyediakan pengembangan yang jauh lebih cepat dan mendapatkan hasil dengan kualitas yang lebih baik dibandingkan dengan hasil yang dicapai melalui siklus tradisional (McLeod, 2002). RAD merupakan gabungan dari bermacam-macam teknik terstruktur dengan teknik prototyping dan teknik pengembangan joint application untuk mempercepat pengembangan sistem/aplikasi (Bentley, 2004). Dari definisi-definisi konsep RAD ini, dapat dilihat bahwa pengembangan aplikasi dengan menggunakan metode RAD ini dapat dilakukan dalam waktu yang relatif lebih cepat.
Kelebihan dari RAD
·         RAD mengikuti tahapan pengembangan sistem sepeti umumnya, tetapi mempunyai kemampuan untuk menggunakan kembali komponen yang ada (reusable object) sehingga pengembang tidak perlu membuat dari awal lagi dan waktu yang lebih singkat.
·         Setiap fungsi mayor dapat dimodulkan dalam waktu tertentu kurang dari 3 bulan dan dapat dibicarakan oleh tim RAD yang terpisah dan kemudian diintegrasikan sehingga waktunya lebih efisien.
Kekurangan dari RAD
·         Tidak cocok untuk proyek skala besar.
·         Proyek bisa gagal karena waktu yang disepakati tidak dipenuhi.
·         Sistem yang tidak bisa dimodularisasi tidak cocok untuk model ini.
·         Resiko teknis yang tinggi juga kurang cocok untuk model ini.
·         penghalusan dan penggabungan dari beberapa tim di akhir proses sangat diperlukan dan ini memerlukan kerja keras.
·         kinerja dari perangkat lunak yang dihasilkan dapat menjadi masalah manakala kebutuhan-kebutuhan diawal proses tidak dapat dimodulkan, sehingga pendekatan dengan model ini kurang bagus.
·         Model RAD memerlukan komitmen yang kuat antara pengembang dan pemesssan, bahkan keduanya bisa tergabung dalam 1 tim
·         Model RAD memerlukan sumber daya yang cukup besar, terutama untuk proyek dengan skala besar.


Dynamic System Development Method (DSDM) 

Merupakan suatu kerangka dalam pengembangan suatu project terutama digunakan sebagai metode pengembangan perangkat lunak, DSDM ini merupakan iteratif dan incremental pendekatan yang mencakup prinsip-prinsip pembangunan Agile, termasuk keterlibatan pengguna/pelanggan terus-menerus, jadi intinya DSDM ini termasuk dalam metodologi DSDM ini mendekati dari metode Incremental dan Agile Alliance.

Gambar DSDM Model

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 : 80% dari proyek diserahkan dalam 20% dari waktu total untuk menyerahkan proyek secara utuh.
  3. Aktifitas Feasibility Study : Siapkan requirement, dan batasan, lalu uji apakah sesuai gunakan proses DSDM
  4. Aktifitas Business Study : Susun kebutuhan fungsional dan informasi, tentukan arsitektur aplikasi dan identifikasi kebutuhan pemeliharaan untuk aplikasi
  5. Aktifitas Functional model iteration : Hasilkan incremental prototype yang perlihatkan fungsi software ke klien untuk dapatkan kebutuhan lebih jelas dan konfirmasi
  6. Aktifitas Design and Build Iteration : Cek ulang prototype yang dibangun untuk pastikan bahwa prototype dibangun dengan cara yang memungkinkan fungsi tersebut benar-benar bekerja
  7. Aktifitas Implementation : Menempatkan software pada lingkungan sebenar sekalipun belum lengkap atau masih ada perubahan.
  8. DSDM dapat dikombinasikan dengan XP menghasilkan kombinasi model proses yang mengikuti DSDM dan praktek yang sejalan dengan XP.

Extreme Programing Methology

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.“.
Model ini cenderung menggunakan pendekatan Object-Oriented. 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.
Core Value Extreme Programming, yaitu:
Core Value Extreme Programming
  • Komunikasi (Communication)
Kurangnya komunikasi merupakan penyebab utama kegagalan pengembangan software. Oleh karena itu Extreme Programming(XP) memfokuskan diri pada hubungan komunikasi yang baik antar tim-klien, anggota tim, dan manajer proyek.Komunikasi dalam XP dibangun dengan melakukan pemrograman berpasangan (pair programming).Klien harus dilibatkan dalam proses pengembangan perangkat lunaknya dengan tujuannya untuk memberikan pandangan pengembang sesuai dengan pandangan pengguna sistem yang dibangun.
  • Kesederhanaan (Simplicity)
Extreme Programming (XP) melakukan semua pekerjaan dengan sederhana dan praktis tanpa mengurangi fungsi utamanya. Dalam pengerjaan, metode yang dipilih adalah metode yang pendek dan simpel. Jangan terlalu rumit dalam membuat desain, hilangkan fitur yang tidak ada gunanya atau hapus fungsi yang tidak terpakai. Dengan kata lain lebih baik melakukan hal yang sederhana saat sekarang (sesuai kebutuhan) dan mengembangkannya nanti jika diperlukan.
  • Umpan balik (Feedback)
Selalu evaluasi perkembangan perangkat lunak yang sedang dikerjakan. Segala informasi harus dikumpulkan setiap interval waktu yang konsisten dan kesalahan-kesalahan yang muncul selama proses pengembangan harus dibahas dan dicari solusinya. Umpan balik tersebut berfungsi sebagai indikator kemajuan proyek dan menginformasikan pemimpin proyek apabila perubahan perlu dibuat.
  • Keberanian (Courage).
Programmer Extreme Programming (XP) didorong untuk berani bereksperimen dan menulis ulang kode jika mereka tidak puas dengan kode atau desain yang sudah ada. Hal ini membantu mempertahankan moral serta intgritas para pengembang proyek dan dapat mendukung lebih lanjut komunikasi dengan anggota proyek lainnya.
Tahapan Dalam XP Programming
Tahapan Dalam Etreme (XP) Programming, yaitu:
Aktivitas planning dimulai dengan membentuk user stories. Anggota XP team kemudian menilai setiap story dan menentukan cost — diukur dalam development week.
Planning. Customer dan XP team bekerja bersama untuk memutuskan bagaimana grup story untuk release berikutnya (software increment berikutnya) untuk dibangun oleh XP team. Jika komitmen telah dibuat, XP team akan membangun story-story dengan cara :
Semua story segera diimplemetasikan (dalam beberapa minggu)
1. Story dengan value tertinggi akan dipindahkan dari jadwal dan dimplementasikan pertama.
2. Story dengan resiko paling tinggi akan diimplemetasikan terlebih dulu. Setelah project pertama direlease dan didelivery, XP team memperhitungkan kecepatan project. Selama development, customer dapat menambah story, merubah value, membagi story atau menghapusnya.
Design. XP menggunakan CRC card, untuk mengenali dan mengatur object oriented class yang sesuai dengan software increment.
Coding. Sebelum membuat code, lebih baik membuat unit test tiap story untuk dimasukkan dalam software increment. XP menyarankan agar dua orang bekerja bersama pada satu komputer workstation untuk membuat code dari satu story (pair programming), untuk menyediakan real time problem solving dan jaminan real time quality. Setelah pair programming selesai, code diintegrasikan dengan kerja laiinnya (continuous integration).
Testing. Unit test yang telah dibuat harus diimplementasikan menggunakan suatu framework dan diatur ke dalam universal testing suite, integrasi dan validasi sistem dapat dilakukan setiap hari. Customer test (acceptance test) dilakukan oleh customer dan fokus pada keseluruhan fitur dan fungsional sistem. Acceptance test diperoleh dari customer stories yang telah diimplemetasikan sebagai bagian dari software release.
Berikut Siklus Hidup dalam XP Programming.
Extreme Programming tepat untuk dipergunakan untuk pembuatan program yang:
  • Membutuhkan perubahan yang cepat (misalnya: Game Mobile)
  • Proyek beresiko tinggi dengan tantangan yang berat
  • Tim programmer sedikit, yaitu sekitar 2–10 orang
  • Adanya permintaan dari pelanggan secara langsung
Kelebihan Extreme Programming, yaitu:
  • Meningkatkan kepuasan kepada klien
  • Pembangunan system dibuat lebih cepat
  • Menjalin komunikasi yang baik dengan client.
  • Meningkatkan komunikasi dan sifat saling menghargai antar developer.
Kelemahan Extreme Programming, yaitu:
  • Cerita-cerita yang menunjukkan requirements dari pelanggan kemungkinan besar tidak lengkap sehingga Developer harus selalu siap dengan perubahan karena perubahan akan selalu diterima.
  • Tidak bisa membuat kode yang detail di awal (prinsip simplicity dan juga anjuran untuk melakukan apa yang diperlukan hari itu juga).
  • XP tidak memiliki dokumentasi formal yang dibuat selama pengembangan. Satu-satunya dokumentasi adalah dokumentasi awal yang dilakukan oleh user.

SCRUM Development Methodology

Merupakan salah satu metode rekayasa perangkat lunak dengan menggunakan prinsip-prinsip pendekatan AGILE, yang bertumpu pada kekuatan kolaborasi tim, incremental product dan proses iterasi untuk mewujudkan hasil akhir.
Scrum sendiri bukan satu-satunya metode yang menggunakan pendekatan AGILE. Mungkin kita juga pernah mendengar metode Extreme Programming (XP) yang juga menggunakan pendekatan AGILE dalam rekayasa perangkat lunak. Masing-masing metode memiliki fokus atau penekanan yang berbeda yang tentu saja dapat dikombinasika untuk menghasilkan proses yang optimal.
Hasil gambar untuk scrum development methodology adalah
Teknik SCRUM dapat dilakukan di sebuah kepanitiaan ataupun project lain diluar bisnis teknologi informasi. Dalam teknik SCRUM terbagi dalam tiga roles, yang pertama adalah Product Owner, Scrum Master dan Develophment/Scurm Team. Product owner bertugas mengatur urusan dengan Stakeholder sedangkan Scrum Master mengurusi bagian internal, di bagian Development Team mengatur urusan teknik pengerjaan project dan pembahasan yag lebih rinci.
Banyak perusahaan multinasional menginternalisasi atau mengadopsi teknik ini sebagai standar bekerja mereka, karena secara umum teknik crum berhasil membuat beberapa perusahaan menaikan omset karena system yang telah teruji ini. Teknik scrum membuat pekerjaan anda menjadi lebih tertata dan lebih detail.
Namun segala sesuatu memiliki nilai plus dan minus, begitu juga dengan teknik scrum ini, scrum menjadikan pekerjaan lebih rapi namun teknik ini tidak cocok diterapkan pada perusahaan jasa yang butuh deadline cepat. Scrum membuat pekerjaan menjadi lebih lama dalam estimasi waktu. Namun segala sesuatunya pasti dapat di selesaikan apabila sudah memiliki persiapan yang matang dari awalnya.

Teknik srum dimulai dari pembahasan project antara Product Owner dengan Stakeholder terkait, lalu dibentuklah Srum Master dan Team Development. Lahkah pertama yang dilakukan oleh Scrum master adalah dengan membuat semua list pekerjaan yang sebut juga dengan User Story, User Stori tersebut dibuat di media yang dinamakan Backlog yang di tempel di TaskBoard, User Story terdiri :
As a , I want so that .

Contoh :
As a registered user,I want to upload videos, so I can share it to other people.
Setiap Backlog yang dibuat diberi setimasi dan standar atau tingkat kesulitan, anda bisa memakai angka 1, 2, 3 dan seterusnya untuk menjelaskan tingkat kesulitan maupun huruf seperti A, B, C dan lain sebagainya, dan yang paling penting dari kode ini adalah semua team development harus mengerti maksud kode tersebut. Setelah dibuat kode maka tugas selanjutnya membuat sprint, sprint adalah batasan waktu pengerjaan dan jika telah ditetapkan maka teknik scrumk tidak diberkenankan mengubah konspe ditengah jalan.

Kelebihan dari scrum
·         Keperluan berubah dengan cepat.
·         Tim berukuran kecil sehingga melancarkan komunikasi, mengurangi biaya dan memberdayakan satu sama lain.
·         Pekerjaan terbagi-bagi sehingga dapat diselesaikan dengan cepat.
·         Dokumentasi dan pengujian terus menerus dilakukan setelah software dibangun.
·         Proses Scrum mampu menyatakan bahwa produk selesai kapan pun diperlukan.
Kekurangan sari scrum
·         Developer harus selalu siap dengan perubahan karena perubahan akan selalu diterima.
·         Lemah dalam perencanaan arsitektur

Kamis, 09 November 2017

Apa Itu Android? Mac OS? Linux?

Android
Android adalah sistem operasi berbasis kernel Linux yang pada awalnya dikembangkan oleh Android, Inc, yang didukung Google finansial dan kemudian dibeli pada tahun 2005.
Android ini diresmikan pada tahun 2007 seiring dengan berdirinya Open Handset Alliance-konsorsium hardware, software, dan perusahaan telekomunikasi yang ditujukan untuk memajukan standar perangkat selular.
Smartphone yang tersedia untuk publik pertama kalinya yang menjalankan Android adalah HTC Dream, yang dirilis pada 22 Oktober 2008

Android kini semakin berkembang, berikut beberapa perkembangan versi android
Android adalah sistem operasi dengan sumber terbuka, dan Google merilis kodenya di bawah Lisensi Apache. Memungkinkan perangkat lunak untuk dimodifikasi secara bebas dan didistribusikan oleh para pembuat perangkat, operator nirkabel, dan pengembang aplikasi. Selain itu, Android memiliki sejumlah besar komunitas pengembang aplikasi (apps) yang memperluas fungsionalitas perangkat, umumnya ditulis dalam versi kustomisasi bahasa pemrograman Java. Hingga bulan Mei 2013, total 900 juta perangkat Android telah diaktifkan di seluruh dunia, dan 48 miliar aplikasi telah dipasang dari Google Play.

Mac OS
Mac OS, atau yang sebelumnya disebut OS X, adalah antarmuka grafikal sistem operasi yang
dikembangkan dan disebarkan oleh Apple Inc. Sistem operasi ini disediakan untuk komputer Macintosh. Mac OS adalah sistem operasi yang menggunakan kernel BSD, hal yang menarik dari OS ini adalah keindahan tampilannya sehingga menjadikannya panutan bagi pengembang desktop lain.
Tahapan Mac OS:
  • Mac OS X Server 1.0 kode: "Rhapsody", dirilis: Maret 1999
  • Mac OS X Public Beta kode: "Kodiak", dirilis September 2000
  • Mac OS X 10.0 kode: "Cheetah", dirilis Maret 2001
  • Mac OS X 10.1 kode: "Puma", dirilis Oktober 2001
  • Mac OS X Server 10.1 kode: "Puma", dirilis November 2001
  • Mac OS X 10.2 kode: "Jaguar", dirilis Agustus 2002
  • Mac OS X Server 10.2, dirilis Agustus 2002
  • Mac OS X 10.3 kode: "Panther", dirilis Oktober 2003
  • Mac OS X Server 10.3, dirilis Oktober 2003
  • Mac OS X 10.4 kode: "Tiger", dirilis Oktober 2003
  • Mac OS X Server 10, dirilis April 2005
  • Mac OS X 10.5 kode: "Leopard", dirilis April 2005
  • Mac OS X 10.6 kode: "Snow Leopard" , dirilis Oktober 2007
  • Mac OS X 10.7 kode: "Lion", dirilis Juni 2009
  • OS X 10.8 kode: "Mountain Lion" , dirilis Juli 2011
  • OS X 10.9 kode: "Mavericks", dirilis Oktober 2013
  • OS X 10.10 kode: "Yosemite", dirilis Oktober 2014
  • OS X 10.11 kode: "El Capitan", dirilis September 2015
  • macOS 10.12 kode: "Sierra", dirilis September 2016
Linux
Linux Adalah software sistem operasi open source yang gratis untuk disebarluaskan di bawah lisensi GNU. Linux merupakan turunan dari unix dan dapat bekerja pada berbagai macam perangkat keras komputer. Dengan lisensi GNU (Gnu Not Unix) Anda dapat memperoleh program, lengkap dengan kode sumbernya (source code). Tidak hanya itu, Anda diberikan hak untuk mengkopi sebanyak Anda mau, atau bahkan mengubah kode sumbernya. Dan itu semua legal dibawah lisensi. Meskipun gratis, lisensi GNU memperbolehkan pihak yang ingin menarik biaya untuk penggandaan maupun pengiriman program.

MACAM-MACAM DISTRO LINUX

Xandros
    Xandros Linux adalah sebuah distro Linux yang berdasarkan pada sistim KDE.Tampilannya sangat mirip dengan Microsoft Windows, jadi apabila dioperasikan sangat mudah dan nyaman.

Ubuntu.
    Ubuntu adalah salah satu distribusi Linux yang berbasiskan pada Debian. Proyek Ubuntu disponsori oleh Canonical Ltd (perusahaan milik Mark Shuttleworth). Nama Ubuntu diambil dari nama sebuah konsep ideologi di Afrika Selatan. “Ubuntu” berasal dari bahasa kuno Afrika, yang berarti “rasa perikemanusian terhadap sesama manusia”.

CentOS
    CentOS adalah sistem operasi bebas yang didasarkan pada Red Hat Enterprise Linux (RHEL). CentOS singkatan dari Community ENTerprise Operating System (Sistem Operasi Perusahaan buatan Komunitas/Masyarakat).

Debian
    Debian adalah sistem operasi berbasis kernel Linux. Debian adalah ‘kernel independent’, yaitu sistem operasi Debian dikembangkan murni tanpa mendasarkan pada sistem operasi yang telah ada.


Fedora
    Fedora (sebelumnya bernama Fedora Core, terkadang disebut juga dengan Fedora Linux) adalah sebuah distro Linux berbasis RPM dan yum yang dikembangkan oleh Fedora Project yang didukung oleh komunitas pemrogram serta disponsori oleh Red Hat. Nama Fedora berasal dari karakter fedora yang digunakan di logo Red Hat.

Knoppix
    Knoppix adalah distro Linux live-cd yang dapat dijalankan melalui CD-ROM tanpa instalasi di hard disk. Distro ini berbasis Debian Linux dan diciptakan oleh Klaus Knopper.

Gentoo Linux
    Gentoo Linux adalah suatu distribusi Linux yang memakai paket sistem manajemen Portage. [Bandingkan dengan: Debian yang menggunakan paket .deb, RedHat / Mandrake yang menggunakan paket .rpm. Manajemen paket ini dirancang untuk modular (mudah ditambah-tambah), portabel (dapat di port ke distro lain), mudah ditata, fleksibel, dan dioptimalkan untuk masing-masing komputer pengguna.

Slackware
    Slackware merupakan sistem operasi yang dibuat oleh Patrick Volkerding dari Slackware Linux, Inc. Slackware merupakan salah satu distro awal, dan merupakan yang tertua yang masih dikelola. Tujuan utama Slackware adalah stabilitas dan kemudahan desain, serta menjadi distribusi Linux yang paling mirip Unix.

Mandriva Linux
    Mandriva Linux (dahulu dikenal dengan nama Mandrakelinux atau Mandrake Linux) adalah sistem operasi yang dibuat oleh Mandriva (dahulu dikenal dengan nama Mandrakesoft).
    Mandriva Linux menggunakan RPM Package Manager.

OpenSUSE
    SUSE sebelumnya bernama SUSE Linux dan SuSE Linux Professional adalah salah satu distro Linux dari perusahaan Novell, atau lebih tepat dari anak perusahaannya Suse Linux GmbH (Software- und System-Entwicklungsgesellschaft mbH, Nürnberg yang berarti pengembangan -perangkat lunak dan -sistem).

Freespire
    Freespire adalah versi gratis dari distro Linspire (a.k.a Lindows), kemudian mungkin dikarenakan permasalahan nama, berubah menjadi Linspire.

Linux Mint
    Linux Mint adalah sistem operasi berbasis Linux untuk PC. Inti dari LinuxMint adalah Ubuntu, sehingga aplikasi yang dapat berjalan di Ubuntu, juga bisa berjalan pada LinuxMint.

PCLinuxOS
    PCLinuxOS, sering disingkat sebagai PCLOS, adalah sebuah sistem operasi desktop. Ini adalah sebuah sistem operasi bebas untuk komputer pribadi yang bertujuan untuk memudahkan penggunaan.

Damn Small Linux
    Damn Small Linux (DSL) adalah salah satu distro/varian linux mini. Disebut mini karena paket DSL cuma 50MB besarnya. DSL juga memungkinkan untuk diinstall di USB 128MB.

Kuliax
    Kuliax adalah sebuah distribusi Linux LiveCD yang dikembangkan oleh Kuliax Project untuk pendidikan di universitas. Distribusi ini berbasis Debian GNU/Linux dan Knoppix, serta telah dioptimasi ke arah penggunaan desktop Linux.

Redhat
    Distribusi yang paling populer, minimal di Indonesia, redhat merupakan distribusi pertama yang instalasi dan pengoperasiannya mudah.


Dan masih ada beberapa distro Linux lainnya..