DOMAIN 1. AGILE PRINCIPLES AND MINDSET
Frequently Asked Questions (FAQ)
1. Jelaskan mengapa perlu Agile!
#Knowledge work projects in a fast-moving, complex environment, call for an agile approach.
#Different types of projects require different methods. In our everyday lives, we continually customize our approach depending on the situation, often in small and subtle ways. For example, we choose what information to communicate present it based on our audience. We don’t approach every issue we face in the exact same way, like a robot; instead, we adjust our methods to be most effective for each situation. This same concept applies to projects—and some projects, especially knowledge work projects in a fast-moving, complex environment, call for an agile approach.
Pmi-acp mcg page 20
2. Jelaskan perbandingan karakteristik beberapa Project Life Cycle yang Anda ketahui!
Pertama mari kita bahas sedikit sejarah yang tidak diuji pada ujian tetapi akan membantu mengatur adegan. Awalnya manusia mengembara di bumi sebagai pemburu-pengumpul. Ketika orang mulai menanam tanaman dan menggembalakan hewan, itu mengubah masyarakat dan pekerjaan. Ini adalah Revolusi Pertanian. Akibatnya, orang-orang tidak mengembara, dan mereka tinggal dan bekerja di satu tempat.
Transformasi besar berikutnya datang dengan perkembangan mesin dan pabrik, ketika orang-orang meninggalkan mereka pertanian dan desa untuk pindah ke kota. Ini adalah Revolusi Industri, yang akhirnya mengarah pada pengembangan banyak alat dan konsep manajemen proyek klasik, termasuk bagan Gantt, fungsional dekomposisi, dan tenaga kerja lokal. Pada gilirannya, perkembangan ini mengarah pada penciptaan yang lebih maju alat manajemen proyek, seperti struktur rincian kerja (WBS).
Tahap terbaru—yang sekarang kita jalani—dikenal sebagai Information Revolution. Revolusi ini berfokus pada informasi dan kolaborasi, daripada manufaktur. Ini menempatkan nilai pada kepemilikan pengetahuan dan kemampuan untuk menggunakan pengetahuan tersebut untuk menciptakan atau meningkatkan barang dan jasa.
Information Revolution bergantung pada pekerja pengetahuan. Ini adalah orang-orang dengan keahlian materi pelajaran yang mengomunikasikan pengetahuan mereka dan mengambil bagian dalam analisis atau upaya pengembangan. pekerja pengetahuan tidak hanya ditemukan di industri TI; mereka juga insinyur, guru, ilmuwan, pengacara, dokter, penulis, dan banyak orang lain yang bekerja saat ini. Faktanya, pekerja berpengetahuan telah menjadi segmen terbesar dari tenaga kerja Amerika Utara.
Jadi apa yang membuat proyek kerja pengetahuan berbeda dari proyek manufaktur? Untuk mengetahuinya, mari kita bandingkan karakteristik utama pekerjaan industri dan pekerjaan pengetahuan
Ketika proyek kerja pengetahuan menjadi lebih umum, orang menemukan bahwa komunikasi dan kolaborasi yang terlibat dalam proyek-proyek ini membuat pekerjaan lebih tidak pasti dan kurang dapat didefinisikan daripada pekerjaan industri. Ketika orang mencoba menerapkan teknik kerja industri ke proyek kerja pengetahuan, frustrasi—dan kegagalan proyek—meningkat.
Metode tangkas dikembangkan untuk menjawab masalah ini. Perintis tangkas mengumpulkan teknik paling efektif untuk pekerjaan pengetahuan dan mengadaptasinya untuk digunakan pada proyek, bereksperimen untuk melihat apa yang paling berhasil. Inisiatif baru ini dimulai di bidang pengembangan perangkat lunak tetapi sekarang digunakan di semua jenis proyek kerja pengetahuan.
Pmi-acp mcg page 21
3. Jelaskan apa yang dimaksud dengan Agile Mindset!
Mindset berarti way of thinking.
“Being agile" isn’t simply a matter of using a certain set of tools or practices, or following a specific methodology. Agility really involves adopting a new mindset—way of thinking—that is based on agile values and principles.
Pmi-acp mcg page 22
4. Jelaskan model segitiga terbalik pada Agile!
Pebedaan model constraint pada traditional dengan agile.
Pada Tradisional: scope = fix, time and cost = variable
Pada Agile : Cost dan Time = fix, Scope= variable
Pmi-acp mcg page 26
5. Sebutkan dan jelaskan 4 Agile values!
Individuals and interactions over processes and tools
Di dalam metode ini, individu dan interaksinya akan dianggap lebih penting daripada proses dan tools yang digunakan. Proses dan tools yang hebat tidak akan berfungsi dengan baik jika personel tim tidak memiliki kemampuan untuk menjalankannya. Interaksi dan komunikasi antar tim juga diperlukan untuk menghindari konflik yang bisa membuat proses pengembangan berjalan tidak efektif.
Working software over comprehensive documentation
Tujuan utama dari Agile development adalah untuk mengembangkan suatu software. Oleh karena itu, software yang berfungsi dengan baik dan berhasil di-deliver kepada user akan lebih penting nilainya daripada dokumen untuk mendeskripsikan produk.
Customer collaboration over contract negotiation
Software akan dikembangkan sesuai dengan permintaan klien. Namun sayangnya, sebagian besar klien tidak memahami dunia IT sehingga mereka kesulitan untuk menjabarkan sistem yang mereka inginkan. Oleh karena itu, Anda harus melibatkan klien dalam proses pengembangan software. Hal ini untuk menghindari pengembangan fitur atau sistem yang tidak sesuai dengan permintaan klien. Dengan terus berkomunikasi dengan klien, kesalahpahaman dapat diminimalisir.
Responding to change over following plan
Dalam proses pengembangan software, perubahan dapat terjadi kapan saja. Permintaan perubahan bisa datang dari klien atau pihak developer sendiri. Selain itu, teknologi akan semakin berkembang sehingga perubahan dapat terus terjadi. Project plan juga penting, namun dalam Agile development, tim harus bisa beradaptasi dengan cepat ketika terjadi perubahan.
Pmi-acp mcg page 26
6. Sebutkan dan jelaskan 12 Agile principles!
1. Our highest priority is to satisfy the customer through the early and continuous delivery of valuable software.
Memprioritaskan kepuasan pelanggan dengan delivery produk yang berkelanjutan
Prioritas tertinggi dalam Agile software development adalah memuaskan pelanggan melalui delivery produk perangkat lunak yang bernilai di tahap awal namun tetap berkelanjutan. Pada metode pengembangan software tradisional, umumnya pelanggan harus menunggu proses yang lama dan panjang untuk bisa melihat produk atau hasil akhir. Hal tersebut tidak jarang membuat pelanggan merasa kecewa karena harus menunggu dalam waktu yang lama. Kondisi tersebut tentu bertolak belakang dengan prinsip Agile yang mengutamakan kepuasan pelanggan.
Oleh karena itu, proses pengembangan dilakukan dengan urutan kerja inkremental (berkembang sedikit demi sedikit secara teratur) dan iteratif (berulang). Dengan metode tersebut, maka produk atau perangkat lunak dapat di-delivery ke tangan pelanggan dengan proses yang lebih cepat. Selain itu, metode ini juga memungkinkan pelanggan untuk bisa memberikan feedback di awal sehingga perbaikan dapat dilakukan pada tahap-tahap selanjutnya.
2. Welcome changing requirements, even late in development. Agile processes harness change for the customer’s competitive advantage.
Dapat menerima permintaan perubahan meskipun di tahap akhir pengembangan
Seperti yang kita ketahui, teknologi dan tren pasar akan terus mengalami perubahan dan perkembangan. Para pemilik bisnis tentu tidak ingin menghabiskan biaya yang tinggi untuk mengembangkan sebuah perangkat lunak dengan teknologi yang sudah usang.
Oleh karena itu, dengan memegang prinsip Agile software development maka tim pengembang harus selalu siap dengan perubahan tersebut. Dengan demikian, produk perangkat lunak yang dikembangkan dapat terus relevan dengan kondisi terkini.
3. Deliver working software frequently, from a couple of weeks to a couple of months, with a preference for the shorter timescale.
Rutin merilis produk dengan jangka waktu yang singkat
Dalam metode Agile, proses atau siklus pengembangan perangkat lunak akan dipecah dalam beberapa bagian yang lebih kecil. Kemudian, hasil pengembangan tersebut akan dirilis secara berkala.
Pada umumnya, proses pengembangan akan dilakukan dengan jangka waktu beberapa minggu sampai beberapa bulan. Dengan memegang prinsip ini, tim pengembangan dapat mengurangi lebih banyak waktu dalam mengerjakan proyek sehingga proses pengembangan dapat dilakukan dengan lebih gesit.
Scrum merupakan salah satu contoh kerangka kerja yang mengadopsi prinsip ini. Di dalam Scrum, tim akan beroperasi di dalam Sprint yaitu periode singkat yang dibatasi oleh waktu untuk menyelesaikan sejumlah pekerjaan. Dengan mematuhi Sprint tersebut proses delivery atau rilis perangkat lunak pada dilakukan secara secara lebih teratur.
4. Business people and developers must work together daily throughout the project.
Tim developer dan klien harus saling bekerjasama dalam pengerjaan proyek
Prinsip Agile software development yang selanjutnya mengatakan bahwa tim developer dan klien harus saling bekerjasama dalam pengerjaan proyek.
Untuk mengembangkan sebuah produk yang sukses, Anda membutuhkan insight dari sisi bisnis dan teknis. Oleh karena itu, tim developer dan klien harus terus melakukan komunikasi dan kolaborasi yang efektif untuk keberhasilan proyek.
Komunikasi yang dilakukan secara rutin juga akan memberikan transparansi tentang kemajuan proyek dari semua aspek. Dengan demikian, keselarasan dan kepercayaan antar tim dapat terbangun dengan baik.
5. Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done.
Membangun produk di lingkungan yang berisi orang-orang bermotivasi tinggi
Tim yang memiliki motivasi tinggi pada umumnya dapat memberikan hasil yang terbaik daripada tim yang tidak memiliki motivasi. Oleh karena itu, dalam metode Agile software development, Anda harus bisa memberikan lingkungan dan dukungan yang dibutuhkan oleh semua anggota tim.
Anda juga harus bisa mempercayai bahwa masing-masing anggota tim mampu menyelesaikan tugas yang harus dikerjakan. Jika Anda membangun sebuah proyek di lingkungan kerja yang tidak termotivasi karena kurangnya kepercayaan dan dukungan, maka proyek Anda kemungkinan besar tidak akan berhasil dijalankan.
6. The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.
Komunikasi dilakukan secara tatap muka untuk menyampaikan informasi
Metode Agile software development memiliki prinsip bahwa penyampaian informasi yang paling efektif dan efisien dilakukan melalui komunikasi secara tatap muka. Penyampaian informasi secara langsung perlu dilakukan agar setiap kesalahpahaman dalam komunikasi dapat dihilangkan. Dengan demikian, seluruh proses pengembangan produk dapat berjalan dengan lebih lancar.
Pada tahun 2001 saat Agile Manifesto dikembangkan, prinsip ini mungkin masih relevan. Namun melihat kondisi sekarang, dimana semakin banyak tim jarak jauh yang berkolaborasi dalam pengembangan suatu produk, maka komunikasi secara face to face di satu lokasi tidak memungkinkan untuk dilakukan. Untungnya, saat ini teknologi juga sudah semakin berkembang sehingga memungkinkan tim jarak jauh untuk bisa berkomunikasi secara langsung meskipun melalui video call atau meeting virtual.
7. Working software is the primary measure of progress.
Perangkat lunak yang dapat bekerja dengan baik menjadi tolak ukur kemajuan tim
Perlu diketahui, fokus anggota tim terkadang teralihkan karena beberapa hal seperti pembuatan dokumentasi ataupun mockup yang cukup lama. Namun karena dalam Agile development, perangkat lunak yang berfungsi dengan baik menjadi tolak ukur utama, maka seluruh anggota tim akan lebih fokus pada proses pengembangan software.
8. Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely.
Pengembangan perangkat lunak yang berkelanjutan
Agile menjalankan proses pengembangan yang berkelanjutan dengan mempertahankan kecepatan yang konstan. Jadi, proses pengembangan perangkat lunak yang panjang akan dibagi menjadi beberapa tujuan kecil.
Dengan cara ini, pengembang dapat menciptakan tujuan yang lebih realistis dan menetapkan ekspektasi yang tidak terlalu tinggi. Cara ini juga dapat membantu Anda untuk bisa lebih sering dalam merilis produk dengan cara yang lebih teratur dan efisien tanpa memberikan beban berlebih pada tim pengembang.
9. Continuous attention to technical excellence and good design enhances agility.
Memberikan perhatian pada keunggulan teknis dan desain
Dalam konteks software development, prinsip ini memungkinkan tim untuk tidak hanya membuat perangkat lunak yang berfungsi namun juga perangkat lunak yang stabil dan berkualitas tinggi.
Metode Agile development memang mendorong proses pengembangan yang pendek agar rilis produk dapat dilakukan secara lebih sering. Meskipun demikian, dalam proses pengembangan, Anda harus selalu menjaga berbagai komponen pengembangan tetap teratur dan rapi sehingga tidak menimbulkan masalah di masa depan.
10. Simplicity–the art of maximizing the amount of work not done–is essential.
Kesederhanaan
Prinsip Agile ini membantu menciptakan pola pikir dimana tim pengembang dapat bekerja dengan cerdas. Jika Anda dapat mengerjakannya dengan cara yang sederhana, maka Anda tidak perlu membuang banyak waktu untuk mempersulit pengerjaan tugas tersebut.
Prinsip ini juga menekankan agar tim dapat lebih fokus untuk mengerjakan hal-hal penting yang perlu diprioritaskan untuk menciptakan value pada sebuah produk.
11. The best architectures, requirements, and designs emerge from self-organizing teams.
Tim harus mampu mengorganisir diri sendiri
Pada pengembangan tradisional, manajemen akan menjadi pihak yang bertanggung jawab untuk membuat semua keputusan. Berbeda dengan metode Agile dimana anggota tim harus bisa mengatur atau mengelola dirinya sendiri untuk menyelesaikan pekerjaan mereka (Self-organization).
Jadi, dalam proses pengembangan perangkat lunak, anggota tim dapat memutuskan siapa, kapan, dan bagaimana menyelesaikan suatu pekerjaan.
12. At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behaviour accordingly.
Secara berkala, tim akan melakukan refleksi mengenai cara bekerja yang lebih efektif
Prinsip Agile yang terakhir memiliki fokus pada evaluasi kinerja tim dan mengidentifikasi hal-hal apa saja yang perlu ditingkatkan di dalamnya. Dengan memegang prinsip ini, Anda dapat terbantu dalam menciptakan lingkungan pengembangan yang fleksibel serta berfokus pada peningkatan cara kerja yang lebih efektif untuk seluruh anggota tim.
7. Jelaskan proses dalam Agile (dengan gambar)!
Proses dalam Agile, antara menjadi agile dengan cara yang benar dan hanya doing agile, cara yang tidak efektif untuk implementasi agile.
Agile Process Overview
8. Sebutkan dan jelaskan Scrum Pillars!
1.Transparansi
Tim harus memiliki common language untuk digunakan. Setiap orang dari mulai scrum master, member, product owner sampai ke stakeholder harus tahu apa saja yang harus mereka selesaikan untuk mencapai tujuan mereka.
Tim juga harus bergerak sejalan dengan definisi “Done“ yang telah ditentukan. Sehingga saat mereka mengerjakan tugas dari product backlog, mereka tahu harus bagaimana dan apa implikasinya.
Setiap orang harus memiliki pemahaman yang sama tentang artefak scrum seperti product backlog, sprint backlog, project vision dan lainnya.
Setiap tim harus hadir selama meeting, seperti daily meetings, sprint review meetings dan sejenisnya.
Harus mengetahui tentang tools yang digunakan oleh tim seperti Burndown Chart, Scrumboard.
2. Inspeksi
Inspeksi adalah hal yang sangat kritikal sebagai bagian dari system kontrol. Inspeksi dilakukan bukan hanya oleh Scrum Master atau CEO saja, tapi oleh semua tim yang terlibat dalam proyek.
Harus melakukan inspeksi artefak secara rutin untuk melihat apakah ada hal yang perlu diperbaiki. Saat ada feedback masuk, maka tim harus segera melakukan perubahan sampai perbaikan tersebut disetujui.
3. Adaptasi
Scrum banyak dipilih karena kemampuannya untuk adaptasi. Seperti workflow yang transparan dan inspeksi yang rutin, sehingga saat tim menemukan hal yang perlu diperbaiki atau disesuaikan maka tim akan segera melakukan adaptasi terkait hal tersebut.
Selama proses review, seluruh tim dan stakeholder berkolaborasi untuk menentukan mana yang harus diselesaikan.
9. Jelaskan Scrum Values!
1. Komitmen (Commitment)
Makna dari komitmen di sini adalah bahwa anggota scrum team diharapkan untuk komitmen dengan pekerjaan yang akan difokuskannya sampai selesai. Dalam scrum tak ada instruksi untuk scrum team harus melakukan task tertentu. Scrum team-lah yang berinisiatif akan mengambil berapa task untuk membantu terwujudnya sprint goal.
2. Keberanian (Courage)
Dalam scrum, para anggota scrum team akan didorong untuk berani mengungkapkan pandangannya, menyampaikan apa adanya bila ada masalah, meminta bantuan, dan menawarkan bantuan. Enaknya scrum yang sangat transparan ini membuat semua anggota tim bisa melihat apa saja task yang dikerjakan anggota lain dan bagaimana perkembangannya. Apabila ada yang belum beres maka anggota lain bisa menawarkan bantuan. Apabila ada masalah maka scrum team akan bersama-sama mencari penyelesaiannya.
3. Fokus (Focus)
Kesederhanaan dari scrum adalah membuat setiap sprint punya fokus tujuan tertentu, sehingga scrum team tidak merasakan kewalahan dalam bekerja, karena mereka bisa memilih pekerjaan yang kiranya mampu mencapai sprint goal.
Fokus ini menjadi nilai utama dalam setiap sprint planning. Tujuan sprint dicanangkan di awal dan scrum team diminta untuk fokus memilih pekerjaan yang akan mencapai terlaksananya tujuan sprint. Aktivitas pekerjaan pun sebaiknya tidak ada yang di luar sprint goal yang sudah ditetapkan.
4. Keterbukaan (Openness)
Dalam scrum, segala sesuatu harus dilakukan secara transparan. Semua anggota tim perlu bisa melihat apa yang anggota lain kerjakan sehingga bisa memberikan feedback. Keterbukaan ini memang tidak mudah, perlu adanya kepercayaan satu sama lain. Oleh karena itu, perlu ada pendekatan-pendekatan yang bisa membuat scrum team terbuka satu sama lain.
5. Rasa Hormat (Respect)
Respect ini lawannya judgmental, jika ada anggota scrum team yang tidak bisa menyelesaikan task yang dipilihnya ketika sprint planning maka kita tidak boleh langsung memberikan tuduhan bahwa ia tidak becus. Kita harus saling menghormati dengan menggali apa yang menjadi permasalahannya dan kita bisa menerapkan nilai scrum yakni berani untuk memberikannya bantuan. Di Ekipa ketika sprint review maka akan ditanyakan apakah anggota scrum team memiliki masalah dan apa yang perlu dibantu.
10. Proses dan aktivitas apa sajakah yang dilakukan dalam Scrum?
Enam tahap Scrum untuk product/software development berikut ini.
1. Product backlog
Product backlog merupakan tahap pertama Scrum untuk product developer yang mesti kamu pahami.
Semua anggota tim terlibat dalam proses product backlog. Tahap ini bertujuan untuk mengumpulkan daftar persyaratan proyek tentang deskripsi singkat fungsionalitas yang diinginkan dari sebuah produk.
Setelah tujuan itu diketahui kemudian dibagi menjadi bagian-bagian kecil yang memiliki nilai dan layak dikembangkan.
Biasanya pemilik proyek akan menentukan skala prioritas dalam pengerjaan bagain-bagian terkecil tersebut yang menghasilkan to do list.
2. Backlog Refinement
Product backlog tadi harus diperhatikan oleh tim Scrum untuk dilakukan perencanaan. Tak heran hal-hal yang harus diperhatian dalam proses ini yaitu melakukan breakdown kebutuhan dan proses estimasi penghalusan backlog refinement sambil membuat perencanaan sprint.
3. Sprint planning meeting
Proses sprint planning menjadi yang terpenting sebelum menjalankan suatu sprint.
Apa itu sprint? Sprint dapat diilustrasikan sebagai kotak waktu dengan durasi satu hingga empat pekan. Dalam jangka waktu ini, para pengembang fokus mencapai target tertentu.
Pada fase ini semua tim berkumpul untuk mengidentifikasi tugas masing-masing. Selain itu, jadwal rilis dari masing-masing tim pun dibicarakan di sini.
4. Daily scrum
Tahap Scrum ini bisa dikatakan sebagai evaluasi, karena para anggota tim menyampaikan update pekerjaan harian masing-masing. Berbagai kendala pun bisa didiskusikan di sini.
Proses daily scrum ini dijalankan setiap hari, selama sprint berlangsung.
5. Sprint review meeting
Dalam tahapan ini, setiap anggota tim mendemonstrasikan yang sudah diselesaikan dalam periode satu sprint. Dengan kata lain, sprint review ini dilakukan setiap satu sprint selesai.
6. Sprint retrospective
Pada setiap sprint yang berakhir, akan ada sprint restrospective. Semua anggota tim bisa menyampaikan pendapat dan evaluasi mengenai kinerja selama menerapkan Scrum. Namun, hal-hal teknis dari proyek yang digarap, tidak ikut dibahas di sini.
11. Apa saja artefak yang digunakan pada Scrum ?
Scrum terdiri dari 3 artifact, yaitu :
Product Backlog : untuk melihat progress untuk mencapai Product Goal
Sprint Backlog : untuk melihat progress dari Sprint Goal
Product Increment : untuk melihat progress yang dicapai menuju definisi “selesai”.
12. Apa saja role yang ada pada Scrum?
Secara spesifik Scrum Team akan diisi oleh tiga peran utama, yaitu Developers, Product Owner, dan Scrum Master. Berikut penjelasan untuk masing-masing peran :
Developers
Developers adalah anggota Scrum Team yang bertugas untuk menciptakan aspek-aspek Increment (peningkatan) yang berguna di setiap Sprint.
Increment dalam Scrum berarti jumlah dari semua item Product Backlog yang harus diselesaikan selama Sprint berjalan. Pada akhir Sprint, increment harus memenuhi definisi “selesai” yang sebelumnya ditentukan oleh Scrum Team.
Dalam proyek pengembangan perangkat lunak, biasanya developers yang dimaksud adalah para programmers. Meskipun demikian, developers juga dapat mencakup writers, designer, dan lain-lain.
Karena dapat diisi oleh beberapa profesi maka keterampilan yang dibutuhkan oleh developers cukup luas dan bervariasi. Namun secara garis besar, developers akan selalu bertanggung jawab pada beberapa hal, seperti :
Membuat plan untuk setiap Sprint Backlog
Menyesuaikan plan dengan Sprint Goal setiap hari
Secara berangsur-angsur meningkatkan kualitas pada produk yang dikembangkan dengan tetap mengikuti definisi “selesai” yang sudah ditetapkan.
Saling bekerjasama dengan yang lain dalam pengembangan produk
Untuk menjadi tim developers, maka dibutuhkan skill untuk bisa self-organizing serta memiliki keterampilan yang dibutuhkan untuk memberikan increment.
Product Owner
Product Owner adalah orang yang bertanggung jawab untuk memastikan bahwa produk yang dihasilkan oleh Scrum Team memiliki value atau nilai yang maksimal. Oleh karena itu, seorang Product Owner biasanya akan memiliki pemahaman yang sangat baik mengenai kebutuhan bisnis dan kebutuhan teknis.
Selain itu, seorang Product Owner juga bertanggung jawab untuk mengelola Product Backlog yang efektif, yaitu meliputi :
Menentukan Product Goal dan menjelaskannya secara eksplisit
Membuat dan menyampaikan item-item Product Backlog dengan jelas
Order item Product Backlog
Memastikan Product Backlog transparan, visible, dan dapat dipahami dengan baik
Product owner dapat menghandle tugas-tugas di atas seorang diri atau meminta anggota tim lain untuk mengerjakannya. Meskipun demikian, tugas-tugas tersebut akan tetap menjadi tanggung jawab dari seorang Product Owner.
Idealnya, dalam sebuah tim hanya akan memiliki 1 orang Product Owner yang akan bertanggung jawab penuh. Karena jika mempunyai multiple Product Owner maka pembagian tanggung jawab diantara mereka akan menjadi tidak jelas.
Agar proses pengembangan produk dapat berjalan dengan baik, maka anggota tim harus menghormati apa yang sudah menjadi keputusan Product Owner. Di dalam Scrum Team, Product Owner memang memiliki peran yang penting karena posisi inilah yang akan mewakili berbagai kebutuhan dari para stakeholders yang kemudian akan dijabarkan dalam Product Backlog.
Jadi, ketika ada anggota tim yang ingin melakukan suatu perubahan pada item Product Backlog, maka mereka harus meminta persetujuan dari Product Owner terlebih dahulu.
Jika Anda tertarik untuk berada di posisi ini, maka terdapat beberapa keterampilan yang perlu dikuasai, seperti :
mampu memahami dengan baik apa saja yang menjadi kebutuhan dari para stakeholders
dapat menciptakan visi proyek yang powerfull
mengetahui dan memahami prioritas yang dibutuhkan untuk setiap item Product Backlog
Scrum Master
Scrum Master adalah orang yang bertanggung jawab untuk mendukung penggunaan Scrum yang baik di dalam tim. Mereka akan menjalankan tugas tersebut dengan cara membantu masing-masing anggota untuk dapat memahami bagaimana teori dan praktek yang harus dijalankan.
Selain itu, efektivitas dari Scrum Team juga menjadi tanggung jawab Scrum Master. Oleh karena itulah, Scrum Master akan berusaha memikirkan bagaimana pelaksanaan kerangka kerja Scrum yang terbaik untuk anggotanya.
Master scrum yang baik memang akan berkomitmen pada pondasi dan nilai-nilai yang ada pada Scrum. Meskipun demikian, mereka dapat tetap fleksibel dan terbuka untuk hal-hal yang berguna bagi tim untuk meningkatkan workflow mereka.
Scrum Master Sebagai Servant Leaders
Scrum Master dikenal sebagai servant leaders yaitu pemimpin yang melayani Scrum Team dan perusahaan. Mereka akan melayani tim dengan beberapa cara. Berikut beberapa contohnya.
Layanan Scrum Master untuk Scrum Team :
Melatih anggota tim dalam pengelolaan mandiri (self-management) dan keterampilan lintas fungsi (cross-functionality).
Membantu Scrum Team untuk bisa fokus kepada increments bernilai tinggi yang dapat memenuhi definisi “Selesai”.
Scrum Master akan membantu mengatasi hambatan atau masalah yang muncul demi kemajuan Scrum Team.
Scrum Master juga akan memastikan bahwa semua Scrum Event dapat berjalan dengan baik.
Layanan Scrum Master untuk Product Owner :
Menemukan teknik terbaik untuk menentukan Product Goal serta manajemen Product Backlog
Membantu Scrum Team untuk memahami perlunya Product Backlog item yang jelas dan padat
Membantu menetapkan product planning untuk complex environment
Scrum Master akan memfasilitasi jika ada kolaborasi yang dibutuhkan dengan stakeholder
Layanan Scrum Master untuk Perusahaan :
Memimpin, melatih, dan membimbing bagaimana cara dan penerapan Scrum yang baik di dalam perusahaan
Merencanakan dan memberi nasihat mengenai implementasi Scrum di perusahaan
Membantu karyawan dan para stakeholders untuk dapat memahami dan menerapkan pendekatan empiris untuk pekerjaan yang kompleks. Pendekatan empiris sendiri berarti pendekatan yang diperoleh dari observasi atau berdasarkan pada hal-hal yang sudah diamati sebelumnya.
Scrum Master akan mengatasi masalah atau hambatan yang muncul di antara stakeholders dan Scrum Teams.
Scrum Master berbeda dengan project manager atau project leader. Mereka tidak hanya memimpin tim namun juga melayani serta membantu tim untuk dapat mengikuti nilai-nilai Scrum dan beradaptasi dengan lingkungannya. Untuk menjadi seorang Scrum Master maka Anda harus mempelajari dan memahami teori, nilai-nilai, events, artifacts, serta team roles untuk kerangka kerja Scrum.
13. Sebutkan dan jelaskan XP Core values!
Core Values pada XP :
Komunikasi (Communication)
Kurangnya komunikasi merupakan penyebab utama kegagalan pengembangan software, maka XP mengfokuskan 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)
XP melakukan semua dengan sederhana dan praktis tanpa mengurangi fungsi utamanya. Diusahakan mengunakan method yang pendek dan simpel, jangan terlalu rumit dalam membuat desain, hilangkan fitur yang tidak ada gunanya atau menghapus fungsi yang tidak terpakai. Dengan kata lain lebih baik melakukan hal yang sederhana saat sekarang (sesuai kebutuhan) dan mengembangkannya besok jika diperlukan.
Umpan balik (Feedback)
Selalu mengevaluasi perkembangan terhadap perangkat lunak yang sedang dikerjakan, segala informasi harus dikumpulkan setiap interval waktu yang konsisten dan diskusikan kesalahan-kesalahan yang muncul selama proses pengembangan. Umpan balik tersebut berfungsi sebagai indikator kemajuan proyek dan menginformasikan pemimpin proyek apabila perubahan perlu dibuat.
Keberanian (Courage).
Programmer XP didorong untuk berani bereksperimen dan menulis ulang kode jika mereka tidak puas dengan kode yang sudah ada atau desain. Hal ini membantu mempertahankan moral serrta intgeritas para pengembang proyek dan dapat mendukung lebih lanjut komunikasi dengan anggota proyek lainnya.
Respect (Hormat)
Tim saling menghormati ide, budaya, nilai, dan cara mereka bekerja untuk mendapatkan hasil. Kualitas dan keberhasilan atau kegagalan proyek adalah tanggung jawab semua orang.
14. Sebutkan dan jelaskan XP Core practices!
“Extreme Programming” is a collection of 12 practices promoted by Ward Cunningham and Kent Beck.
The Planning Game: Business and development cooperate to produce the maximum business value as rapidly as possible. The planning game happens at various scales, but the basic rules are always the same:
Business comes up with a list of desired features for the system. Each feature is written out as a User Story, which gives the feature a name, and describes in broad strokes what is required. User stories are typically written on 4×6 cards.
Development estimates how much effort each story will take, and how much effort the team can produce in a given time interval (the iteration).
The business then decides which stories to implement in what order, as well as when and how often to produce a production release of the system.
Small Releases: Start with the smallest useful feature set. Release early and often, adding a few features each time.
System Metaphor: Each project has an organizing metaphor, which provides an easy to remember naming convention.
Simple Design: Always use the simplest possible design that gets the job done. The requirements will change tomorrow, so only do what’s needed to meet today’s requirements.
Continuous Testing: Before programmers add a feature, they write a test for it. When the suite runs, the job is done. Tests in XP come in two basic flavors.
Unit Tests are automated tests written by the developers to test functionality as they write it. Each unit test typically tests only a single class or a small cluster of classes. Unit tests are typically written using a unit testing framework, such as JUnit.
Acceptance Tests (also known as Functional Tests) are specified by the customer to test that the overall system is functioning as specified. Acceptance tests typically test the entire system or some large chunk of it. When all the acceptance tests pass for a given user story, that story is considered complete. At the very least, an acceptance test could consist of a script of user interface actions and expected results that a human can run. Ideally, acceptance tests should be automated, either using the unit testing framework, or a separate acceptance testing framework.
Refactoring: Refactor out any duplicate code generated in a coding session. You can do this with confidence that you didn’t break anything because you have the tests.
Pair Programming: All production code is written by two programmers sitting on one machine. Essentially, all code is reviewed as it is written.
Collective Code Ownership: No single person “owns” a module. Any developer is expected to be able to work on any part of the codebase at any time.
Continuous Integration: All changes are integrated into the codebase at least daily. The tests have to run 100% both before and after integration.
40-Hour Work Week: Programmers go home on time. In crunch mode, up to one week of overtime is allowed. But multiple consecutive weeks of overtime are treated as a sign that something is very wrong with the process.
On-site Customer: Development team has continuous access to a real live customer, that is, someone who will actually be using the system. For commercial software with lots of customers, a customer proxy (usually the product manager) is used instead.
Coding Standards: Everyone codes to the same standards. Ideally, you shouldn’t be able to tell by looking at it who on the team has touched a specific piece of code.
15. Apa saja role yang ada pada XP?
XP Team Roles
XP defines the team roles differently than Scrum—the XP roles are
coach,
customer,
programmer, and
tester.
Coach
The coach acts as a mentor to the team, guiding the process and helping the team members stay on track.
The coach is also a facilitator—helping the team become more effective—and a conduit, reinforcing communication both within the team and across teams. This role shares many responsibilities with a ScrumMaster. Although the formal definitions of these two terms differ, they are often used interchangeably.
Customer
On an XP team, the “customer” is the business representative who provides the requirements, priorities, and business direction for the project. This person defines the product that will be built, determines the priority of its features, and confirms that the product actually works as intended. This role is similar to the product owner in the scrum.
Programmers
The programmers are the developers who build the product by writing and implementing the code for
the requested user stories.
Testers
The testers provide quality assurance and help the customer define and write acceptance tests for the user stories. This role may also be filled by the developers (programmers), if they have the required skills.
16. Jelaskan yang dimaksud dengan Kanban (prinsip, pull system, WIP limit)
The Kanban method is derived from the lean production system developed at Toyota. “Kanban” is a Japanese word meaning“ sign board.” The signboard, or Kanban board as it is called, plays an important role in the Kanban methodology. This board shows the work items in each stage of the production process, as defined by the team. Here is a simple example of such a board:
Five Principles of Kanban:
Visualize the workflow.
Limit WIP (work inprogress)
Manage flow
Make process policies explicit
Improve collaboratively
Pull System
A Pull System is a lean technique that is used to control the flow of work by only replacing what has been consumed. This means that the trigger for work to be done is when a customer demands for it.
To better visualize a Pull System, take for example a vending machine. Products will only be replenished is when the stocks have run out. The suppliers won’t overstock the vending machine because each lane has a set capacity. If there is no demand for the product, then they won’t replenish it.
In the vending machine example, the customer pulls products from the vending machine. Having an empty rack is a signal for the vending company to tap their brand partners to replenish their stocks. Therefore, the vending company also pulls products from the brand partners. All these happen because they act according to customer demand.
This is exactly how a Pull System should work.
WIP Limit
In agile development, work in progress (WIP) limits set the maximum amount of work that can exist in each status of a workflow. Limiting the amount of work in progress makes it easier to identify inefficiency in a team's workflow. Bottlenecks in a team's delivery pipeline are clearly visible before a situation becomes dire.
WIP limits improve throughput and reduce the amount of work "nearly done", by forcing the team to focus on a smaller set of tasks. At a fundamental level, WIP limits encourage a culture of "done." More important, WIP limits make blockers and bottlenecks visible. Teams can swarm around blocking issues to get them understood, implemented, and resolved when there is a clear indicator of what existing work is causing a bottleneck. Once blockages are removed, work across the team begins to flow again. These benefits guarantee that increments of value are delivered to customers sooner, making WIP limits a valuable tool in agile development.
4 goals for agile teams using WIP limits
Goal 1: Size individual tasks consistently.
Goal 2: Map WIP limits to the team’s skills
Goal 3: Reduce idleness.
Goal 4: Protect a sustainable engineering culture.
17. Jelaskan bagaimana konsep Lean dan 7 waste?
When referring to lean in an agile context, we are really talking about a subset of lean called “lean product development.”While the original lean production systems dealt with manufacturing products, lean product development deals with developing new and better products. High high-level principles of lean
product development includes:
» Using visual management tools
» Identifying customer-defined value
» Building learning and continuous improvement
Seven concepts lean:
Eliminate waste
Empower the team
Deliver fast
Optimize the whole
Build quality in
Defer decisions
Amplify learning:
18. Jelaskan secara singkat Feature-Driven Development (FDD)!
Feature-driven development (FDD) is a simple-to-understand yet powerful approach to building products or solutions. A project team following the FDD method will first develop an overall model for the product, build a feature list, and plan the work. The team then moves through design and build iterations to develop the features.
FDD recommends a set of good practices, derived from software engineering. These practices include:
Domain object modelling
Developing by feature
Individual class (code) ownership
Feature teams
Inspections
Configuration management
Regular builds
Visibility of progress and results
19. Jelaskan secara singkat Dynamic Systems Development Method (DSDM)!
DSDM was one of the earlier agile methods, and it started out quite prescriptive and detailed. Its coverage of the project life cycle is broad, encompassing aspects of an agile project ranging from feasibility and the business case to implementation. The figure below illustrates theDSDMlife cycle.
DSDM is centred on eight principles. Although these principles were created before the Agile Manifesto was written, they are closely aligned to the Manifesto. The eight principles are:
1. Focus on the business need
2. Deliver on time
3. Collaborate
4. Never compromise quality
5. Build incrementally from firm foundations
6. Develop iteratively
7. Communicate continuously and clearly
8. Demonstrate control
DSDMhas influenced the development of agile by helping to popularize early architectural
considerations, agile suitability filters, and agile contracts.
20. Jelaskan secara singkat Crystal!
Crystal isn’t just one method; it consists of a family of situationally specific, customized methodologies that are coded by colour names. Each methodology is customized by criticality and team size, which allows Crystal to cover a wide range of projects, from a small team building alow-criticality system (Crystal Clear) to a large team building a high-criticality system (CrystalMagenta).
The Crystal framework provides a great example of how agile methods can be tailored to match the specific characteristics of a project. For example, the figure below shows the first five “colors” (methodologies) of crystal.
21. Jelaskan prinsip Kepemimpinan vs Manajemen
The leadership techniques employed on agile projects involve taking an interpersonal approach, rather than directing, command-and-control methods.
Management has a more mechanical focus than leadership;it is concerned with tasks, control, and speed.
22. Sebutkan dan jelaskan tugas utama dari seorang servant leader!
There are four primary duties a leader performs in this role of serving the team:
1. Shield the team from interruptions
2. Removeimpediments to progress
3. Communicate (and re-communicate) the project vision
4. Carry food and water (providing the essential resources a team needs to keep them nourished and productive.)
23. Sebutkan dan jelaskan 12 prinsip dalam memimpin proyek Agile menurut Jeffrey
Pinto Dalam Project Leadership: from Theory to Practice!
Twelve Principles for Leading Agile Projects
In addition to the four core duties we’ve just discussed, there are other activities that servant leaders should keep in mind. Jeffrey Pinto, in Project Leadership: from Theory to Practice, offers the following great list of principles for leaders to follow:
Learn the team members needs
Learn the project’s requirements
Act for the simultaneous welfare of the team and the project
Create an environment of functional accountability
Have a vision of the completed project
Use the project vision to drive your own behaviour
Serve as the central figure in successful project team development
Recognize team conflict as a positive step
Manage with an eye toward ethics
Remember that ethics is not an afterthought, but an integral part of our thinking
Take time to reflect on the project
Develop the trick of thinking backwards
24. Hal apa saja yang perlu dibangun oleh seorang pemimpin dalam menciptakan
lingkungan proyek yang produktif?
As leaders, we can help create a productive project environment by using practices like :
modelling the behaviour we want the team to follow,
Communicating the project vision,
Enabling stakeholders to act, and
Being willing to challenge the status quo.
In The Leadership Challenge, Kouzes and Posner describe a 10-year study that asked more than 75,000 people, “What values, personal traits, or characteristics do you look for or admire in your leader?
The following were the highest-ranked values:
Honesty
Forward-looking
Competent
Inspiring
25. Sebutkan dan jelaskan tugas-tugas kepemimpinan dalam Agile!
Practice Transparency through Visualization
Create a Safe Environment for Experimentation
Experiment with New Techniques and Processes
Share Knowledge through Collaboration
Encourage Emergent Leadership via a Safe Environment.
Beberapa tugas kepemimpinan dalam agile:
Praktek Transparansi melalui Visualisasi
Ciptakan Lingkungan yang Aman untuk Eksperimen
Bereksperimenlah dengan Teknik dan Proses Baru
Berbagi Pengetahuan melalui Kolaborasi
Dorong Kepemimpinan yang Muncul melalui Lingkungan yang Aman.
No comments:
Post a Comment