Showing posts with label Agile software development. Show all posts
Showing posts with label Agile software development. Show all posts

Thursday, October 13, 2016

Keuntungan dan Kerugian dari strategi pembangunan. Kasus : Pengembangan perangkat lunak kontrol kritis untuk pesawat


Anda seorang manajer perangkat lunak dalam sebuah perusahaan yang mengembangkan perangkat lunak kontrol kritis untuk pesawat. Anda bertanggung jawab untuk pengembangan sistem pendukung desain software yang mendukung terjemahan dari persyaratan perangkat lunak untuk spesifikasi perangkat lunak resmi.
Berikan komentar anda terkait keuntungan dan kerugian dari strategi pembangunan yang ada.
1.       Mengumpulkan persyaratan dari insinyur perangkat lunak dan pemangku kepentingan eksternal dan mengembangkan sistem menggunakan pendekatan plan-driven.
·         Keuntungan
a.       Mengumpulkan persyaratan sebelum pembangunan akan membuat desain yang lebih baik.
b.      Menggunakan pendekatan berbasis rencana pembangunan akan lebih berguna. Hal ini juga mempertimbangkan manajemen risiko.
c.       Sebagai sistem kontrol kritis, manajemen risiko yang diterapkan dalam pendekatan berbasis rencana akan berguna.
·         Kerugian
a.       Mengumpulkan persyaratan dari para insinyur perangkat lunak tidak akan memberikan hasil yang lebih baik. Persyaratan harus dikumpulkan dari sudut pandang pengguna.
b.      Masing-masing stakeholder memberikan prioritas yang berbeda untuk perubahan yang berbeda.
2.       Mengembangkan prototipe menggunakan bahasa scripting, seperti Ruby atau Python, mengevaluasi prototipe ini dengan insinyur perangkat lunak dan pemangku kepentingan lainnya, kemudian meninjau persyaratan sistem. Membangun kembali sistem akhir menggunakan Java.
·         Keuntungan
a.       Mengembangkan dengan berbagai Bahasa pemrograman akan mempunyai banyak backup sehingga dapat digunakan secara optimal dan powerfull nantinya
b.      Mengevaluasi prototype dengan pengembang dan pemangku kepentingan lainnya sangat penting agar sebelum di finalisasi akan muncul evaluasi perbaikan dari berbagai evalusi yang dilakukan sampai sistem mencapai syarat yang telah ditentukan.
·         Kerugian
a.       Penggunaan Bahasa pemrograman yang banyak memakan waktu dan biaya dan juga tenaga tentunya.
3.       Mengembangkan sistem di Java menggunakan pendekatan tangkas dengan pengguna yang terlibat dalam tim pengembangan.
·         Keuntungan
a.       Pendekatan tangkas yang melibatkan pengguna tentunya akan mempercepat proses pembuatan proyek, karena sistem yang dibuat akan dipantau langsung oleh penguna yang mengingikan sistem tersebut, sehingga apabila terdapat perubahan bisa dilaksanakan dengan cepat
·         Kerugian

a.       Perangkat lunak untuk pesawat ini merupakan proyek yang tidak main-main. Proses nya perlu memakan waktu lama dan proses yang lama agar dicapai hasil yang sesuai persyaratan dikarenakan transportasi pesawat ini jika terdapat kecelakaan maka akan membahayakan penumpang, dan pendekatan tangkas sepertinya tidak cocok dengan strategi ini.

Perbandingan Pendekatan scrum untuk manajemen proyek dengan pendekatan berbasis konvensional


Pendekatan scrum merupakan salah satu manajemen proyek cepat yang pada prosesnya tentu berbeda dengan pendekatan berbasis rencana konvensional, berikut perbandingan keduanya berdasarkan beberapa aspek yaitu :
  • Perencanaan alokasi orang untuk proyek

Dalam pendekatan scrum, seluruh tim dibuat untuk terlibat dalam proyek tersebut. tidak akan ada 'manajer proyek'. semua orang berpartisipasi dalam perencanaan sedangkan pada pendekatan konvensional terdapat seorang manajer yang membagi dan menetapkan  pekerjaan untuk tim anggota
  • Perkiraan biaya proyek
Untuk perkiraan proyek dikarenakan jumlah tim pada pendekatan scrum Cuma sedikit maka biaya yang diperlukan semakin sedikit, berbeda dengan pendekatan konvensional yang banyak melibatkan banyak pihak yang terbagi menjadi berbagai tim, oleh sebab itu perkiraan biaya tentunya berbeda tergantung dari jumlah tim. Akan tetapi pendekatan scrum ini cocok untuk proyek yang memerlukan waktu cepat. 
  • Kepaduan tim
