Agile Scrum

Okay, it’s not something new but i want so share what i’ve learn to all of you *who read this post* and, also for myself someday i need this kind of documentation.

And i’m sorry karna postingan akhir2 ini lebih ke teori2 saja, ga ada tutorial maupun contoh2 praktiknya, nanti ya, nanti kalau saya udah mulai terjun, #hohhhh#

Well, now we start :

Agile Scrum ; ini merupakan salah satu SDLC (System Development Life Cycle). Mungkin yang familiar bagi teman-teman, SDLC yang udah dari jaman lama, yang mungkin masih sebagian besar teman-teman pakai sampai sekarang yaitu Waterfall. Sebuah metodologi pengembangan perangkat lunak yang sistematik dan sequensial, urut mulai dari requirement, design, implementation, verification hingga maintenance.

waterfall

waterfall

Waterfall ini rigid (kaku), jadi harus bener-bener step by step, kalau satu tahap belum selesai, tidak diperkenankan untuk memulai tahap selanjutnya. Nah, disini yang jadi kendala, apabila ketika kita akan membangun suatu sistem, biasanya requirement dari customer sering berubah-ubah, jadi terkadang sampai tahap analisa ga kelar-kelar karena ada banyak perubahan, sementara makin lama disitu, makin banyak cost. Dan waktu juga terus berjalan, bisa jadi lebih lama. Sementara project ini kejar tayang, so, terkadang kita terpaksa langsung terjun koding dengan desain yang ada, perkara ada perubahan jadi disampaikan ditengah jalan, tidak efektif bukan? Belum lagi ketika soal dokumentasi, entah versi yang keberapa yang diimplementasikan dalam code. Itu di tahap perqancangan, bayangin, jika itu terjadi setelah release? Serasa ngulang kembali dari awal kan? hehe

Agile , mulai diperkenalkan pada tahun 90-an. Kata agile bersifat cepat, ringan, bebas bergerak sehingga metode ini sangat adaptive, terdiri dari perencanaan-perencanaan jangka pendek sehingga dapat cepat dalam merespon perubahan.

Agile manifesto :

  1. Individual and interactive
  2. Working software
  3. Customer Collaboration
  4. Responding to change

Scrum adalah sebuah kerangka kerja untuk menyelesaikan permasalahan kompleks yang senantiasa berubah, di saat yang bersamaan, menghasilkan produk bernilai tinggi dengan kreatif & produktif ~ Scrum Guide (Juli 2013), Ken & Jeff.

Understanding Scrum

Berikut gambaran mengenai scrum, agar lebih mudah dipahami 🙂

scrum-activity

Scrum Activity

Scrum adalah suatu kerangka kerja yang menggunakan pendekatan Agile, dimana kita membuat perencanaan-perencaan jangka pendek dan cepat untuk meresponse perubahan. Pendekatan team-based, kolaborasi antar team member sangat diperlukan dalam mengerjakan suatu project. Scrum merupakan iterative dan incremental, jadi, terdiri dari pengulangan-pengulangan, dalam scrum disebut sprint dengan goal yang telah ditentukan sebelumnya, sehingga akan ada peningkatan tentang pekerjaan yang telah selesai berdasarkan product backlog yang telah dibuat. Dan scrum, selalu fokus untuk mendeliver suatu product bernilai tinggi.

Scrum Roles

  1. Product Owner, bertanggungjawab untuk membuat dan mengelola prooduct backlog agar transparan, jelas dan mudah dipahami. Product owner harus paham betul tentang product yang akan dibangun, memaksimalkan nilai product dan kinerja tim. Similar to Project Manager.
  2. Scrum Master, memastikan scrum telah dipahami dan dilaksanan oleh semua team member, mengikuti teori, praktik dan aturan main dalam scrum serta memfasilitasi acara-acara scrum, misal : daily scrum meeting. Similar to Team Leader.
  3. Team Member, cross-functional, team harus lengkap, terdiri dari analys, programmer, QA dll. Setiap team member itu self-organize, bertanggungjawab pada pekerjaanya masing-masing. Saat sprint planning, dia sendiri yang akan menentukan akan mengerjakan apa, dalam waktu berapa lama, dan dia harus commit pada pekerjaannya.

