Wednesday, September 4, 2019

Lean Software Development


Fuad Fadlila Surenggana (F1D015026)
(Sudah dipresentasikan)

Lean Software Development merupakan suatu proses engineering yang digunakan untuk mengembangkan dan menghasilkan suatu software yang berkualitas tinggi, terjamin kehandalannya, resiko kegagalan sedikit. LSD berpedoman pada pemahaman lapangan dan kesesuaian pelaksanaan prinsip lean pada seluruh proses pengembangan software, dengan slogan berpikir besar, bertindak kecil, gagal cepat, belajar cepat.

Proses atau tahapan

Adapun Proses atau tahapan Lean Software Development, antara lain:
  • Step 1 Tentukan nilai dari perspektif pelanggan dan nilai ekspres dalam hal produk atau layanan tertentu
  • Step 2 Memetakan semua langkah, nilai tambah dan bukan nilai tambah, yang membawa produk atau layanan kepada pelanggan
  • Step 3 Aliran produk, layanan, dan informasi terus menerus end-to-end melalui proses
  • Step 4 Tidak ada yang dilakukan oleh proses upstream sampai pelanggan downstream mengisyaratkan kebutuhan, permintaan aktual menarik produk / layanan melalui value stream
  • Step 5 Penghapusan sampah secara menyeluruh sehingga semua kegiatan menciptakan nilai bagi pelanggan dengan terobosan dan proyek perbaikan berkelanjutan


7 Prinsip Lean Software Development (LSD)


Dalam melakukan aktivitasnya LSD memiliki 7 prinsip, antara lain:
  1. Eliminate waste (mengeliminasi ketidak effisienan): Dalam software development, waste adalah sesuatu yang tidak mempengaruhi kualitas koding, mengurangi waktu dan usaha dalam menghasilkan koding, atau sesuatu yang tidak memberikan nilai bisnis kepada customer. Dengan kata lain, aktifitas apapun itu yang tidak “ pay for itself” dalam mengurangi usaha dimanapun di dalam system. Tools: seeing waste, value stream mapping
  2. Amplify learning (mengamplifikasi pembelajaran): Untuk para programmer, mengembangkan sebuah sistem yang memberikan nilai bisnis, mereka harus belajar banyak hal. Diantaranya berupa teknikal, seperti kelebihan dan kekurangan pada beberapa pendekatan yang akan dilakukan pada remote communication dalam .Net (contoh: remoting, com+, web services, dll), memahami apa yang pengguna bisnis benar-benar butuhkan dan apa yang pengembang pikirkan untuk kebutuhan pengguna.
  3. Decide as late as possible (keputusan selambat mungkin): Gagasan itu adalah menunggu sampai apa yang disebut dengan istilah “the last responsible moment” untuk membuat sebuah keputusan. Dimana, jika tim tidak membuat keputusan, keputusan akan dibuat untuk mereka. Manfaatnya adalah untuk menghindari atau menunda biaya perubahan, yang tidak jelas, yang dapat terjadi jika belum
  4. Deliver as fast as possible (mengantarkan secara cepat): Merupakan hal dasar dari development berulang. Kebutuhan berubah sebagai sebuah persentase dari kebutuhan original yang meningkatkan non linear sebagai jumlah waktu yang meningkat. Secara umum proyek dengan waktu 9-12 bulan memiliki kira-kira 25% perubahan kebutuhan. Dimana tiap bulannya perubahan kebutuhan dalam rata-rata hanya 1-2persen. Dan hal ini lebih mudah di setujui.
  5. Empower the team (memberdayakan team): Menguatkan tim. Kualitas sebuah tim perangkat lunak (faktor manusia) merupakan unsur yang paling penting dalam keberhasilan dalam menghasilkan sebuah software.
  6. Build integrity in (membangun integritas): Membangun integritas. Integritas terbagi antara integritas perceived dan integritas konseptual. Integritas perceived adalah pengalaman pelanggan perangkat lunak dalam menggunakan software yang dibuat. Integritas konseptual adalah ukuran seberapa baiknya arsitektur dan komponen sistem yang mengalir bersama-sama mengenai integritas perceived. Pengujian, satuan dan integrasi, merupakan bagian utama dari integritas
  7. See the whole (melihat secara kesatuan/keseluruhan.): Pemikiran sistem sudah ada untuk sementara waktu, tapi respon khas untuk memecahkan masalah adalah untuk memprosesnya menjadi bagian-bagian penyusunnya dan mengoptimalkan setiap bagian individu. Ini adalah suboptimisasi, yang mengarah ke “tragedy of the commons.”


Kelebihan dan Kekurangan


Kelebihan

  • Mengeliminasi ketidak effisienan membantu mempercepat proses, menghemat sumberdaya dan efisiensi
  • Membantu memberikan produk lebih awal
  • Kekuatan tim membantu dalam membuat keputusan antara tim dan memotivasi tim
  • Proyek sangat bergantung pada tim yang saling bekerjasama dan berkomitmen pada proyek
  • Membutuhkan sebuah tim yang kemampuannya saling melengkapi

Kekurangan

  • Time limit dapat berubah-ubah (tidak sesuai jadwal jika ada perubahan)
  • Kebutuhan biaya dapat membengkak jika semakin banyak perubahan yang diinginkan (karena kelebihan waktu ditanggung oleh client)


Karakteristik Aplikasi


Karakterikstik organisasi yang cocok dalam memakai LSD adalah manufaktur, product development, supply chain development dan back-office operation.

Karakteristik proyek yang cocok memakai LSD yaitu pembangunan software yang memakan waktu sedikit namun produktifitas  tinggi dan proyek yang mementingkan kepuasan customer.


Kesimpulan


Lean memperjelas apa yang menjadi nilai tambah dan mengurangi hal-hal yang tidak diperlukan pada proses pembuatan aplikasi untuk meningkatkan produktivitias dengan budget yang sangat kecil dan alur kerja dengan jumlah yang sedikit memanfaatkan 7 Prinsip LSD yaitu: Eliminate waste, Amplify learning, Decide as late as possible, Deliver as fast as possible, Empower the team, Build integrity in, See the whole.

 

Referensi


Bubernak, C dan Schweikert, M. 2012. Lean Software Development. CSCI
Ehnstrom, O dkk. 2016. Using lean software development principles to develop digital services. Aalto University.
Poppendieck, M dan Poppendieck, T. 2003. Lean Software Development: An Agile Toolkit. Addison-Wesley Professional.
Poppendieck, M. dan Cusumano, M.A. 2012. Lean Software Development:  A Tutorial. IEEE Software.



No comments:

Post a Comment