Pada prosesnya pada pendekatan scrum melibatkan semua orang berpartisipasi aktif sehingga tentunya kepaduan tim tetap terjaga yang juga dimana anggota tim tidak banyak, berbeda dengan berbasis konvensional yang tentunya tidak sepadu pada pendekatan scrum
  • Pengelolaan perubahan dalam keanggotaan tim proyek
Pada pendekatan scrum terdapat scrum master yang bertugas sebagai fasilitator yang mengatur rapat harian, melacak backlog pekerjaan yang harus dilakukan, keputusan catatan, mengukur kemajuan terhadap backlog, dan berkomunikasi dengan pelanggan dan manajemen di luar tim, sedangkan secara konvensional manajemen perubahan diatur oleh manajer proyek yang harus dilakukan secara kompleks dan sistematis agar berjalan dengan baik.

Wednesday, October 12, 2016

Prinsip-Prinsip Metode Cepat (Agile Method) dalam Accelerated Software Development

Jelaskan bagaimana prinsip-prinsip yang mendasari metode cepat sehingga terjadi pembuatan dan pengembangan perangkat lunak yang dipercepat (Accelerated Software Development and Deployment). (Chapter 3 No. 2)

Prinsip-prinsip yang mendasari metode cepat adalah sebagai berikut.
  1. Individual dan interaksi di atas proses dan tools. Dengan memperhitungkan kemampuan dan keahlian individual dan dengan memastikan bahwa tim pengembang mengetahui aktivitas masing-masing, tim bisa berfokus pada pengembangan perangkat lunak, dengan meminimalisir pertemuan formal.
  2. Software yang sedang dikerjakan di atas dokumentasi komprehensif. Hal ini sangat membantu pengembangan cepat sebab waktu tidak digunakan untuk mengembangkan, memeriksa dan mengurus dokumentasi; melainkan berfokus pada pengembangan dan pengujian kode program.
  3. Kolaborasi dengan pelanggan di atas negosiasi kontrak. Jika dibandingkan dengan menghabiskan waktu untuk menyusun, analisa dan negosiasi kebutuhan agar bisa direkam dalam kontrak sistem, mendapatkan masukan dari pelanggan selama pengembangan sistem (dalam hal ini daftar kebutuhan pengguna) jauh lebih efektif.
  4. Respon terhadap perubahan di atas mengikuti rencana. Responsif terhadap perubahan dinilai lebih efektif dibandingkan mengikuti rencana yang telah disusun sebab perubahan bisa terjadi kapan saja apapun aktivitas pengembangan yang tengah dilakukan. Ada kerugian yang signifikan dalam perubahan rencana untuk melakukan rencana dan rencana yang tidak fleksibel berarti pekerjaan yang akan dilaksanakan bisa saja tidak berguna.


Rapid Software Delivery and Deployment Lebih Penting daripada Fungsional Detail Sistem dalam Bisnis

Jelaskan mengapa pembuatan dan penyerahan sistem baru dengan cepat (rapid delivery and deployment) seringkali lebih penting terhadap bisnis dibandingkan fungsionalitas mendetail dari sistem baru tersebut. (Chapter 3 No. 1)

Dengan keberadaan sistem sebagai bagian dari hampir semua operasi bisnis, perangkat lunak yang dikembangkan dengan cepat akan mendapatkan keuntungan dari segi peluang bisnis maupun dalam merespon permintaan pasar. Bisnis berjalan di lingkungan yang senantiasa berubah-ubah, sehingga pengembangan cepat perangkat lunak (rapid software development) menjadi metode pengembangan yang paling baik untuk digunakan. Selain itu, lingkungan yang dihadapi tersebut membuat fungsionalitas sistem secara menyeluruh sangat sulit untuk ditentukan.

Jika mempertimbangkan fungsionalitas sistem terlalu mendetail, dikhawatirkan sistem sudah tidak sesuai dengan kondisi lingkungan terkini sehingga sistem tidak memiliki kegunaan yang seharusnya. Ini akan mengakibatkan perombakan sistem, baik desain, implementasi, atau keduanya. Dengan berfokus pada waktu pengerjaan, sistem akan dapat digunakan di saat yang tepat sehingga proses bisnis tidak terhambat.

Mengatasi akibat apabila Metode tangkas (Agile Development) dalam pengembangan perangkat lunak dikerjakan di rumah

Chapter 3 No 10 :  Untuk mengurangi biaya dan dampak lingkungan dari Komputer, perusahaan Anda memutuskan untuk menutup sejumlah kantor dan untuk memberikan dukungan bagi staf untuk bekerja dari rumah. Namun, manajemen senior yang memperkenalkan kebijakan tidak menyadari bahwa perangkat lunak dikembangkan menggunakan metode tangkas, yang mengandalkan kedekatan kerja tim dan pasangan pemrograman.  Bahaslah kesulitan apa yang timbul dengan kebijakan baru ini dan bagaimana Anda bisa menngatasi masalah ini ?