Scrum Ceremony

  1. Sprint Planning adalah pertemuan diawal sprint untuk menentukan sprint yang akan dijalankan. Memilih item dari product backlog, mana yang akan dikerjakan, kemudian mendetailkannya menjadi sprint backlog.
  2. Sprint Review, meeting setelah sprint telah selesai. Mereview pekerjaan yang dikerjakan selama sprint, mana saja sudah selesai, masih ada yang pending, atau masih on going untuk dilanjutkan ke sprint berikutnya. Atau sudah benar-benar done. Definisi done disini yang memutuskan adalah product owner. Benar-benar sudah selesai atau masih harus diperbaiki lagi.
  3. Sprint Retrospective, pertemuan diakhir sprint, setelah sprint review mengenai cara kerja dalam sprint, apakah sudah baik dan dipertahankan pada sprint selanjutnya, ataukah ada yang perlu diperbaiki, misalnya pola komunikasi antar team selama ini bagaimana, sudah bagus atau perlu ditingkatkan.
  4. Daily Scrum Meeting merupakan pertemuan setiap hari, setiap pagi sebelum mulai bekerja. Dihadiri semua team member, dipimpin oleh scrum master. Semua berdiri, diwaktu yang sama dan ditempat yang sama setiap harinya. Ada 3 pertanyaan yang harus dijawab oleh setiap team member, yaitu : ‘What did you do yesterday?’ ‘What will you do today?’ and ‘Is anything on your way?’; Yang perlu diingat, daily scrum ini bukanlah tempat problem solving. Pertemuan berlangsung hanya selama 10-15menit setiap pagi.

Scrum Artifacts

  1. Product Backlog adalah daftar kebutuhan sebuah system, ini dibuat oleh product owner, dan disusun berdasarkan prioritas pada setiap itemnya. Berupa story line, misal as a user, i want to log in, so i can access the web. Atau bisa berupa task based, misal : tambahkan validasi di setiap form, jika user tidak melakukan aktifitas selama 2 jam maka sistem akan otomatis log out.
  2. Sprint Backlog adalah subset dari product backlog item yang detailkan menjadi task-task untuk sebuah sprint yang dibuat oleh team member. Teriri dari nama task, siapa yang mengerjakan dan estimasi pekerjaan (dalam jam) Setiap item punya status dan harus diupdate setiap hari (not started, in progress, done).
  3. Chart Burndown merupakan grafik yang merepresentasikan pekerjaan yang telah selesai. Bisa berupa progress sprint, progress backlog, maupun release burndown chart. Dari grafik ini kita dapat melihat pekerjaan yang telah selesai, yang belum dikerjakan dan estimasi waktu yang tersisa.

Berikut gambaran Scrum activity :

scrum activity

scrum activity

Dari product backlog yang telah dibuat, kemudian kita membuat rencana sprint dari item-item yang ada di product bakclog yang kita sebut dengan sprint backlog. Berisi detail pekerjaan yang akan dilakukan, siapa yang akan mengerjakan,  stimasi lama pengerjaan, dan juga status pekerjaan (done, on going, atau not started). Sprint meeting dilakukan 2 sampai 4 minggu sekali, sedangkan dalam jalannya sprint, akan ada daily scrum meeting yang durasinya 20-15menit setiap pagi yang akan difasilitasi oleh Scrum Master. Dari hasil sprint ini kemudian akan terlihat pekerjaan mana saja yang sudah selesai, sehingga menghasilkan product increment.

Untuk lebih detailnya saya upload File .ppt tentang ini  di academia sih, bisa di download untuk teman-teman.. ada contoh-contoh backlog di scrum, juga ada sedikit review perbandingannya dengan waterfall dan spiral model.

https://www.academia.edu/15355242/Agile_Scrum

Semoga bermanfaat ya teman-teman ^_^

 

 

 

 

Advertisements

Data Mining

Got a new thing to learn , and yes : Data Mining!

Learning from zero, i gotta strenghten my feet, i gotta be strong *halah*

 

Generally, data mining (sometimes called data or knowledge discovery) is the process of analyzing data from different perspectives and summarizing it into useful information – information that can be used to increase revenue, cuts costs, or both. Data mining software is one of a number of analytical tools for analyzing data. It allows users to analyze data from many different dimensions or angles, categorize it, and summarize the relationships identified. Technically, data mining is the process of finding correlations or patterns among dozens of fields in large relational databases.

Yep, so data mining adalah adalah serangkaian proses untuk menggali nilai tambah berupa informasi yang selama ini tidak diketahui secara manual dari suatu   basisdata yang bisa digunakan untuk meningkatkan revenue, mengurangi biaya, atau keduanya. Informasi yang dihasilkan diperoleh dengan cara mengekstraksi dan mengenali pola yang penting atau menarik dari data yang terdapat dalam basisdata.

Well, detailnya besok lagi atau saya sambung di artikel berikutnya ya, injury time pulang 😛

Cara Menginstall Phonegap untuk Android Apps Development

Screens are small, apps are big, and life as we know it is on its head again. In a world that’s increasingly social and open, mobile apps play a vital role, and have changed the focus from what’s on the Web, to the apps on our mobile device. Mobile apps are no longer an option, they’re an imperative. You need a mobile app, but where do you start?

Sebenarnya build hybrid apps itu gampang aja kok, yg penting adalah bisa sampai running appsnya, jadi prepare apa apa saja yang kita butuhkan. Like node.js, ants, phonegap dll.

