Anda di halaman 1dari 46

Analisis dan spesifikasi Kebutuhan

pendekatan agile
Minggu 04 - RPLBO
Objectives 1. Memperkenalkan konsep dari user
requirement secara agile
2. Mampu mengembangkan user story

2
Pertanyaan…

Bayangkan Anda sebagai seorang vendor atau


penyedia jasa pembuat buku menu makanan.

Suatu saat, Anda menerima calon pelanggan Anda


yang meminta Anda untuk membuatkan katalog
menu makanan dan minuman di rumah makannya.

Apa yang Anda lakukan?

Mari kita gambarkan blok diagramnya.


Sejarah singkat software requirement Method

Semakin lama kekuatan komputer meningkat Software bukan barang fisik tapi sebuah ide yang
menjadi 10,000 kali lipat. tercermin dalam kode biner. Sehingga fokus metode
ada pada: “managing software requirements.”
Kita berubah dengan cepat dari yang hanya simulasi
sederhana sampai benar-benar menerbangkan Namun, software semakin besar dan metode
pesawat komersial.
terkendali semakin membuat berat. Proses menjadi
lambat, pada hasil yg ingin dicapai:
Maka konsekuensi kegagalan dan keberhasilan
makin besar. - deliver higher-value
- higher-quality software
Untuk mengurangi kegagalan dan hanya
menghasilkan yg diinginkan → metodologi
terstruktur dan terkendali. ⇒ SDLC mulai berubah ke “agile” dan “leaner”
Software Process
Predictive Process

Requirement pada waterfall menyiratkan bahwa ada Pendekatan ini, menurut Thomas (2001),
serangkaian persyaratan yang dapat ditentukan “Manajemen cakupan yang terkait dengan upaya
secara wajar "di muka" dan ini kemudian dapat praktik waterfall adalah satu-satunya faktor
digunakan sebagai dasar untuk memperkirakan penyebab kegagalan terbesar.”
jadwal dan anggaran proyek.
Mengapa?????
Iterative dan Incremental: Spiral

● Perkembangan pemahaman yang cepat ● persyaratan masih memiliki placeholder awal


melalui penemuan eksperimental (spiral) yang kuat.
● Pass awal di sekitar spiral dimaksudkan
terutama untuk memahami persyaratan dan
melakukan beberapa validasi persyaratan
sebelum pengembangan yang lebih serius
dimulai
Iterative dan Incremental: RAD

● Pembuatan model, prototipe, dan sistem awal ● Dari perspektif requirement, asumsinya
yang cepat menggunakan alat yang lebih adalah jika Anda dapat membuatnya cukup
canggih (RAD) cepat sebelum persyaratan berubah, Anda
akan lebih berhasil.
● Dan jika Anda salah, alatnya cukup mudah
dan ringan sehingga Anda dapat
membangunnya kembali lebih cepat daripada
menggunakan metode penemuan persyaratan
tradisional.
Iterative dan Incremental: RUP

● Pengembangan iteratif dan inkremental dari ● kegiatan seperti "Requirement" tidak lagi
sistem yang lebih besar dan lebih kompleks diturunkan ke fase tunggal.
(RUP) ● Meskipun kegiatan persyaratan sangat
intensif selama fase awal dan elaborasi awal,
elaborasi persyaratan dan perubahan
persyaratan dianggap sebagai proses
berkelanjutan yang terjadi sepanjang siklus
hidup.
Agile (Adaptif)

● Proses software telah terjadi ledakan model ● Model-model tersebut berasumsi bahwa,
yang lebih ringan dan lebih adaptif. dengan alat dan praktik pengembangan yang
● Berbagai metode: tepat, akan :
○ Dynamic Systems Development Method ○ lebih hemat biaya untuk menulis kode dengan
(DSDM), cepat,
○ Feature-Driven Development (FDD), ○ dievaluasi oleh pelanggan dalam penggunaan
○ Adaptive Software Development, sebenarnya,
○ Scrum, Extreme Programming (XP), ○ menjadi "salah" (jika perlu), dan dengan cepat
○ Open Unified Process (Open UP), refactoring daripada sebelumnya.
○ Agile RUP, ○ untuk mencoba mengantisipasi dan
○ Kanban, mendokumentasikan semua persyaratan di
○ Lean, muka.
○ Crystal Methods
○ dll.
The Agile Core Beliefs