Kesulitan yang mungkin timbul dengan kebijakan ini jika membuat karyawan bekerja dari rumah adalah:
1. Manfaat yang diperoleh melalui metode tangkas akan kurang efektif. Karena metodenya menjadi tidak tergunakan
2. Kesenjangan Komunikasi antara anggota tim dikarenakan tidak berada dalam daerah yang sama dalam pengembangan proyek
3. Manfaat deteksi kesalahan dan evaluasi melalui pasangan pemrograman hilang.
4. Bila terjadi perubahan perubahan mendadak dalam tim, pengembangan proyek dapat diperlambat. Hal ini karena tingkat jarak komunikasi yang sangat memiliki jarak.

Langkah-langkah yang dapat diambil untuk mengatasi kesulitan tersebut, seperti:
1. Lebih baik karyawan dipindahkan ke beberapa kantor dan ditampung di beberapa kantor. Ketimbang harus bekerja dirumah masing masing.
2. Komunikasi dalam anggota tim harus ditingkatkan dan harus berkomunikasi secara teratur. Supaya tingkat kesenjangan antar karyawan dapat diatasi
3. Bila ada informasi mengenai proyek baik sifatnya mendadak ataupun tidak harus dibagi dan dikomunikasikan

Mengatasi masalah pengguna yang melupakan kebutuhan tim karena dekat dengan tim pengembang


Chapter 3 No 9 : Ia telah mengemukakan bahwa salah satu masalah adalah yang memiliki pengguna yang terlibat erat dengan tim pengembangan perangkat lunak adalah bahwa mereka ‘Go Native’ yaitu, mereka mengadopsi pandangan tim pengembangan dan melupakan kebutuhan rekan-rekan pengguna mereka. sarankan tiga cara bagaimana Anda dapat menghindari masalah ini dan mendiskusikan keuntungan dan kerugian dari masing-masing pendekatan. ?

Saran jika dalam pengembangan terdapat pengguna yang terlibat erat dengan pengembang sehingga melupakan kebutuhan utama yaitu

1. Melibatkan beberapa pengguna dalam tim pengembangan
Keuntungan yang kita dapatkan adalah semakin banyak sudut pandang masalah yang kita ketahui dan cakupan yang lebih baik untuk mengetahui kebutuhan pengguna. Namun yang menjadi kekurangan adalah adalah biaya yang bertambah karena membutuhkan pengamatan lain,serta persyaratan yang  berbeda beda bahkan bertentangan dari pengguna yang berbeda

2. Mengubah pengguna yang terlibat dengan tim. Keuntungan adalah, sama yaitu berbagai perspektif dapat kita temukan. Namun kekurangannya adalah setiap pengguna membutuhkan waktu untuk menjadi produktif dan mengerti terhadap persyaratan yang bertentangan dari pengguna yang berbeda.

3. Memvalidasi saran pengguna dengan perwakilan pengguna lainnya.
Keuntungan adalah pemeriksaan menjadi selektif atas saran. kelemahan adalah ini memperlambat proses diharapkan pengembangan karena membutuhkan waktu untuk melakukan pemeriksaan

Tuesday, October 11, 2016

Excercises : Pemrograman ekstrim mengungkapkan kebutuhan pengguna sebagai cerita, dengan masing-masing cerita yang ditulis pada kartu. Diskusikan keuntungan dan kerugian dari pendekatan ini untuk persyaratan deskripsi.

Excercises : Chapter 3 No 4

Pemrograman ekstrim mengungkapkan kebutuhan pengguna sebagai cerita, dengan masing-masing cerita yang ditulis pada kartu. Diskusikan keuntungan dan kerugian dari pendekatan ini untuk persyaratan deskripsi.


    Keuntungan dari pendekatan ini yaitu kita dapat dengan mudah menggambarkan situasi nyata yang sering terjadi, sehingga sistem akan mendukung operasi pengguna yang paling umum. Selain itu memudahkan bagi pengguna untuk memahami dan memberi masukan dari cerita, dan juga dapat mengambarkan peningkatan fungsi penerapan cerita,dan memberikan beberapa nilai kepada pengguna.

   Kekurangan dari pendekatan ini yaitu data analisis requeirment user tidak lengkap, dikarenakan pendekatan yang dilakukan secara informal membuat persyaratan deskripsi tidaklengkap dan sulit untuk dianalisa. Hanya fokus pada persyaratan fungsional ketimbang dengan kebutuhan non-fungsional. Merepresentasikan persyaratan sistem lintas sektoral seperti kinerja dan kehandalan mungkin ketika cerita digunakan. Hubungan antara arsitektur sistem dan cerita pengguna tidak jelas sehingga desain arsitektur sulit.