Ini singkat saja ya, hehe, untuk instalasi phonegap sampai bisa run di android Emulator.

  1. Yang pertama dan utama, wajib punya android sdk.  Kalau belum punya, bisa download di http://developer.android.com/sdk/index.html –
  2. Java SDK latest version
  3. Install node.js, ini disini -> http://nodejs.org/download/
  4. Install phonegap, liat docsnya phonegap nih -> http://phonegap.com/install/
    1. Setelah berhasil install nodejs, lalu buka nodejs command prompt.. emm, ini command promt nya node js ya, jadi ntar setelah install nodejs, trs search aja command prompt dari start menu, pilih yg nodejs command prompt.
    2.  Kemudian Jalankan : npm install -g phonegap , ntar dia ngedownload, tunggu aja sampe selesai.
    3. Create apps? Liat lebih lengkapnya di CLI interface ini : http://docs.phonegap.com/en/edge/guide_cli_index.md.html#The%20Command-Line%20Interface
    4. Contoh create project, misal saya buat di drive D, masuk ke dir D, so

      C:\Users\Feni\ D:
      D:\ phonegap create hello com.example.hello HelloWorld
      Cek d drive D, akan ada folder hello 😀

      Oke, sampai sini udah berhasil install phonegap dan create project helloworld di drive D. Yang selanjutnya caranya biar bisa run d emulator kitah 😀

  5. Oiya, download juga  http://ant.apache.org/, extract aja di C:\.
    Dan ini dia link downloadnya => http://www.mediafire.com/download/0v4cmor7s2188m2/apache-ant-1.9.3-bin.zip
  6. Kalo udah add path nya di ->
    Buka explorer, klik kanan My computer -> Properties -> Advanced System Settings -> Pilih Tab Advaced -> Klik Environtment variables.
    1. Saya menambahkan 3 path untuk Android SDK, ants,sama java sdk tadi 😀
    2. Caranya, klik new aja, terus isikan variable name dan value nya:

    Misal kaya punya saya ini :

    ANDROID_HOME itu path ke sdknya, misal punya saya ,
    [variable name -> value], seperti dibawah ini:
    D:\Masandro Dev\adt-bundle-windows-x86-20130917\sdk
    JAVA_HOME -> C:\Program Files (x86)\Java\jdk1.6.0_22
    ANT_HOME -> C:\apache-ant-1.9.3

    And finally, EDIT variable PATH, valuenya menjadi :

    C:\Users\Feni\AppData\Roaming\npm;%JAVA_HOME%\bin;%ANT_HOME%\bin;%ANDROID_HOME%\tools;%ANDROID_HOME%\platform-tools

    Perhatikan ada tambahan2 dibelakangnya, /bin dan untuk ANDROID_HOME di tambah dua kali, untuk tools sama platform-tools 😀

    Kalo udah, saatnya mencoba menjalankan di emulator kita.  Kalo download yg bundle dari developer.android.com ada AVD nya, bisa add player dan play emulator seperti biasa dari situ.

    Tapi kalo saya lebih suka pake emulator dari Genymotion, lebih ringan dan lebih cepat soalnya 😀 Caranya tinggal mampir aja ke genymotion.com – register, kemudian download genymotion, kalo temen2 pake windows, pilih yg sekalian bundlded sama VirtualBoxnya.

    Install, kemudian login. Lalu klik +Add, nanti akan muncul list device yg disediakan oleh genymotion, pilih kemudiandownload emulator sesuai yang temen2 inginkan, banyak kok pilihannya. 🙂  Ini screenshot punya saya 😀

    Kalo udah, pilih emulator yg mau dijalankan , lalu Play , terus buka command prompt.
    Masuk ke dir project yang kita buat tadi, kalo saya berarti :

    D:\hello>

    Lalu jalankan perintah :

    D:\hello> phonegap platform add android

    D:\hello> phonegap run android

    tunggu beberapa saat, nanti dia akan nginstall ke emulator kita, ingat, emulatornya harus udah jalan dulu ya ^_^

    sampe sini sih harusnya udah bisa, muncul splash screen helloworld gitu. Oke, kurang lebih seperti ini:


    Selamat Mencoba ^_^

  7. Oya, buat yg mau develop, disini saya pake jquery, tp agak berat ya kalo buat mobile apps.
    Saran saya , bisa coba pake AngularJS atau Backbonejs + Topcoat.css , oh yaa.. ada OnsenUI itu juga keren banget, ringan, great UX,  HTML5 UI Framework, Onsen work with jquery and angularJS, nah , keren kan. Saya udah nyoba, dan emang simple n easy to use, nice design, multiscreen support.Great.

    Oiya satu lagi, ada ionic framework , masih beta sih, but i keep my eyes on it. Ini juga bakal keren nih 😀