Kami menemukan cara yang lebih baik untuk mengembangkan perangkat lunak dengan melakukannya dan
membantu orang lain melakukannya. Melalui pekerjaan ini kami telah mencapai nilai:

Individuals and interactions over processes and tools

Customer collaboration over contract negotiation

Working software over comprehensive documentation

Responding to change over following a plan

Artinya, meskipun ada nilai pada item di sebelah kanan, kami lebih menghargai item di sebelah kiri.
The Agile Manifesto

Prinsip inti sebagai kerangka umum untuk semua metode 7. Metode penyampaian informasi yang paling efisien
agile: dan efektif ke dalam tim pengembangan adalah
1. Prioritas tertinggi kami adalah untuk memuaskan percakapan tatap muka.
pelanggan melalui pengiriman perangkat lunak 8. Proses tangkas mempromosikan pembangunan
berharga yang lebih awal dan berkelanjutan.
berkelanjutan. Sponsor, pengembang, dan pengguna
2. Menyambut perubahan persyaratan, bahkan di akhir
pengembangan. Proses gesit memanfaatkan harus dapat mempertahankan kecepatan konstan
perubahan untuk keunggulan kompetitif pelanggan. tanpa batas.
3. Perangkat lunak yang berfungsi adalah ukuran 9. Perhatian terus menerus terhadap keunggulan teknis
kemajuan utama. dan desain yang baik meningkatkan ketangkasan.
4. Kirimkan perangkat lunak yang berfungsi sesering 10. Kesederhanaan—seni memaksimalkan jumlah
mungkin, dari beberapa minggu hingga beberapa pekerjaan yang belum selesai—sangat penting.
bulan, dengan preferensi pada skala waktu yang lebih 11. Arsitektur, persyaratan, dan desain terbaik muncul dari
singkat. tim yang mengatur diri sendiri.
5. Pelaku bisnis dan pengembang harus bekerja sama 12. Secara berkala, tim merefleksikan bagaimana
setiap hari selama proyek berlangsung.
menjadi lebih efektif, kemudian menyelaraskan dan
6. Bangun proyek di sekitar individu yang termotivasi.
Beri mereka lingkungan dan dukungan yang mereka menyesuaikan perilakunya.
butuhkan, dan percayakan mereka untuk
menyelesaikan pekerjaan.
Requirements management in agile

Prinsip inti agile terkait requirement: Fokus Tim pada:


● delivering early,
● value added stories into an integrated
Manifesto principle #1—Prioritas tertinggi kami
baseline.
adalah untuk memuaskan pelanggan melalui
pengiriman perangkat lunak berharga yang lebih Keuntungan Early delivery:
awal dan berkelanjutan. ● menguji requirement dan asumsi arsitektural
● resiko berkurang atas asumsi tersebut
Manifesto principle #2—Menyambut perubahan
⇒ Stakeholder tidak lagi perlu deg2an menunggu
requirement, bahkan di akhir pengembangan. aplikasi jadi selama berbulan-bulan, berharap tim
Proses gesit memanfaatkan perubahan untuk membangun hal yang benar.
keunggulan kompetitif pelanggan.
Requirements management, berubah menjadi:
lebih temporal, interaktif, dan just-in-time.
Goodbye Iron Triangle

Fix quality—deliver a small increment in a timebox—repeat.


The Big Picture
of Agile Requirements
The Big Picture
of Agile Requirements
The Big Picture of Agile Requirements

The Team Level The Portfolio Level


