Saya sebagai seorang pengaturcara, akan ada beberapa situasi seharian yang menyebabkan saya terjebak dengan sindrom NIH (Not Ivented Here), membuat satu prototaip dan akhirnya menjadi satu produk. Biasanya babak tersebut bermula seperti ini
- Mencari perisian untuk tugas-tugas tertentu, terjumpa satu perisian dan mencubanya, banyak kekurangan dan terfikir kita boleh buat yang lebih baik.
- Membuat satu kerja berulang-ulang, dah terfikir cara untuk mengautomasikan kerja tersebut, membuat skrip kasar untuk memudahkan kerja.
- Termenung semasa mandi dan terfikir kalaulah ada perisian seperti ini, tentu senang hidupku.
Zenclouds.com , BnB.my dan Beemember.com adalah antara hasil dari situasi di atas dan saya mengakui di sebalik 3 produk di atas, ada berpuluh-puluh prototaip yang menjadi contengan di Google Docs, folder kosong di laptop, design yang di beli di Themeforest atau kod yang separuh masak.
Apa yang saya ingin kongsi dalam blog kali ini adalah bagaimana menghilangkan rasa ingin tahu apabila 3 babak di atas berlaku. Kebiasaannya kita panggil teknik ini adalah MVP (Minimum Viable Product) dan saya ingin beri nama Melayu untuk MVP iaitu Produk Berguna Minimum (PBM). MVP biasanya digunakan oleh pakar barat untuk
- Menguji hipotesis dengan sumber yang minimum
- Mempercepatkan pemahaman
- Mengurangkan pembaziran sumber (pengaturcara)
- Mendapatkan pelanggan awal secepat yang mungkin
Dan bagi saya, asalkan saya dapat buang pemikiran yang berlegar “menarik juga kalau buat” sudah cukup untuk mewajarkan perbuatan saya :) .
Dalam kajian kes kali ini, saya akan memberikan satu contoh perisian yang syarikat kami ingin guna iDoneThis.com . iDonethis merupakan perisian SaaS yang akan menghantar emel kepada setiap orang (dalam kumpulan) , setiap hari masa yang ditetapkan untuk mengetahui apakah kerja yang sudah,akan dan masalah yang dihadapi mereka. Konsep ini biasa dalam SCRUM yang di panggil Daily standup dan di jalankan secara bersemuka. Tetapi konsep iDonethis, mereka jadikan konsep ini secara online.
Langkah 1 : Fasa Kajian
Ketika dalam fasa satu, saya biasanya akan menerawang di alam siber untuk mencari dan menjawab beberapa persoalan.
- Sudahkah ada klon iDoneThis ?
- Siapakah pesaing iDoneThis ?
- Apakah halangan teknikal yang ada jika ingin membangunkan klon iDoneThis ?
- Berapa lama yang diperlukan untuk membangunakan MVP iDoneThis ?
Jika semua soalan tersebut di jawab dan anda masih rasa ingin membangunkan MVP anda, kita akan pergi ke langkah 2 :). Jika tidak ia akan hanya menjadi sejarah sahaja di pelayar web dan anda terselamat dari terjebak dengan sindrom NIH.
Langkah 2 : Menyenaraikan ciri-ciri perisian
Biasanya saya akan menggunakan perisian iDoneThis selama beberapa hari, minggu atau bulan untuk mendapat idea kasar apakah yang boleh dilakukan oleh perisian tersebut. Dalam kes ini saya akan menyenaraikan ciri-ciri tersebut di dalam Google Docs. Pemilihan Google Docs adalah kerana kemudahan perkongsian dokumen tersebut jika anda ingin membuat MVP secara berkumpulan dan mudah untuk anda berkongsi idea. Google Docs juga mempunyai ciri-ciri semakan sejarah yang membolehkan anda melihat perubahan MVP kepada produk berkembang (mana tahu MVP anda adalah Facebook yang seterusnya !)
Gambarajah 1 : Senarai ciri-ciri perisian
Jika anda perasan kebiasaannya dalam dokumen ini saya akan meletakkan
- Codename (boleh ditukar setelah anda pasti ingin menjadikan ia produk)
- Logo (sudah sangat terjebak :)
- Penerangan asas apakah sistem ini boleh lakukan
- Ciri-ciri dibahagikan kepada access level
- Berapa access level di dalam sistem
Langkah 3: Wireframe antaramuka sistem
Wireframe atau ada orang yang memanggilnya skematik halaman atau blueprint , tetapi yang pasti ia adalah lakaran kasar apakah antaramuka yang akan ada dalam sistem anda. Anda boleh lakar di kertas atau menggunakan perisian seperti iPlotz, Balsamic, Mockingbird dan hasilnya adalah seperti di bawah (saya menggunakan iPlotz).
Gambarajah 2 : Dashboard
Gambarajah 3: Halaman kumpulan
Gambarajah 4 : Tambah Kumpulan
Langkah 3 ini digunakan untuk pelbagai perkara dan boleh mengawal dari
- Memastikan MVP tidak terlampau besar
- Boleh berkongsi idea dengan orang lain dan meminta pendapat penambah baikan tanpa perlu kos yang besar (dalam kes di atas saya buat dalam masa ½ jam)
- Menghantar kepada pereka laman web untuk membuat rekaan penuh tanpa perlu menunggu sistem penuh siap.
- Boleh digunakan untuk rujukan bagi mereka pangkalan data yang diperlukan di mana ini akan menjurus kita kepada langkah 4
Langkah 4 : Mereka Pangkalan Data
Pangkalan data biasanya saya gunakan MySQL dan boleh direka terus di PHPMyAdmin tetapi kekurangan dari segi pandangan mata helang menyukarkan jika MVP ini diteruskan kepada peringkat produk dan diskusi antara pengaturcara lain juga sukar jika tiada ER Diagram . Saya biasa menggunakan MySQL Workbench untuk rekaan ERD sistem.
Gambarajah 5: ER Diagram
ERD mudah direka jika kita langkah 3 wireframe sudah di buat. Anda boleh nampak kekangan dan juga hubungan antara table dengan hanya melihat wireframe anda. Kebaikan MySQL Workbench yang saya suka adalah boleh selaraskan dengan MySQL secara terus setelah perubahan di buat di ERD, tidak perlu saya buat kerja yang sama di 2 tempat.
Kesimpulan
Jadi di dalam blog ini saya sudah ulas 4 langkah awal yang biasa digunakan oleh saya untuk menghasilkan MVP. Saya senarai semula langkah tersebut di bawah
- Fasa Kajian
- Menyenaraikan ciri-ciri perisian
- Wireframe antaramuka sistem
- Mereka Pangkalan Data
4 langkah di atas boleh digunakan untuk memulakan atau mengelakkan sindrom NIH menjadi lebih teruk. Jika 4 langkah di atas sudah dilalui oleh anda semua dan ketika ini anda sudah merasakan keperitan untuk membangunkan aplikasi tersebut dan anda ingin berhenti untuk meneruskan ke langkah 5,6,7,+++ . Beberapa cadangan boleh saya buat
- Berhenti dengan meneruskan hidup anda dan hanya sehari pembaziran dihabiskan
- Mengecilkan skop MVP , dengan ini langkah untuk membangunkan menjadi lebih pendek
- Mencari rakan untuk sama-sama membangunkan MVP bersama anda
Saya ‘mungkin’ akan teruskan langkah 5,6,7 dalam pengembaraan saya kali ini. Saya akan kongsikan langkah ini ‘mungkin’ di blog yang seterusnya. Jumpa lagi ;)
No comments:
Post a Comment