Tim menentukan, membuat dan menguji team user Pekerjaan yang dilakukan adalah pekerjaan yang
stories dalam rangkaian iterasi dan rilis
diperlukan perusahaan untuk mewujudkan strategi
Product owner bertanggung jawab untuk mengelola
backlog dari user stories dan hal lainnya yang harus bisnis.
dilakukan tim. Dalam hal ini tidak hanya Tim IT saja yang
menerapkan agile, tp seluruh perusahaan.
The Program Level
Program Level akan berisi banyak tim untuk
memberikan solusi melalui “Agile Release Train”
(ART). ART adalah standar iterasi dan milestones
dengan tanggal dan kualitas yang diatur, namun scope
bervariasi.
Product manager bertanggungjawab mendefinisikan
fitur
User Story User story ≡ software requirements

objek utama yang membawa kebutuhan


pelanggan melalui aliran nilai—dari analisis
kebutuhan melalui kode dan implementasi

User Story adalah pernyataan niat singkat yang


menggambarkan sesuatu yang perlu dilakukan
sistem untuk beberapa pengguna.

Mengidentifikasi, memelihara, memprioritaskan,


menjadwalkan, mengelaborasi, menerapkan,
menguji, dan menerima user story adalah proses
manajemen requirement utama yang bekerja di
agile.
User Story…
Agile melihat dokumentasi sebagai sesuatu yang:
● Just enough berarti cukup untuk
menggambarkan kebutuhan suatu project.
● Just in time berarti dibuat pada saat last
responsible moment
● Just because berarti dokumen tersebut
dibuat jika diminta atau dibutuhkan.

Agile != mengabaikan dokumentasi


Dalam manifesto Agile: DOKUMENTASI MINIMAL.
Working software over comprehensive
documentation Tentukan user value story, implementasikan
dan uji dalam iterasi singkat, demonstrasikan
dan/atau kirimkan ke pengguna, ulangi

selamanya!
Relasi terkait requirement dalam metode Agile
User Story

● US bukan spesifikasi kebutuhan terperinci


User Story menjadi jembatan antara developer dan
● US singkat, mudah dibaca, dan dapat dipahami
customer. oleh pengembang, pemangku kepentingan, dan
pengguna.
User story secara material berbeda dalam sejumlah ● US mewakili peningkatan kecil dari fungsionalitas
cara dalam spesifikasi kebutuhan. bernilai yang dapat dikembangkan dalam periode
hari hingga minggu.
● US relatif mudah diperkirakan
Singkatnya:
● US tidak dibawa dalam dokumen besar dan berat
- US berfokus pada experience ● US tidak rinci pada awal proyek
- Requirement berfokus pada fungsionalitas ● US membutuhkan sedikit atau tanpa pemeliharaan
dan dapat dibuang dengan aman setelah
implementasi
● UC dan kode yang dibuat dengan cepat
setelahnya, berfungsi sebagai masukan untuk
dokumentasi, yang kemudian juga dikembangkan
secara bertahap.
Card, Conversation, and Confirmation

Merupakan model yang menangkap komponen user Conversation


story ● mewakili diskusi antara tim, pelanggan,
product owner, dan stakeholders, yang
Card diperlukan untuk menentukan perilaku yang
● Berisi informasi yang cukup (tidak kurang dan lebih mendetail yang diperlukan untuk
tidak lebih) yang dapat dipahami tim untuk mengimplementasikan maksud tersebut.
merencanakan dan mengestimasi story. ● Card mewakili “janji untuk Conversation”
● Merangkum niat dan mewakili requirement tentang maksud tersebut.
yang lebih detail, yang detailnya masih harus
ditentukan.
Card, Conversation, and Confirmation

Confirmation ●
● mewakili kondisi satisfaction yang akan
diterapkan untuk menentukan apakah story
memenuhi maksud dan requirement yang
detail
● memunculkan kriteria acceptance untuk
sebuah story berdasarkan conversation
● Kriteria ini akan digunakan untuk
mengevaluasi story saat user story
diimplementasikan
User Story

User story adalah pernyataan singkat yang Stories are maintained in the teams backlog
menjelaskan sesuatu yang perlu dilakukan sistem
untuk pengguna. Hanya ada 1 backlog dalam tim. Semua pekerjaan
harus berasal dari backlog.
Format:
As a <user role>,
I can <activity>
so that <business value>
User Story

As a <user role>, Disebut sebagai bentuk “user voice” dari ekspresi


cerita pengguna dan menganggapnya sebagai
I can <activity> so that <business value>
konstruksi yang sangat berguna, karena
● mencakup ruang masalah (<business value>
● <role> mewakili siapa yang melakukan aksi atau
delivered)
seseorang yang menerima nilai dari aksi
● ruang solusi (<activity> pengguna sistem)
● <activity> mewakili aksi yang akan dilakukan
● memberikan perspektif yang mengutamakan
oleh sistem.
pengguna (<role>)
● <business value> mewakili “nilai” yang dicapai
oleh aktivitas
keeps them focused on business value and solving
real problems for real people.
User Story

Contoh: pengguna dalam home Kita bisa membuat good dan bad user story
energy-management system ingin:

As a Consumer (<role>), I want to be able to see my


Bill Wake menyarankan untuk I.N.V.E.S.T.
daily energy usage (<what I do with the system>) so
that I can lower my energy costs and usage Independent
(<business value I receive>) Negotiable
Valuable
Estimable
Small
Testable
INVEST in good user stories

Independent ● Hindari ketergantungan pada cerita lain


● Menulis cerita untuk membangun fondasi
Negotiable
sistem
Valuable ● Gabungkan cerita untuk satu iterasi
Estimable
Small
setiap cerita dapat berdiri sendiri dan dapat
Testable dikembangkan, diuji, dan di-deliver mandiri.
INVEST - Independent

As an administrator, I can set the consumer’s As an administrator, I can set the password
password security rules so that users are required to expiration period so that users are forced to change
create and retain secure passwords, keeping the their passwords periodically.
system secure.
As an administrator, I can set the password strength
As a consumer, I am required to follow the password characteristics so that users are required to create
security rules set by the administrator so that I can difficult-to-hack passwords.
maintain high security to my account.
INVEST in good user stories

Independent user story bukan contract untuk fungsional tertentu,


tp pengganti untuk requirement yang akan dibahas,
Negotiable . . . and Negotiated
dikembangkan, diuji, dan diterima.
Valuable
Estimable user story bersifat real-time and terstruktur dalam
memanfaatkan efektifitas komunikasi dan
Small
kolaborasi langsung
Testable
menangkap esensi kebutuhan user (not too detail)
INVEST in good user stories

Independent Value merupakan atribut yang paling penting. user


story dapat memberikan value atau manfaat kepada
Negotiable
user, customer, atau stakeholder dari produk.
Valuable
Estimable Backlog diprioritaskan berdasarkan value
Small
Meskipun biasanya value berfokus pada interaksi
Testable user dan sistem, terkadang value lebih tepat jika
difokuskan pada customer representative or key
stakeholder.
INVEST - Value

As a consumer, I can see other energy pricing Refactor the error logging system.
programs that appeal to me so that I can enroll in a
program that better suits my lifestyle.

As a consumer, I can receive a consistent and clear


error message anywhere in the product so that I
know how to address the issue.
As a utility marketing director, I can present users OR
with new pricing programs so that they are more As a technical support member, I want the user to
likely to continue purchasing energy from me. receive a consistent and clear message anywhere in
the application so they can fix the issue without
calling support.
INVEST in good user stories

Independent User Story harus memiliki detail yang cukup agar


tim pengembang dapat memahami dan
Negotiable
memperkirakannya
Valuable
Estimable Estimasi juga berguna untuk menentukan prioritas
Small
Testable
INVEST in good user stories

Independent User Story harus cukup kecil sehingga bisa


diselesaikan dalam 1 iterasi.
Negotiable
Valuable alasan utama: increased throughput dan decreased
Estimable complexity.
Small
Story yang kecil dapat memberikan higher value
Testable through-put dan feedback user dengan lebih cepat

agilist always leans to smaller stories and then


makes them smaller still.
INVEST in good user stories

Independent Kriteria acceptance harus jelas dalam User Story

Negotiable
USer Story tidak boleh dimulai jika belum memiliki
Valuable kriteria yang jelas dan dapat diterima
Estimable
Pelanggan harus jelas tentang apa yang harus dia
Small
uji selama proses review.
Testable
INVEST - Testable

Acceptance Criteria:

Read DecaWatt meter data every 10 seconds and


display on portal in 15-minute increments and display
As a consumer, I want to be able to see my daily on in-home display every read.
energy usage so that I can lower my energy costs
and usage. Read KiloWatt meters for new data as available and
display on the portal every hour and on the in-home
display after every read. No multiday trending for
now (another story).

Etc....
Contoh 1 Epic

E.1. Sebagai Nasabah Perbankan, saya ingin


mengakses net banking, sehingga saya dapat
mengakses rekening saya dan melakukan transaksi
Contoh 1 Features

E.1.1. Sebagai Nasabah Perbankan, saya ingin


mengakses rekening Tabungan agar saya dapat
melihat/melakukan transaksi
E.1.2. Sebagai Nasabah Perbankan, saya ingin
mengakses halaman Kartu Kredit, sehingga saya
dapat melihat dan melakukan transaksi
E.1.3. Sebagai Nasabah Perbankan, saya ingin
mengakses halaman Pinjaman sehingga saya dapat
melihat pinjaman saya
E.1.4. Sebagai Nasabah Perbankan, saya ingin
mentransfer dana, sehingga saya dapat memindahkan
dana saya ke rekening yang berbeda di dalam bank
saya dan bank lain
User Story

Contoh 1 E.1.1.1. Sebagai Nasabah Perbankan, saya ingin


mengakses/melihat ringkasan rekening tabungan saya,
sehingga saya mengetahui saldo saya dan rincian lainnya

E.1.2.1. Sebagai Pelanggan Perbankan, saya ingin Login


ke Net banking sehingga saya dapat melihat detail kartu
kredit

E.1.4.1. Sebagai Nasabah Perbankan, saya ingin


mentransfer dana ke dalam rekening saya sendiri sehingga
saya dapat memindahkan sebagian saldo ke rekening saya

E.1.4.2. Sebagai Nasabah Perbankan, saya ingin


mentransfer dana dari rekening saya ke rekening lain di
bank lain, sehingga saya dapat mengirim uang ke keluarga
dan teman-teman saya yang memiliki rekening di bank lain

E.1.4.3. Sebagai Nasabah Perbankan, saya ingin


menambahkan penerima ke rekening saya, sehingga saya
dapat mentransfer dana ke penerima
Epic

Contoh 2 E.1. Sebagai Acquisition Gateway User, saya perlu


mengakses platform pemesanan Akuisisi dengan login
yang aman agar saya dapat membeli produk.
User Story

Contoh 2 E.1.1 Sebagai Acquisition Gateway User, saya perlu


memilih produk Lelang di platform pemesanan Akuisisi agar
saya dapat menawarnya.

E.1.2. Sebagai Acquisition Gateway User, saya perlu


meninjau tawaran saya sebelumnya di platform pemesanan
Akuisisi sehingga saya dapat menghapus tawaran yang
kedaluwarsa.
Acceptance Criteria

Contoh 2 A.E.1.1 Pastikan Acquisition Gateway User dapat:

● masuk ke Acquisition Gateway


● buka halaman Lelang
● dapat memilih produk untuk ditawar

A.E.1.2. Pastikan Acquisition Gateway User dapat:

● masuk ke Acquisition Gateway


● buka halaman untuk meninjau item yang sebelumnya
ditawar
● pilih satu, atau beberapa, tawaran kedaluwarsa
● menghapus tawaran yang kedaluwarsa
42
Konklusi…

43
Referensi

Leffingwell, D. 2011. Agile Software Requirements: Lean Requirements Practices for Teams, Programs, and the
Enterprise

44
Quiz

Kerjakan Kuis Mengenai Materi Hari ini pada moodle.

Quiz akan dibuka 1 HARI (Sabtu jam 12.05 - Minggu jam 12.05)

Terdapat 15 SOAL dalam waktu 30 menit

45
46

Anda mungkin juga menyukai